JP4806009B2 - 構成可能な処理のための装置、及び方法 - Google Patents

構成可能な処理のための装置、及び方法 Download PDF

Info

Publication number
JP4806009B2
JP4806009B2 JP2008509504A JP2008509504A JP4806009B2 JP 4806009 B2 JP4806009 B2 JP 4806009B2 JP 2008509504 A JP2008509504 A JP 2008509504A JP 2008509504 A JP2008509504 A JP 2008509504A JP 4806009 B2 JP4806009 B2 JP 4806009B2
Authority
JP
Japan
Prior art keywords
configurable
execution unit
module
unit
instruction
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.)
Expired - Fee Related
Application number
JP2008509504A
Other languages
English (en)
Other versions
JP2008541216A (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 JP2008541216A publication Critical patent/JP2008541216A/ja
Application granted granted Critical
Publication of JP4806009B2 publication Critical patent/JP4806009B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/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
    • 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/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • 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/3004Arrangements for executing specific machine instructions to perform operations on memory
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • 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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent instruction execution, e.g. pipeline, 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, 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

Description

本発明は、構成可能な実行ユニットを備えるコンピュータプロセッサ、そのようなコンピュータプロセッサ及び実行ユニットを操作するための方法、及びコンピュータのための命令セットを利用するコンピュータプログラム製品に関連する。
製造の時に固定された命令セットを有することの効力によって、いくつかのコンピュータプロセッサは、特定のアルゴリズムの中の異なるタイプのデータ処理計算を能率的に処理するそれらの能力において、そして、例えば、畳み込み、高速フーリエ変換、トレリス/ビタビ演算、相関、有限インパルス応答フィルタ処理等の中から選択された異なるアルゴリズムを実行するそれらの能力において、制限される。特に、既知のコンピュータプロセッサは、マルチビットオペランド値に関して動作するソフトウェアでカスタマイズされた命令、例えば4ビット以上のオペランドに作用するそのような命令、または(一般的に、16、32、または64ビットの)機械語のレベルにおいて作用するそのような命令の実行を支援しない。既知のコンピュータプロセッサは、プロセッサ命令セットの一部分を形成する個別のソフトウェアでカスタマイズされたプロセッサ命令に応答して、より単純なカスタマイズされた一連の操作を包含するソフトウェアでカスタマイズされた複雑な操作を能率的に実行することができない。
本発明の実施例は、改良されたコンピュータプロセッサ、及びコンピュータプロセッサを操作する方法等を提供しようと試みる。
本発明の特徴によれば、命令によってマルチビットのオペランド値の処理のレベルで動的に構成されることが可能である演算器を備えた構成可能な実行ユニットが提供される。構成可能な実行ユニットは、1つのモジュール、または各モジュールが、命令において示された入力オペランドを受け取るように接続可能である、1つ以上の動的に構成可能な演算器モジュールと、命令のOPコード部分から判定された動的な構成情報を受け取るように接続可能であると共に、命令の中の前記動的な構成情報に応答して、前記構成可能な演算器モジュールの機能及び/または動作の特徴を定義する演算器構成設定値を生成可能であるプログラム可能なルックアップテーブルとを備える。
好ましい実施例において、プログラム可能なルックアップテーブルは、プログラマブルロジックアレイを備える。更により好ましくは、プログラム可能なルックアップテーブルは、カスケード接続されたプログラマブルロジックアレイを備える。開示された実施例において、構成可能な実行ユニットは、擬似的な静的制御情報によって少なくとも一部分が定義された接続性を有する構成可能なスイッチング構造を備える。更に、構成可能なスイッチング構造は、構成可能な演算器の前段に接続された構成可能な入力相互接続手段と、構成可能な演算器の後段に接続された構成可能な出力相互接続手段との内の1つ以上を備え得る。好ましい実施例は、両方共備えている。
ここで、構成可能な入力相互接続手段が提供されると共に、1つ以上の構成可能な演算器モジュールの出力信号が、前記構成可能な入力相互接続手段に接続され得る。
好ましくは、少なくとも1つの構成可能な演算器モジュールは、所定の部類の操作を支援するために、ハードウェアに組み込まれると共に、一般的な操作の部類の中で演算器機能及び/または演算器動作を調整するように、演算器構成設定値によって動的に構成可能である。意図されたアプリケーションに応じて、様々な演算器機能が提供され得る。好ましい実施例は、構成可能なシフト及び/または並び替えの機能性を有するモジュールを備える傾向がある。更に好ましくは、特定の実施例は、中間結果を保持することが可能である記憶演算器を備える。
一般的に、構成可能な構成要素の内の1つ以上は、動的な構成情報を伝送する命令とは独立して提供された擬似的な静的制御情報を備える。そのような擬似的な静的制御情報は、例えば構成設定値命令によって、または関係のある構成要素への直接的なデータ転送によって確立され得る。
大部分の実施例において、1つ以上の動的に構成可能な演算器は、データ処理命令において提供された構成情報を用いて構成可能である。しかしながら、ここに開示された原理は、同様に、他のタイプの命令に適用され得る。
好ましい構成可能な実行ユニットは、データ処理命令において提供された構成情報を用いて構成可能である複数の動的に構成可能な演算器を備え、使用時に、前記構成情報に従う演算器構成は、前記データ処理操作において示されるオペランドに作用する。
他の実施例において、もしくは、更に、1つ以上の動的に構成可能な演算器が、データ処理命令において提供された構成情報を用いて構成可能であると共に、使用時に、前記構成情報に従う演算器構成は、その後の命令において示されるオペランドに作用する。
好ましい実行ユニットは、構成可能な実行パス(path)または実行ユニットの外部の記憶場所(例えば、レジスタファイル)に結果を出力する前に、単一の命令に応答して、オペランドに対して順次的な2つ以上の構成可能な操作を選択的に実行することができるように配置される。好ましい構成可能な実行ユニットにおいて、前記構成可能な演算器モジュールの内の1つ以上は、SIMD操作を支援する。
一般的に、以下の乗算、算術論理、記憶、シフト及び/または並べ替えの演算器の部類の内の1つ以上の演算器が提供される。しかしながら、あらゆる数または種類の演算器が使用され得る。
本発明に基づく実施例において、用語“プログラム可能なルックアップテーブル”は、例えばキャリーイン信号;マルチプレクサ選択信号;協定可能入力信号;オーバフロー設定値;及び演算器の他の適当な入力信号の内の1つ以上の中から選択された演算器構成設定値を提供することが可能であるあらゆる装置を含むと広く解釈されるべきである。
更に、プログラム可能なルックアップテーブルは、有効に、1つ以上の動的に構成可能な演算器モジュールから1つ以上の入力信号を受け取ることができる。このように、演算器からの出力信号は、次のサイクルにおける使用のために、演算器に対する構成入力信号を少なくとも部分的に定義し得る。
排他的ではないが、通常、動的に構成可能な演算器モジュールからプログラマブルルックアップテーブルに対する入力信号は、オーバーフロー表示;FIFOフル信号;算術比較のブール結果;演算器の他の適当な出力信号の内の1つ以上から選択される。
特定の実施例において、プログラム可能なルックアップテーブルは、あらかじめ構成可能であると共に、命令において伝送される構成情報によって選択可能である擬似的な静的制御情報を含むと見なされることができる。
本発明の別の特徴によれば、命令によってマルチビットのオペランド値の処理のレベルで動的に構成されることが可能である演算器を備えた構成可能な実行ユニットを操作する方法であって、OPコード内に構成情報を含む命令を復号化する段階と、プログラム可能なルックアップテーブルに従って、構成情報を少なくとも1つの構成可能な演算器に対する演算器構成設定値に変換する段階と、その結果、前記演算器の機能及び/または動作の特徴が、命令毎を基準として選択的に調整可能であるように、前記少なくとも1つの構成可能な演算器に、前記演算器構成設定値を供給する段階とを含む方法が提供される。
好ましい方法は、一連の2つ以上の操作が、単一の命令に応答して直列に実行されることを可能にする。代りに、もしくは多分加えて、2つ以上の操作が、前記命令に応答して並列に実行され得る。
好ましい実施例は、単一の命令に応答して、直列操作と並行操作の結合が実行されることを容易にする。このように、ソフトウェアでカスタマイズされた命令は、総合的に比較的複雑な計算を相互関係のある操作のセットとして実行する連結された演算器のネットワークを通じて、単一の命令に応答してオペランドが流れることの原因になり得る。
更に、複数の直列操作及び/または並列操作が命令に応答して実行される場合に、中間結果は、操作の間か、または構成可能な実行ユニットから結果貯蔵場所に出力される前に、記憶演算器内に保持され得る。
更に、複数の直列操作及び/または並列操作が命令に応答して実行される場合に、中間結果は、操作の間か、または構成可能な実行ユニットから結果貯蔵場所に出力される前に、シフトか、または並び替えされ得る。
本発明の別の特徴によれば、前述の方法の内のいずれかを実行するためのプログラムコード手段を含むコンピュータプログラム製品が提供される。
本発明の別の特徴によれば、構成可能な実行ユニットの1つ以上の演算器の構成を設定するための動的な構成情報を含むタイプのデータ処理操作を定義するOPコード部分と、演算器構成情報を含む構成情報フィールドと、データ処理操作で使用するためのオペランドを示す少なくとも1つのフィールドとを備える命令が提供される。
本発明の別の特徴によれば、任意に固定実行ユニットと一緒に構成可能な実行ユニットを含むコンピュータ処理装置が提供される。好ましくは、実行ユニットの内の1つ以上は、SIMD処理が可能である。
本発明の追加の利点、及び新奇な特徴は、ある程度は、後続する記述において説明されると共に、ある程度は、以下の開示の調査によって当業者に明白になるか、または発明の実践によって当業者に学習され得る。
本発明の更に良い理解のために、そしてどのように同じものが実行に移されるかを示すために、一例を示す目的だけで、ここで添付図面に対する参照が行われることになる。
図1のプロセッサ100は、通信バスによってメインメモリ、及び周辺装置と連結されるコンピュータシステムの一部であり得る。そのようなプロセッサシステムは、当業者によって理解されるように、多種多様な装置及びアプリケーションにおける一連の周辺装置を支援し得る。
プロセッサ100は、命令メモリ102と、データメモリ104と、命令フェッチ及びデコード回路110と、レジスタファイル112と、ロード/ストアユニット118と、所定数の固定実行ユニット120と、所定数の構成可能な実行ユニット126とを備える。
命令メモリ102は、命令バス108及びアドレスバス109によって、命令フェッチ及びデコード回路110に連結される。命令フェッチ及びデコード回路110は、更に、アドレスバス111によって、レジスタファイル112に接続されると共に、制御バスシステム113によって、ロード/ストアユニット118、固定実行ユニット120、及び構成可能な実行ユニット126に接続される。制御バス113は、例えば、命令から復号化された動作構成情報をロード/ストアユニット118、固定実行ユニット120、及び構成可能な実行ユニット126の関連する入力に伝送するために使用される。オペランドバスシステム115は、ロード/ストアユニット118、固定実行ユニット120、及び構成可能な実行ユニット126に、復号化された命令に基づいて、レジスタファイルからオペランドを提供する。
ロード/ストアユニット118は、データメモリ104への連結部121、及びデータメモリ104からの連結部122を備えると共に、同様に固定実行ユニット120、及び構成可能な実行ユニット126の出力信号を受けるように機能する結果バス128に結果を出力することができる。結果バス128は、レジスタファイル112の入力にフィードバックされる。
この実施例において、プロセッサ100は、固定実行ユニット及び構成可能な実行ユニットにおいて、シムド(SIMD:single instruction multiple data)処理を支援する。他の実施例において、固定実行ユニット及び構成可能な実行ユニットの内の1つだけ、またはどちらも、SIMD処理を支援することが可能である。
命令フェッチ及びデコード回路110内の制御回路は、一般的に、命令メモリ102が提供する一連の命令を要求して、受け取って、復号化すると共に、それらの命令に従ってプロセッサの様々な構成要素を制御することに関与する。典型的な命令は、ロード/ストア操作、制御機能操作、データ処理操作、及び/または様々な機能単位によって実行される特定の操作を含む。
ロード/ストア命令は、データメモリ104内のデータにアクセスすると共に、データメモリ104とレジスタファイル112との間でデータを移動するために使用され、データは、それに関して実行された操作の直前に、及びそれに関して実行された操作の直後に存在する。分岐のような制御機能操作は、例えば、一連のフェッチされた命令に影響を及ぼすために、もしくはプロセッサのための設定の計算に固定実行ユニット及び構成可能な実行ユニットの内の1つ以上を関与させることができるように、完全に命令フェッチ及びデコード回路110の中で動作し得る。以下に更に詳細に説明されることになるように、データ処理操作は、アルゴリズムの実行の中で使用されると共に、同様に、固定実行ユニット及び/または構成可能な実行ユニットを関与させることができる。
図2は、代表的な実行ユニット126の内部構成要素の略図である。図2を参照すると、構成可能な実行ユニット126は、プログラム可能なルックアップテーブル210と、構成可能な演算器ステージ230と、入力クロスバー相互接続装置240と、出力クロスバー相互接続装置250とを備える。
プログラム可能なルックアップテーブル210、及び相互接続装置240、250は、特別な目的命令によってプリセット可能である擬似的な静的制御情報に依存するという意味において構成可能であるが、しかし、それは、それ自身をデータ処理命令によってサイクル毎を基準として動的に構成可能ではない。このプリセット可能な制御情報は、ここでは擬似的な静的制御情報(PSCI)と呼ばれると共に、図2上の参照符号249によって示される。擬似的な静的制御情報249は、ある意味ではそれは当業者にとって明白である、プログラム可能なルックアップテーブル210、及びクロスバー相互接続装置240、250の機能性及び動作の特徴を指示する。
構成可能な演算器ステージ230は、それぞれが異なる部類の操作を実行するように設計されている演算器モジュール202〜208のセットを含む。演算器モジュールは、入力クロスバー相互接続装置から、オペランド入力バス242によって提供される。この代表的な実施例においては、乗算演算器202と、ALU演算器204と、記憶演算器206と、シフト/並び替え演算器208が提供される。当業者は、演算器の数と機能は、意図したアプリケーション及び/またはプロセッサの意図した目的に基づいていると認識することになる。演算器モジュール202〜208の全てまたは選択物は、ここで示された手段によって動的に構成可能であるということが考えられる。
演算器モジュール202〜208は、実行するように設計されると共に、しかし同時にマルチビット値に関する操作の実行をもたらす動作のレベルにおいて構成可能であることを可能にする様々な制御入力信号を有する操作において、それらを効率的に実行する程度にまで、ハードウェア化される。これは、それぞれが実行するように設計された操作の部類の中で、演算器モジュールの動作及び/または種類における変化を支援することである。例えば、加算ユニットは、加算と同様に減算を支援し得る(計算の一般的な部類の中の異なる種類の操作または機能)と共に、それは、スカラータイプと同様に、様々なSIMDベクトルデータタイプを支援することができ(多目的な動作)、そして、それは、様々な丸めモード及び/またはオーバーフロー動作を支援することができる(選択可能な動作)。
好ましい実施例において、演算器202〜208に対する制御入力信号、及び演算器ステージ230上の様々な構成要素の相互接続は、所望の様々なアルゴリズム、特にベクトルアルゴリズムの効率的な実行を可能にする程度にまで構成可能であり、アルゴリズムの例は、畳み込み、高速フーリエ変換、トレリス/ビタビ演算、相関、有限インパルス応答フィルタ処理、及び他のものを含む。この程度は、実際には、プロセッサの制御機能だけでなく、そのようなアルゴリズムに従う関連した計算を支援するための命令セットに要求されるデータ処理機能性の範囲を同様に知っている適切な当業者によって、容易に規定される。
構成情報を含む命令(例えば、データ処理命令)が、そのオペランドが動作させられる場合に適用されるべき制御設定値として構成情報を供給することによって、選択的に演算器機能(操作タイプ)、及び/または演算器動作を変更し得るように、演算器ステージ230の演算器は、命令毎を基準として(“動的に”)、動的に構成可能である。代りに、命令における構成情報が、その後の命令が提供するオペランドを処理しているとき(例えば、順次データ処理操作)、適用されるべき演算器機能及び/または演算器動作を設定するように、命令セットが設計され得る。
プログラム可能なルックアップテーブル210から得られた演算器に対する制御入力信号279は、例えば、演算器202〜208の機能及び/または動作を制御するための制御入力信号を提供するために、演算器ステージに供給される。これらの制御入力信号の例は、キャリーイン(carry-in)信号、マルチプレクサ選択信号(multiplexer selections)、協定可能入力信号(negotiable inputs)、及びオーバフロー動作制御設定値(overflow behaviour control settings)を含む。演算器ステージ230内の演算器モジュール202〜208からの制御出力信号281は、プログラム可能なルックアップテーブル210に対して出力されることができると共に、従って、言い換えると、制御入力信号設定値279を定義することに関与することができる。制御出力信号281の例は、オーバーフロー表示(overflow indications);FIFOフル信号(FIFO full);算術比較のブール結果(Boolean results of arithmetic comparisons)を含む。
実際には、データ処理命令内の演算器構成情報277は、復号化されると共に、プログラム可能なルックアップテーブル210に供給される。この構成情報277は、制御情報281と共に、プログラム可能なルックアップテーブル210によって、演算器ステージのための対応する制御入力信号279に変換されると共に、演算器ステージ230に供給される。ルックアップテーブル210によって実行される変換機能は、擬似的な静的制御情報249によって決定されると共に、それは、言い換えると、初期の制御命令によって設定され得る。
好ましい実施例において、プログラム可能なルックアップテーブル210は、それ自身、データ処理命令内の演算器構成情報に基づいて選択可能な、擬似的な静的制御情報によって決まると見なされ得る。プログラム可能なルックアップテーブル210は、従って、(命令に由来した)動的な構成情報277、または演算器からの制御出力信号281、またはPSCI249、またはプログラム可能なルックアップテーブル210に対するこれらの入力信号のあらゆる組み合わせに応答して、演算器に対する入力信号を生成することができる。従って、擬似的な静的制御情報が演算器ステージ230に直接入力される必要性はない。しかし、これは、いくつかの状況において望ましいかもしれない。
図2Aを参照すると、プログラム可能なルックアップテーブル210は、当業者に良く知られている種類のプログラマブルロジックアレイ(PLA)として実装されることができるか、もしくは、図2Bで例証されるように、そのようなPLAのカスケード接続として実装されることができる。図2Bの場合は、PLA1は、命令が提供する構成ビット277を第1の中間コードに変換し、PLA2は、演算器の制御出力信号281を第2の中間コードに変換し、そして、PLA3は、演算器に対する制御入力信号279のセットを生成するために、両方の中間コードを結合する。そのようなカスケード接続された装置は、図2Aの1つのPLAより比較的少ないハードウェアを必要とし得るので、望ましいかもしれない。
好ましい実施例において、クロスバー相互接続装置240、250、及びステージ230における演算器の間の相互接続の接続性は、データ処理命令における制御情報に基づいて、動的に構成可能ではない。その代りに、これらの構成要素240、250は、PSCIをセットすること、恐らくは制御設定値操作のアップロードもしくは実行によって、操作に先立って構成可能である。
入力相互接続装置240は、複数の演算器モジュール202〜208の各々に対するオペランド入力信号を提供する。入力相互接続装置240は、復号化されたデータ処理命令に従ってオペランド224を受け取ることができると共に、フィードバックバス225を経由して、演算器202〜208の出力信号から結果値を受け取ることができる。
出力相互接続装置250は、演算器モジュール202〜208から出力信号を受け取ると共に、構成可能な実行ユニット126の最終出力結果290を供給する。フィードバックバス225、クロスバースイッチ240、及び、任意に更に記憶演算器206の効力によって、単純な複数の操作の直列結合、及び並列結合は、結果290を実行ユニットの外部に供給する前に、単一のデータ処理命令に応答して、入力オペランド224に関する複雑な操作を実行することができる。これらの有利なタイプの“深い”実行操作は、簡単に言えば、結果290がレジスタファイル112内の結果レジスタに書かれるように送出される前に、複数の(一般的には3つ以上)の数理演算における操作がオペランド、またはオペランドのセットに関して順次的に実行される操作と見なされ得る。これらのタイプの深い操作において、記憶演算器206は、中間結果が後の操作周期に関与できるように、結果290が出力される前に、中間結果を保持することができる。このタイプの直列操作及び/または並行操作は新奇である。更に、基礎的演算器の直列−並列結合であるネットワークを作るための容易さは、有利である。並列タイプの操作の例は、範囲検査“AND ( A>min、A<max )”であり、ここで2つの比較計算は、共通のオペランド“A ]”に関して並列に実行される。
当業者は、プロセッサスピードを損なわずに複雑な多段式の操作が達成されることを可能にするために、図2の全体の構造が適切にパイプライン化され得ると認識することになる。
このように、使用時に、どのように命令フェッチ及びデコード回路110がデータ処理命令を復号化すると共に、プロセッサ100の様々な構成要素を制御し、命令が提供する構成情報277がプログラム可能なルックアップテーブル210に供給されると共に、各オペランド224がレジスタファイルから入力相互接続装置240に供給されるかが説明された。このように、選択的に命令が提供する構成情報277は、プログラム可能なルックアップテーブル210によって、演算器の内の1つ以上の機能及び/または動作の特徴を動的に変更する。
構成可能な実行ユニット126は、従って、いくつかのタイプの制御に頼る。1番目に、モジュール202〜208の様々な演算器の部類を提供するための配線接続の有利なレベルにおいて例示された静的制御がある。2番目に、例えば、相互接続構成要素240、250、及びプログラム可能なルックアップテーブル210の所定の構成に存在する擬似的な静的制御情報(PSCI)がある。ここで以前に説明されたように、それら自身で命令毎を基準として演算器の動的な設定(構成の調整)が可能であるソフトウェアでカスタマイズされた命令を実行するのに先立って実行ユニット210の機能及び動作の特徴を決定するために、擬似的な静的制御情報は、特定の構成可能な構成要素(例えばルックアップテーブル210、及び相互接続装置240、250)に分配される。更に、サイクル毎を基準として命令によって提供され得る動的な制御情報がある。命令セットがプロセッサの操作と互換性がある状態を維持することを保証する特定の一般的なプロトコルを順守するならば、命令セットは、それを提供される製造の後でカスタマイズされ得る。製造の後のソフトウェアでカスタマイズされた命令の結合は、演算器を動的に設定することが可能であり、前もって構成可能である他の構成要素は、広い範囲の操作、及び数学的機能を可能にすると共に、複雑なアルゴリズムに対する的確な解決方法に至る。このような状況において、“的確な”とは、サイクル数及び所要電力を減少させることを意味するように使用され得る。
例えば、(i)外部のDMAポートからの直接的なアップロードを用いて、もしくは(ii)PSCI設定値を計算するために使用されるデータが、PSCIを設定する結果と共に、宛先アドレスに基づいてオペランドデータ224としてユニットに入ることに従う具体的に設計されたPSCI設定値命令の実行によって、PSCIは、構成要素に供給され得る。
(演算器構成情報を含む)プロセッサ命令のOPコード部分に含まれる動的な制御情報277は、プログラム可能なルックアップテーブル210にアクセスするために使用される。好ましい実施例において、動的な制御情報は、命令におけるマルチビットフィールドで表されると共に、プログラム可能なルックアップテーブル210から出力された設定値は、全体の実行ユニット230に対する制御入力信号(設定値)の伸張されたセットを含む。
好ましい実施例において、演算器ステージ230の様々なモジュール202〜208は、少なくとも1つの入力信号がベクトル、またはベクトルの要素(スカラ)のようなマルチビット値であるデータ処理操作を扱うように設計されている。従って、好ましい演算器モジュール202〜208は、マルチビット値に関する操作のレベルで構成可能である。例えば、データ処理操作に対する64ビットのベクトル入力信号は、4つの16ビットのスカラーオペランドを含み得る。ここで、ベクトルは、スカラーオペランドの集合体と見なされ得る。ソフトウェアでカスタマイズ可能なベクトル演算は、従って、複数のスカラーオペランドに関して達成され得ると共に、一般的に特定の量のスカラー要素の並べ換えを必要とする。ベクトル演算の全てのオペランドは、必ずしもベクトルである必要があるとは限らず、例えば、ベクトル演算は、スカラ入力及びベクトル入力の両方を備え得ると共に、スカラかベクトルのどちらの結果でも出力し得る。
本発明の実施例によって使用するのに適当な様々な命令フォーマットは、図3で示される。参照符号300には、例えば、構成要素210、240、及び/または250の内の1つ以上に対する擬似的な静的制御設定値操作を実行するように具体的に設計されているPSCI設定値命令がある。PSCI設定値命令300は、一種のPSCI設定値命令であることを示す第1のOPコード部分302と、構成されることを意図される各構成要素210、240、250に関連付けられた宛先を示す第2のOPコード部分303を含む。命令の残り304は、宛先として意図されるPSCIに伝送するか、または指し示すために使用され得る。
命令フォーマット400を参照すると、それに基づいてプログラム可能なルックアップテーブル210において参照が行われる、動的な構成設定値情報を含むデータ処理命令の部類が開示される。命令400は、好ましくは、命令が構成可能な実行ユニット230の内の1つ以上の演算器を設定するための動的な構成設定値情報を含む一種のデータ処理操作であるという指示を含んでいる、実行されるべきデータ処理操作を定義する第1のOPコード部分410を含む。命令400は、更に、結果が送られることになる宛先アドレスを指し示す第2のOPコード部分415、演算器構成情報420を含む第3のOPコード部分420、及びデータ処理操作において使用するための1つ以上のオペランド430を含む。代りに、フィールド430は、レジスタ内の1つ以上のオペランドに対するポインタを含み得る。当業者は、他の実施例においては、説明されたフィールドの内の1つ以上が結合され得るか、または省略され得るということを理解することになる。
演算器構成情報420は、上記で説明されるように、ルックアップテーブル210にアクセスするために使用されると共に、演算器制御入力信号設定値279に寄与するように変換される。
好ましい実施例は、特定のアルゴリズム、例えば、畳み込み、高速フーリエ変換、トレリス/ビタビ計算、相関、有限インパルス応答フィルタ処理等を含むアルゴリズムの中の異なるタイプのデータ処理計算を特に能率的に扱うことができる。更に、好ましいプロセッサは、マルチビットオペランド値に関して動作するソフトウェアでカスタマイズされた命令、例えば4ビット以上のオペランドに作用する命令、または(一般的に、16、32、または64ビットの)機械語のレベルにおいて作用する命令の実行を支援する。実施例は、従って、プロセッサ命令セットの一部分を形成する個別のソフトウェアでカスタマイズされたプロセッサ命令に応答して、ソフトウェアでカスタマイズされた複雑な操作を、(直列及び/または並列の)カスタマイズされた操作のセットとして、能率的に実行することができる。
当業者は、何が最も良いモードであると考えられるか、そして本発明を実行するのに適切な他のモードがどれであるかを、前述のものが説明した一方、本発明が好ましい実施例のこの記述において開示された特定の機器構成、または方法ステップに制限されるべきでないと認識することになる。当業者は、同様に、本発明が広い範囲の応用例を有していると共に、それらの実施例は、本発明の概念からはずれずに、広い範囲の変更の余地があるということを認識することになる。
例えば、1つまたは複数の演算器モジュールのあらゆる特徴は、動的に構成可能であり得る。プログラム可能なルックアップテーブルは、OPコード情報の演算器制御設定値への変換に適当なあらゆる装置であり得る。他の実施例において、構成要素240、250の内の1つ以上は、命令内の制御情報を用いて動的に構成され得るか、またはその特定の演算器は、PSCIを直接アップロードすることによって前もって構成可能である。
本発明を具体化するコンピュータプロセッサの構成図である。 図1のコンピュータプロセッサの代表的な、構成可能な実行ユニットを概略的に示す構成図である。 プログラム可能なルックアップテーブルの一つの例を示す図である。 プログラム可能なルックアップテーブルの他の例を示す図である。 図1のコンピュータシステムによって使用するのに適当な代表的な命令フォーマットを概略的に例証する図である。
符号の説明
100 プロセッサ
102 命令メモリ
104 データメモリ
108 命令バス
109 アドレスバス
110 命令フェッチ及びデコード回路
111 アドレスバス
112 レジスタファイル
113 制御バスシステム
115 オペランドバスシステム
118 ロード/ストアユニット
120 固定実行ユニット
121 データメモリ104への連結部
122 データメモリ104からの連結部
126 構成可能な実行ユニット
128 結果バス
202〜208 演算器モジュール
202 乗算演算器
204 ALU演算器
206 記憶演算器
208 シフト/並び替え演算器
210 プログラム可能なルックアップテーブル
224 オペランド
225 フィードバックバス
230 構成可能な演算器ステージ
240 入力クロスバー相互接続装置
242 オペランド入力バス
249 擬似的な静的制御情報(PSCI)
250 出力クロスバー相互接続装置
277 演算器構成情報
279 演算器に対する制御入力信号
281 演算器モジュール202〜208からの制御出力信号
290 構成可能な実行ユニット126の最終出力結果
300 PSCI設定値命令
302 第1のOPコード部分
303 第2のOPコード部分
304 命令の残り
400 命令
410 第1のOPコード部分
415 第2のOPコード部分
420 第3のOPコード部分(演算器構成情報)
430 オペランド

Claims (26)

  1. 構成可能な実行ユニット(126)であって、
    1つの演算器モジュール、または各演算器モジュールが、データ処理命令において示された入力オペランドを受け取るように接続可能であり、前記データ処理命令によってマルチビットのオペランド値の処理のレベルで動的に構成されることが可能である演算器モジュール(202〜208)と、
    (i)前記データ処理命令のOPコード部分から判定された動的な構成情報(277)及び(ii)前記演算器モジュールが提供する1つ以上の制御出力信号(281)を受け取るように接続可能であると共に、命令毎を基準として前記演算器モジュールを動的に構成するために、前記動的な構成情報(277)を、前記1つ以上の制御出力信号(281)と一緒に、前記構成可能な演算器モジュールの機能及び/または動作の特徴を定義する演算器構成設定値(279)に変換するように動作可能であるプログラマブルロジックアレイとして実施されたプログラム可能なルックアップテーブル(210)
    を備え、
    少なくとも1つの構成可能な演算器モジュールが、前記演算器モジュールの機能及び/または動作を調整するように、前記演算器構成設定値によって動的に構成可能である
    ことを特徴とする構成可能な実行ユニット。
  2. 前記プログラム可能なルックアップテーブルが、カスケード接続されたプログラマブルロジックアレイを備える
    ことを特徴とする請求項1に記載の構成可能な実行ユニット。
  3. 前記実行ユニットが、擬似的な静的制御情報によって少なくとも一部分が定義された接続性を有する構成可能なスイッチング構造を備える
    ことを特徴とする請求項1に記載の構成可能な実行ユニット。
  4. 前記構成可能なスイッチング構造が、
    構成可能な演算器モジュールの前段に接続された構成可能な入力相互接続手段と、
    構成可能な演算器モジュールの後段に接続された構成可能な出力相互接続手段と
    の内の1つ以上を備えることを特徴とする請求項3に記載の構成可能な実行ユニット。
  5. 前記構成可能なスイッチング構造が、
    構成可能な演算器モジュールの前段に接続された構成可能な入力相互接続手段と、
    構成可能な演算器モジュールの後段に接続された構成可能な出力相互接続手段と
    を備えることを特徴とする請求項4に記載の構成可能な実行ユニット。
  6. 1つ以上の構成可能な演算器モジュールの1つ以上の出力信号が、前記構成可能な入力相互接続手段に接続される
    ことを特徴とする請求項5に記載の構成可能な実行ユニット。
  7. 少なくとも1つの構成可能な演算器モジュールが、所定の部類の操作を支援するために、ハードウェアに組み込まれると共に、一般的な操作の部類の中で演算器機能及び/または演算器動作を調整するように、前記演算器構成設定値によって動的に構成可能である
    ことを特徴とする請求項1に記載の構成可能な実行ユニット。
  8. 前記構成可能な演算器モジュールが、構成可能なシフト及び/または並び替えの機能性を有するモジュールを備える
    ことを特徴とする請求項1に記載の構成可能な実行ユニット。
  9. 1つ以上の構成要素が、動的な構成情報を伝送する命令とは独立して提供された擬似的な静的制御情報を備える
    ことを特徴とする請求項1に記載の構成可能な実行ユニット。
  10. 1つ以上の構成要素が、構成設定値命令によって確立された擬似的な静的制御情報を備える
    ことを特徴とする請求項9に記載の構成可能な実行ユニット。
  11. 1つ以上の動的に構成可能な演算器モジュールが、データ処理命令において提供された構成情報を用いて構成可能である
    ことを特徴とする請求項1に記載の構成可能な実行ユニット。
  12. データ処理命令において提供された構成情報を用いて構成可能である複数の動的に構成可能な演算器モジュールを備えると共に、
    使用時に、前記構成情報に従う演算器構成が、前記データ処理命令において示されるオペランドに作用する
    ことを特徴とする請求項1に記載の構成可能な実行ユニット。
  13. データ処理命令において提供された構成情報を用いて構成可能である1つ以上の動的に構成可能な演算器モジュールを備えると共に、
    使用時に、前記構成情報に従う演算器構成が、その後の命令において示されるオペランドに作用する
    ことを特徴とする請求項1に記載の構成可能な実行ユニット。
  14. 結果を出力する前に、単一の命令に応答して、オペランドに対して順次的な2つ以上の構成可能な操作を選択的に実行することができる
    ことを特徴とする請求項1に記載の構成可能な実行ユニット。
  15. 前記構成可能な演算器モジュールの内の1つ以上が、SIMD操作を支援する
    ことを特徴とする請求項1に記載の構成可能な実行ユニット。
  16. 乗算、算術論理、記憶、シフト及び/または並べ替えの演算器モジュールの部類の内の1つ以上の演算器モジュールを備える
    ことを特徴とする請求項1に記載の構成可能な実行ユニット。
  17. 前記プログラム可能なルックアップテーブルが、キャリーイン信号;マルチプレクサ選択信号;協定可能入力信号;オーバフロー設定値;及び演算器モジュールの他の適当な入力信号の内の1つ以上の中から選択された演算器構成設定値を生成する
    ことを特徴とする請求項1に記載の構成可能な実行ユニット。
  18. 前記制御出力信号が、オーバーフロー表示;FIFOフル信号;算術比較のブール結果;演算器モジュールの他の適当な出力信号から選択された1つ以上を備える
    ことを特徴とする請求項1に記載の構成可能な実行ユニット。
  19. 前記プログラム可能なルックアップテーブルが、擬似的な静的制御情報を含む
    ことを特徴とする請求項1に記載の構成可能な実行ユニット。
  20. データ処理命令によってマルチビットのオペランド値の処理のレベルで動的に構成されることが可能である演算器モジュール(202〜208)を備えた構成可能な実行ユニットを操作する方法であって、
    入力オペランドを示すと共にOPコード内に構成情報(277)を含む前記データ処理命令を復号化する段階と、
    プログラマブルロジックアレイとして実施されたプログラム可能なルックアップテーブルに、(i)前記データ処理命令の前記OPコード部分から判定された動的な構成情報(277)、及び(ii)前記演算器モジュールが提供する1つ以上の制御出力信号(281)を供給し、前記プログラマブルロジックアレイが、前記構成情報(277)を、前記1つ以上の制御出力信号(281)と一緒に、少なくとも1つの構成可能な演算器モジュールに対する演算器構成設定値(279)に変換する段階と、
    その結果、前記演算器モジュールの機能及び/または動作の特徴が、命令毎を基準として選択的に調整可能であるように、前記少なくとも1つの構成可能な演算器モジュールに、前記演算器構成設定値(279)を供給する段階と
    を含むことを特徴とする方法。
  21. 一連の2つ以上の操作が、前記命令に応答して直列に実行される
    ことを特徴とする請求項20に記載の方法。
  22. 2つ以上の操作が、前記命令に応答して並列に実行される
    ことを特徴とする請求項20に記載の方法。
  23. 前記命令に応答して、直列操作と並行操作の結合が実行される
    ことを特徴とする請求項20に記載の方法。
  24. 複数の直列操作及び/または並列操作が前記命令に応答して実行されると共に、操作の間か、または構成可能な実行ユニットから結果貯蔵場所に出力される前に、少なくとも1つの中間結果が記憶演算器モジュール内に保持される
    ことを特徴とする請求項20に記載の方法。
  25. 複数の直列操作及び/または並列操作が前記命令に応答して実行されると共に、操作の間か、または構成可能な実行ユニットから結果貯蔵場所に出力される前に、中間結果が、シフトか、または並び替えされる
    ことを特徴とする請求項20に記載の方法。
  26. 請求項20に記載の方法を実行するためのプログラムコード手段を備える
    ことを特徴とするコンピュータプログラム
JP2008509504A 2005-05-05 2006-05-04 構成可能な処理のための装置、及び方法 Expired - Fee Related JP4806009B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/122,385 2005-05-05
US11/122,385 US8966223B2 (en) 2005-05-05 2005-05-05 Apparatus and method for configurable processing
PCT/GB2006/001629 WO2006117562A1 (en) 2005-05-05 2006-05-04 Apparatus and method for configurable processing

Publications (2)

Publication Number Publication Date
JP2008541216A JP2008541216A (ja) 2008-11-20
JP4806009B2 true JP4806009B2 (ja) 2011-11-02

Family

ID=36659717

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008509504A Expired - Fee Related JP4806009B2 (ja) 2005-05-05 2006-05-04 構成可能な処理のための装置、及び方法

Country Status (10)

Country Link
US (2) US8966223B2 (ja)
EP (1) EP1877896B1 (ja)
JP (1) JP4806009B2 (ja)
KR (1) KR20080015836A (ja)
CN (1) CN101218560B (ja)
AT (1) ATE504037T1 (ja)
CA (1) CA2606558A1 (ja)
DE (1) DE602006021000D1 (ja)
TW (1) TWI439928B (ja)
WO (1) WO2006117562A1 (ja)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007193435A (ja) * 2006-01-17 2007-08-02 Matsushita Electric Ind Co Ltd 情報処理端末、プログラム
US8099583B2 (en) * 2006-08-23 2012-01-17 Axis Semiconductor, Inc. Method of and apparatus and architecture for real time signal processing by switch-controlled programmable processor configuring and flexible pipeline and parallel processing
US8276120B2 (en) * 2007-10-30 2012-09-25 Coreworks, S.A. Reconfigurable coprocessor architecture template for nested loops and programming tool
GB0721429D0 (en) 2007-10-31 2007-12-12 Icera Inc Processing signals in a wireless communications environment
GB0721427D0 (en) 2007-10-31 2007-12-12 Icera Inc Processing signals in a wireless newtwork
GB2454914B (en) 2007-11-22 2012-07-25 Icera Inc Clock control
GB2459733B (en) 2008-04-30 2012-12-19 Icera Inc Clock configuration
GB2459939B (en) 2008-05-16 2012-02-15 Icera Inc Fetching descriptors in a multiple context DMA engine
US8078833B2 (en) * 2008-05-29 2011-12-13 Axis Semiconductor, Inc. Microprocessor with highly configurable pipeline and executional unit internal hierarchal structures, optimizable for different types of computational functions
US8181003B2 (en) * 2008-05-29 2012-05-15 Axis Semiconductor, Inc. Instruction set design, control and communication in programmable microprocessor cores and the like
CN101630305B (zh) * 2008-07-16 2011-05-11 中国人民解放军信息工程大学 高效能计算机中可重构部件的柔性管理方法
GB0818918D0 (en) 2008-10-15 2008-11-19 Icera Inc Boot algorithm
US9170816B2 (en) 2009-01-15 2015-10-27 Altair Semiconductor Ltd. Enhancing processing efficiency in large instruction width processors
GB2466982B (en) 2009-01-16 2013-07-17 Nvidia Technology Uk Ltd DMA Engine
GB2467760B (en) 2009-02-12 2013-05-22 Icera Inc Method for generating transmitter power amplifier ramp profiles from a single reference ramp pattern
GB0910850D0 (en) 2009-06-23 2009-08-05 Icera Inc Processing signals in a wireless network
JP5785357B2 (ja) * 2009-06-25 2015-09-30 スパンション エルエルシー リコンフィグ演算装置を備えるコンピュータシステムおよびリコンフィグ演算装置
CN102043755B (zh) * 2009-10-22 2012-12-05 财团法人工业技术研究院 可重组态处理装置及其系统
GB2483225B (en) 2010-08-27 2018-07-11 Nvidia Tech Uk Limited Improved processor architecture
KR20120134549A (ko) 2011-06-02 2012-12-12 삼성전자주식회사 Simd 프로세서를 이용한 병렬 연산 처리 장치 및 방법
US10255228B2 (en) * 2011-12-06 2019-04-09 Nvidia Corporation System and method for performing shaped memory access operations
US9558006B2 (en) * 2012-12-20 2017-01-31 Intel Corporation Continuous automatic tuning of code regions
US11768689B2 (en) 2013-08-08 2023-09-26 Movidius Limited Apparatus, systems, and methods for low power computational imaging
US10001993B2 (en) 2013-08-08 2018-06-19 Linear Algebra Technologies Limited Variable-length instruction buffer management
US10019260B2 (en) * 2013-09-20 2018-07-10 Via Alliance Semiconductor Co., Ltd Fingerprint units comparing stored static fingerprints with dynamically generated fingerprints and reconfiguring processor settings upon a fingerprint match
KR102259406B1 (ko) * 2014-07-30 2021-06-03 모비디어스 리미티드 명령어 사전인출을 위한 방법 및 장치
EP3125109B1 (en) * 2015-07-31 2019-02-20 ARM Limited Vector length querying instruction
US10860322B2 (en) * 2015-10-30 2020-12-08 Arm Limited Modifying behavior of a data processing unit using rewritable behavior mappings of instructions
US9977677B2 (en) * 2016-04-07 2018-05-22 International Business Machines Corporation Execution slice with supplemental instruction port for an instruction using a source operand from another instruction port
US9734126B1 (en) 2016-10-10 2017-08-15 International Business Machines Corporation Post-silicon configurable instruction behavior based on input operands
US10963265B2 (en) * 2017-04-21 2021-03-30 Micron Technology, Inc. Apparatus and method to switch configurable logic units
US10409615B2 (en) * 2017-06-19 2019-09-10 The Regents Of The University Of Michigan Configurable arithmetic unit
JP7032647B2 (ja) * 2018-04-17 2022-03-09 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US10565036B1 (en) 2019-02-14 2020-02-18 Axis Semiconductor, Inc. Method of synchronizing host and coprocessor operations via FIFO communication
US11500644B2 (en) * 2020-05-15 2022-11-15 Alibaba Group Holding Limited Custom instruction implemented finite state machine engines for extensible processors
CN112783614A (zh) * 2021-01-20 2021-05-11 北京百度网讯科技有限公司 对象处理方法、装置、设备、存储介质以及程序产品
EP4080354A1 (en) * 2021-04-23 2022-10-26 Nxp B.V. Processor and instruction set

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07503804A (ja) * 1992-12-11 1995-04-20 ナシヨナル テクノロジー,インコーポレイテッド マイクロプロセッサと再構成可能命令実行手段とを備えた動的構成可能ゲートアレイで構成される集積回路演算装置およびその方法
JPH118547A (ja) * 1997-06-17 1999-01-12 Fuji Xerox Co Ltd 再構成可能演算装置
JP2006065788A (ja) * 2004-08-30 2006-03-09 Sanyo Electric Co Ltd リコンフィギュラブル回路を備えた処理装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5600845A (en) * 1994-07-27 1997-02-04 Metalithic Systems Incorporated Integrated circuit computing device comprising a dynamically configurable gate array having a microprocessor and reconfigurable instruction execution means and method therefor
US6052773A (en) * 1995-02-10 2000-04-18 Massachusetts Institute Of Technology DPGA-coupled microprocessors
US5794062A (en) * 1995-04-17 1998-08-11 Ricoh Company Ltd. System and method for dynamically reconfigurable computing using a processing unit having changeable internal hardware organization
US5784636A (en) * 1996-05-28 1998-07-21 National Semiconductor Corporation Reconfigurable computer architecture for use in signal processing applications
US6023742A (en) * 1996-07-18 2000-02-08 University Of Washington Reconfigurable computing architecture for providing pipelined data paths
US6023564A (en) * 1996-07-19 2000-02-08 Xilinx, Inc. Data processing system using a flash reconfigurable logic device as a dynamic execution unit for a sequence of instructions
US6339819B1 (en) * 1997-12-17 2002-01-15 Src Computers, Inc. Multiprocessor with each processor element accessing operands in loaded input buffer and forwarding results to FIFO output buffer
US6226735B1 (en) * 1998-05-08 2001-05-01 Broadcom Method and apparatus for configuring arbitrary sized data paths comprising multiple context processing elements
US6092174A (en) * 1998-06-01 2000-07-18 Context, Inc. Dynamically reconfigurable distributed integrated circuit processor and method
US6961084B1 (en) * 1999-10-07 2005-11-01 Ess Technology, Inc. Programmable image transform processor
US6255849B1 (en) * 2000-02-04 2001-07-03 Xilinx, Inc. On-chip self-modification for PLDs
KR100457040B1 (ko) * 2000-06-21 2004-11-10 패러데이 테크놀로지 코퍼레이션 곱셈 누산 명령을 이용한 데이터 처리 장치 및 방법
DE60144022D1 (de) * 2000-11-06 2011-03-24 Broadcom Corp Umkonfigurierbares verarbeitungssystem und -verfahren
US20070067380A2 (en) * 2001-12-06 2007-03-22 The University Of Georgia Research Foundation Floating Point Intensive Reconfigurable Computing System for Iterative Applications
WO2003081454A2 (de) * 2002-03-21 2003-10-02 Pact Xpp Technologies Ag Verfahren und vorrichtung zur datenverarbeitung
US7200735B2 (en) 2002-04-10 2007-04-03 Tensilica, Inc. High-performance hybrid processor with configurable execution units
WO2004010320A2 (en) * 2002-07-23 2004-01-29 Gatechance Technologies, Inc. Pipelined reconfigurable dynamic instruciton set processor
WO2004010286A2 (en) 2002-07-23 2004-01-29 Gatechange Technologies, Inc. Self-configuring processing element
AU2003286131A1 (en) * 2002-08-07 2004-03-19 Pact Xpp Technologies Ag Method and device for processing data
US20040122887A1 (en) 2002-12-20 2004-06-24 Macy William W. Efficient multiplication of small matrices using SIMD registers
US7149996B1 (en) * 2003-07-11 2006-12-12 Xilinx, Inc. Reconfigurable multi-stage crossbar

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07503804A (ja) * 1992-12-11 1995-04-20 ナシヨナル テクノロジー,インコーポレイテッド マイクロプロセッサと再構成可能命令実行手段とを備えた動的構成可能ゲートアレイで構成される集積回路演算装置およびその方法
JPH118547A (ja) * 1997-06-17 1999-01-12 Fuji Xerox Co Ltd 再構成可能演算装置
JP2006065788A (ja) * 2004-08-30 2006-03-09 Sanyo Electric Co Ltd リコンフィギュラブル回路を備えた処理装置

Also Published As

Publication number Publication date
US8671268B2 (en) 2014-03-11
CN101218560A (zh) 2008-07-09
EP1877896A1 (en) 2008-01-16
EP1877896B1 (en) 2011-03-30
US20110161640A1 (en) 2011-06-30
US8966223B2 (en) 2015-02-24
US20060253689A1 (en) 2006-11-09
KR20080015836A (ko) 2008-02-20
JP2008541216A (ja) 2008-11-20
ATE504037T1 (de) 2011-04-15
CN101218560B (zh) 2012-06-06
WO2006117562A1 (en) 2006-11-09
DE602006021000D1 (de) 2011-05-12
CA2606558A1 (en) 2006-11-09
TW200707280A (en) 2007-02-16
TWI439928B (zh) 2014-06-01

Similar Documents

Publication Publication Date Title
JP4806009B2 (ja) 構成可能な処理のための装置、及び方法
US8918445B2 (en) Circuit which performs split precision, signed/unsigned, fixed and floating point, real and complex multiplication
US7062526B1 (en) Microprocessor with rounding multiply instructions
US8271571B2 (en) Microprocessor
US20030023830A1 (en) Method and system for encoding instructions for a VLIW that reduces instruction memory requirements
US7769982B2 (en) Data processing apparatus and method for accelerating execution of subgraphs
JP2000020305A (ja) カスタマイズ可能な命令セット・プロセッサの方法およびア―キテクチャ
US20120191766A1 (en) Multiplication of Complex Numbers Represented in Floating Point
KR100812555B1 (ko) 단일-명령 다중-데이터 마이크로프로세서들에서의 벡터 순열을 위한 장치, 시스템 및 그 방법
Anjam et al. A VLIW softcore processor with dynamically adjustable issue-slots
JP3479385B2 (ja) 情報処理装置
KR20070037568A (ko) 듀얼 데이터 경로 프로세싱 장치 및 방법
EP3125109B1 (en) Vector length querying instruction
US6975250B2 (en) Methods and systems for data manipulation
EP1102161A2 (en) Data processor with flexible multiply unit
EP2751672A1 (en) Vector execution unit for digital signal processor
EP2666082B1 (en) Integrated circuit device and method for calculating a predicate value
EP1402394A2 (en) Dsp execution unit for efficient alternate modes of operation
US20200371784A1 (en) Vector floating-point scale
US20060271610A1 (en) Digital signal processor having reconfigurable data paths
CN117032801A (zh) 可用于sha256的指令执行方法、设备、数据处理系统及芯片
KR100737802B1 (ko) 모듈형 디지털 신호 프로세서 블록 및 이를 이용한시스템-온-칩
EP0862112A2 (en) Data processing system having an instruction pipeline
JP2003330914A (ja) ベクトル演算処理装置、ベクトル演算方法およびベクトル演算プログラム
JP2001034603A (ja) 積和演算処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110215

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: 20110712

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110811

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140819

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees