JP2008537268A - 可変精度相互接続を具えたデータ処理エレメントの配列 - Google Patents
可変精度相互接続を具えたデータ処理エレメントの配列 Download PDFInfo
- Publication number
- JP2008537268A JP2008537268A JP2008507904A JP2008507904A JP2008537268A JP 2008537268 A JP2008537268 A JP 2008537268A JP 2008507904 A JP2008507904 A JP 2008507904A JP 2008507904 A JP2008507904 A JP 2008507904A JP 2008537268 A JP2008537268 A JP 2008537268A
- Authority
- JP
- Japan
- Prior art keywords
- data processing
- data
- processing element
- digit
- processing elements
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17724—Structural details of logic blocks
- H03K19/17728—Reconfigurable logic blocks, e.g. lookup tables
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17736—Structural details of routing resources
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17736—Structural details of routing resources
- H03K19/1774—Structural details of routing resources for global signals, e.g. clock, reset
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Logic Circuits (AREA)
- Multi Processors (AREA)
- Complex Calculations (AREA)
Abstract
可変精度相互接続(14)で互いに連結されたデータ処理エレメント(13)の配列(11)を使用してデータを処理するシステム及び方法。一実施例が、可変精度相互接続により結合され行列配列(11)を形成するデータ処理エレメントを具える。相互接続(14)及び/又はデータ処理エレメント(13)は同期式又は非同期式にしてよい。データ処理エレメント(13)は固定方法で動作するか又はプログラム可能にしてよく、配列の中の選択可能なデータ処理エレメント(13)をバイパスさせてもよい。相互接続(14)及びデータ処理エレメント(13)を、各ディジットがデータワードの中の最初及び/又は最後のディジットかどうかを識別するタグ(25,26)を具えたディジットシリアル方法でデータを扱うよう構成してもよい。データ処理エレメントを、データ処理エレメントと外部の装置との間でデータ通信可能なシステムバス(54,55)に結合してよく、制御情報をデータ処理エレメントに及びデータ処理エレメントから伝達できる。
【選択図】図1
【選択図】図1
Description
本発明は、一般に、電子ロジック回路に関し、より詳細には、タグを使用することによって可変精度データを処理してデータワードのディジットの位置を示すためのシステム及び方法に関する。
コンピュータ技術が進歩するにつれて、コンピュータシステムの処理能力の量及びスピードが増加している。このため、これらのシステムによってソフトウェアプログラムが実行できるスピードもまた増加している。しかしながら、これらの増加にもかかわらず、ソフトウェアプログラムがより速く実行するよう絶え間ない要求がある。
スピードの必要性は、時として、ハードウェアの加速によって対応する。従来のプロセッサは、シーケンシャルプログラムの各命令のために同じハードウェアを再使用する。しばしば、プログラムは、ソフトウェアの同一又は類似の部分がアプリケーションの他の多くの部分と比較して何度も実行する重要なコードを含んでいる。プログラムの処理を速めるために、付加的なハードウェアを追加してプログラムの重要なコードの断片のためのハードウェアの並列処理を与えている。これは、データの有効性に応じて、重要なコードの断片における全ての命令の同時処理の効果を与えている。さらに、別の繰り返しを同時に実行してソフトウェアの処理をさらに速くするように、繰り返しループを展開することが可能である。
得られる速さの利点があるが、無償ではない。ハードウェアを、問題になっているソフトウェアのアプリケーションのために特別に設計しなければならない。ハードウェアでの機能の実行は、一般に、それをソフトウェアで実行するよりも多くの努力及び資源が必要である。最初に、アルゴリズムを実行するためのハードウェアアーキテクチャーを、実行する動作及びそれらの複雑さ、入力及び出力データ形式及び処理能力、必要メモリ、所要電力、コスト又は場所の制限、及び他の種々の基準、といった基準に基づいて選ばなければならない。
そして、シミュレーション環境を構成して、ハードウェアのシミュレーション及びソフトウェアとの比較に基づいて実行の検証をする。ハードウェアが対象とするライブラリは、システム全体の要求に基づいて選択される。最終的な対象は、application specific integrated circuit(ASIC)、field programmable gate array(FPGA)、又は他の同じようなハードウェア プラットフォームであるようだ。そして、ハードウェア設計は、ハードウェア記述言語(HDL)、対象とするライブラリ、及びシミュレーション環境を用いて始める。HDL設計において論理合成を実行し、目標とするライブラリに基づくハードウェアを表すネットリストを生成する。
プロセス全体にわたって採用される複雑且つ高価な設計ツールがあるが、頻繁な繰り返しを一般に必要として、タイミング、エリア、電源及び機能性といったものの間の取決めを管理する。ハードウェア設計プロセスの困難性は、設計目標及び対象とするライブラリの機能である。半導体技術の絶え間ない進歩により、それぞれの新たなプロセスの生成とともに設計パラメータの重要性が増し続けている。可能となる設計密度が大きくなるのに加えて、ハードウェアの設計プロセスの複雑さが時間とともに確実に増加し続けるであろう。
本発明は、データに関する論理的又は算術的な動作を実行するハードウェアにおけるアルゴリズムの実施に関連する。現在のところ、有効な方法論は、単一のプロセッサ、プロセッサの配列、固定(ゲートアレイ)又はfield−programmable gate arrays(FPGA)、又はスタンダードセル(ASIC)又はフルカスタム設計技術に及んでいる。いくつかの構成は、1以上の方法論の要素を組み合わせている。例えば、プロセッサがフィールド・プログラマブル・ロジックのブロックを組み込んでもよい。
プログラム可能なロジックの様々な実施を比較する場合、時として粒度の概念を使用する。それは、所定の方法論におけるプログラム可能な最小の設計単位に関する。粒度は、トランジスタからゲート及びより複雑なブロックを通してプロセッサ全体に及ぶ。プログラム可能なハードウェアアーキテクチャを比較する際の他の考慮すべき事柄は、プログラム可能なエレメントの相互接続配置である。それらは、単純なビット単位のポイント・ツー・ポイント配置から、様々なトポロジーのより複雑な共有バス、クロスバー、さらには珍しい方式に及んでいる。
ゲートレベルの粒度及び高密度な相互接続を具えたフルカスタム又はスタンダードセル構造が、優れた性能、エリア、及びパワートレードオフ(power tradeoff)能力を提供する。使用するライブラリは、一般にゲート及びレジスタのレベルである。設計時間は、必要とする複雑なツールの多様性によって課せられる設計フローにより、重要となり得る。機能性とタイミングのための配置後の検査が、設計スケジュールのしばしば大きな要素となっている。高価な設計ツールに加え、製造ツールのコストが高くて新たな生成プロセスとともに上昇するため、このような方法は利益率が高く又は大量設計のため経済的な場合に限られる。フルカスタム又はスタンダードセル技術を用いて実施するアルゴリズムは(初期の設計段階で予想される限りにおいて)固定で、変更することができないようである。
固定又は従来のゲートアレイのための設計方法は、スタンダードセルのそれと同様である。従来のゲートアレイの主要な利点は、個別の設計が共通のプラットフォーム又はベースのウェハーに基づくため、製品化に要する時間及びユニットのコストが低いことである。中立のゲート及びルーティングチャンネルのみを使用するため、柔軟性及び回路密度が、カスタム又はスタンダードセル構成のそれと比較して減る可能性がある。カスタム又はスタンダードセル技術で作られるのと同様に、従来のゲートアレイを使用して実施するアルゴリズムは固定で作製後に変えられそうにない。
従来のゲートアレイと同様に、FPGAは、標準的な構造に基づいているが、プログラム可能である。このケースでは、標準的な構造が、サブシステムのモジュール及び中立のゲートのブロックではなくて完成したチップ又は装置である。プログラム可能であると、デバイスのエリアをかなり増やし、あるアプリケーションでは高価な解決法となる。さらに、プログラム可能な相互接続は、付加インピーダンス及び関連する伝搬遅延により、処理能力及び性能を制限する可能性がある。FPGAは、単純なゲート及びレジスタよりも設計要素として複雑でマクロなブロックを有する。プログラム可能なロジックのブロックにおける非効率のため、相互接続ネットワーク、及び関連するバッファ、電力消費が問題となる可能性がある。FPGAを使用して実施するアルゴリズムは変わる可能性があるため、プログラム可能であると見なされている。相互接続構成のため、それらはインアクテブ(クロック動作なし)の場合のみ構成される。必要な相互接続及びロジックのブロック全てを再プログラムするのに要する時間は、デバイスの速さに対して重要である可能性があり、リアルタイムのダイナミック・プログラミングを実行不可能にする。
アルゴリズムを実施するためのハードウェアソリューションの連続体に従って、様々な程度の困難性又は専門性が位置している。この連続体は、最下位が高度な専門性を要するため可能な設計者の非常に小さいベースを表し、レベルが高くなるとより一般的な既知のスキルを使用し可能な設計者の集まりが顕著に増える点で、逆三角形である(表1参照)。また、この順序の下位レベルが、複雑さのレベルが高いレベルに上がる設計抽象化の下位レベルを表していることに留意されたい。
このため、使い易さ及びプロセッサへのアクセスし易さを具えてロジック設計及びアプリケーションのベースを可能にするASICのスピード及び柔軟性を与えるソフトウェア加速を提供するための技術の必要性がある。
本開示は、上記の1又はそれ以上の問題を解決する可変精度(variable precision)相互接続で互いに連結したデータ処理エレメントの配列を使用してデータを処理するためのシステム及び方法を対象とする。ある特定の実施例が、幅方向に固定だが可変精度でデータをサポートするエレメント間の単純な相互接続を具える処理エレメントの配列を具える。エレメントは、これらの結合にわたって入力データを受け取って、それらにわたって動作結果を出力する。各エレメントによって実行される動作は一定でもよいし、可変/プログラム可能でもよい。データは、送信エレメントが新たな有効なデータを有し受信エレメントが新たなデータを必要とする場合にのみ、エレメント間を通る。さらに、非同期式エレメント(asynchronous elements)を採用して、電力を最小限にして性能を改善してもよい。
代替的な実施例は、1又はそれ以上の内部接続によって結合した複数のデータ処理エレメントを具えており、行及び列の配列といった配列を形成する。1又はそれ以上の内部接続は、データ処理エレメント間で可変精度データを搬送するよう構成される。内部接続を同期式又は非同期式にしてもよい。同様に、データ処理エレメントを同期式(局所的又はグローバルに)又は非同期式にしてもよい。データ処理エレメントは、固定の方式で動作したり、又はプログラム可能でよく、配列の選択可能な処理エレメントをバイパスしてもよい。内部接続及びデータ処理エレメントを、各ディジットに関連するタグが、データワードのディジットが最初及び又は最後のディジットかどうかを識別する、ディジットシリアル(disit−serial)方式でデータを扱うよう構成してもよい。ある実施例では、エレメントの配列が、データ処理エレメントと外部装置(例えば、外部メモリ)との間でデータ通信可能なシステムバスに結合され、制御情報をデータ処理エレメントに送受信できる。
また、多くの他の実施例が可能である。
本発明の他の目的及び利点が、以下の詳細な記載及び添付図面を参照して明らかになろう。
本発明は、様々な変更及び代替的な形式に従っているが、特定の実施例を図面及び添付の詳細な記載において例として示す。しかしながら、当然のことながら、図面及び詳細な記載は、記載されている特定の実施例に本発明を限定することを意図するものではない。その代わり、本開示は、添付の特許請求の範囲に規定されているような本発明の範囲に含まれる全ての変更、同等のもの、及び代わりとなるものをカバーすることを意図する。
本発明に係る1又はそれ以上の実施例を以下に記載する。以下に記載するこれら及び他の実施例は、典型例であって、限定ではなく本発明の説明を意図することに留意されたい。
本書に記載されるように、本発明の様々な実施例が、可変精度相互接続(variable precision interconnect)で互いに連結されたデータ処理エレメントの配列を用いてデータを処理するためのシステム及び方法を具える。ある実施例は、幅が固定されるが可変精度でデータをサポートする単純なエレメントとエレメントとの相互接続を具えた処理エレメントの配列を具える。このエレメントは、これらのリンクを介して入力データを受け入れ、それらを介して動作結果を出力する。各エレメントによって実行される動作は固定でもよく、又は可変/プログラム可能でもよい。送信エレメントが有効な新たなデータを有し受信エレメントが新たなデータを必要とする場合に、データがエレメント間を通る。さらに、非同期式エレメント(asynchronous elements)を採用することで、電力を最小限にして性能を改善してもよい。
ある実施例では、可変精度相互接続は、ディジットシリアルデータ(disit−serial data)を搬送するよう構成されており、ここでは各ディジットが、伝送されるデータワードのディジットが最初及び/又は最後のディジットかどうかを示すフラグをともなう。データワードに対応する動作を実行して1又はそれ以上の他の処理エレメントに出力する処理エレメントのうちの1によってデータを受信する。処理エレメントは、データに基づいて動作するよう、又は他の処理エレメントにデータをバイパスするよう構成してもよい。システムバスは、処理エレメントから/へのデータ通信、処理エレメントへのコマンド情報の入力、処理エレメントからの状態情報の出力を可能にする。処理エレメント自身とともに、処理エレメント間の相互接続は、同期式又は非同期式のいずれで動作してもよい。ある実施例では、処理エレメントの動作を局所的に同期式するが、全体として非同期式にしてもよい。
図1は、可変精度相互接続バス14を介して互いに通信する処理エレメント13の配列11を示す。処理エレメントは、データがエレメントからエレメントへと配列を通って移動すると、データに基づいて動作を実行する。処理エレメントは、一定の幅の相互接続バス又は通信チャンネルを介して接続されている。多くの相互接続トポロジーが可能であるが、好適な実施例では、速さ及び簡単のために最近接のエレメントとエレメントとの間の構成を選択する。各エレメント間のバス14は、単一のソース及び宛先を具えた一方向通信チャンネルとして機能する。入力及び出力用に別々の相互接続があり、また、各方向(図の上、下、右及び左)に別々の入力及び出力用の接続部があり、近接するエレメントを接続する。配列11の周辺部に沿った処理エレメント13は、接続していない入力部や出力部を有しており(図示せず)、又はそれらは、メモリコントローラ、他の周辺機器といった、外部モジュール12に任意に接続されている。さらに別の実施例では、それらを配列の反対側の他のエレメントに連結してもよい。例えば、列の最上部のエレメントを列の最下部のエレメントに接続したり、行の最も左のエレメントを行の最も右のエレメントに接続してもよい。理想的には、相互接続バスが、可変精度データをサポートするための機構を与える。
実際には、アルゴリズム又は計算上の問題は、別々の動作に分解されて、接続した処理エレメントのネットワークにマッピングされる。データは、様々な手段を用いて配列に導入され、その後、エレメントによるデータの生成及び消費に基づいてエレメントからエレメントを通って配列内を伝達する。同様に、配列からデータを出力する様々な可能性がある。処理エレメントは、外部モジュール;システムインターフェイス;及び別の(近接した)エレメントを含む(がこれらに限定されない)様々な方法で入力データを受信して出力データを送信してよい。
システムインターフェイスは、複数のエレメントに共通するデータバスから成り、各エレメントが個別に選択される。これにより、コントロールユニットが、選択したエレメントにデータを選択的に読み出し又は書き込むことができる。
特定のアプリケーション及び実装に応じて処理エレメントの特性を変えてもよい。エレメントは、ハードウェアで実装されるある共通の動作を具えたあるアクリケーションのために最適化してもよく、又はほとんど一般的なものでもよい。最小限、処理エレメントは、データに適合して対応できる必要があり、入力データに基づく所望の動作を実行し、出力データを生成できる必要がある。さらに、所望の特性は、好適な実施例にあるように可変精度データを処理する能力である。規定の動作のための個別のエレメントのシーケンスを固定してもよく、又はそれらを完全に可変にしてエレメントをプログラム可能にしてもよい。
固定エレメントが、読み出し専用メモリ(ROM)と、固定プログラム可能なロジックアレイ(PLA)又は特定の動作又は機能に対する一連のイベントを制御する他の固定記憶エレメントとを含んでもよい。動作及びシーケンスを決めるポイントを、設計プロセスの際、又は製造サイクルのかなり後にすることができる。
可変又はプログラム可能なエレメントは、ランダム・アクセス・メモリ(RAM)、レジスタ、(フラッシュメモリといった)不揮発性メモリ、又は動作シーケンスの各ステップでの動作を制御するデータを収容する他の何らかのタイプの可変の記憶エレメントを含んでもよい。
エレメントの特性は、このエレメントによって実行されるイベントの動作及びシーケンスから成る。エレメントの特性を規定するデータは、切り換え又はリロードしてもよい。また、それは、2つの特性が共存して外部信号がどちらかを選択して使用するように、二重バッファ型でもよい。また、切り換え特性は、切り換え状態から成り、これは様々な追加的な内部動作レジスタ又は状態情報を切り換えなければならないことを意味する。理想的には、この情報は、前のコンテキストを再記憶するため、後の使用のために記憶される。
1又はそれ以上のエレメントの特性を、所定のデータブロックを処理した後に、効果的且つ同時にアルゴリズムを変えるために、又は、断片的なシーケンシャル方式で、より複雑なアルゴリズムを実行するために変更できる。製品のフィールドの更新等のために変更する1又はそれ以上のエレメントの特性を、システムの初期化の際にロードできる。また、エレメントの特性の部分を相対的に固定にしたままで、別の部分を可変にするハイブリッド構成が設けられる。この一例は、入力サンプルデータに固定フィルタ係数を乗じるデジタルフィルタである。このケースでは、プログラム可能な部分が可変のオペランドを含みつつ、固定エレメントを乗算演算によりセットする。プログラム可能又はハイブリッドエレメントを具えた状態で、フィルタ係数をパラメータとしてアプリケーションの中で変えてもよい。
エレメントの最も簡単な実施例は、同期設計方法を使用し、現在入手可能な市販の設計ツールが一般にこのような方法を実行するように、単一のグローバルなタイミング基準を全ての内部レジスタに使用する。
非同期式の設計方法は、電力消費及びデータ処理能力の分野において周知の利点を有する。単一のエレメントが配列全体にわたって複製されるため、非同期式方法を用いるときの設計課題を最小限にする。可変精度インターフェイスチャンネルは、データフローの原理を実施して閉ループのハンドシェーキングを有するため、チャンネルインターフェイスからクロックを除去することを実際に簡素化する。このため、非同期式可変精度チャンネル及び/又は非同期式エレメントを組み込んだ配列の追加の実装が可能となる。
配列の各エレメントが個別にアドレス付けされ及びアクセスされるように、システムのインターフェイスが設けられている。これを、初期化及び診断の目的のため、又は、エレメントの中の処理動作にデータを投入又はそこから引き出すのに使用してもよい。また、個別の処理エレメントが割り込み信号をアサートすることによってイベントを通知するように、機構が設けられている。
ある実施例では、エレメント間の可変精度インターフェイスが、ワード中の現在のディジット位置を表示するステータスラインを具えたディジットシリアルバス(disit−serial bus)である。ディジットシリアルは、ワードが1又はそれ以上のビットから成る一連のディジットから成ることを意味する。ディジットサイズは、所定の実装に固定されるが、1ワードを構成するディジットの数を変えてもよい。1つのディジットは、1つのワードの最初、最後、又は中間の位置を占める。単一のディジットのワードが可能であり、このようなケースでは、ディジットは最初及び最後の双方である。2つのディジットのワードは、最初及び最後のディジットを有しているが、中間のディジットを有していない。3又はそれ以上のディジットから成るワードは1又はそれ以上の中間のディジットを有する。
エレメントの相互接続バス幅が、nディジットのビットに加えて、2つのフラグビット及び2つのハンドシェイク信号に固定される。フラグビットは、ディジットがデータワードの最初及び/又は最後のディジットかどうかを表示する。2つのハンドシェイク信号は、データを処理エレメントに送受信する準備ができている場合に表示する。グローバルのクロック信号を、同期的な実装のために任意に使用してもよい。フラグビットを適切に設定することにより、nビットよりも長いワードをインターフェイスを介して連続的に送信してもよい。単一のフラグビットが、境界条件をマークするのに技術的に十分であるが、これは、最も重要でない部分及び最も重要な部分を個別に判定できるように、各入力について1ディジットのパイプライン遅延を追加することを必要とする。
図2は、ワードをディジット及びフラグビットにマッピングして、可変精度ワードを形成するやり方を示し、一方、図3はこのようなトランザクションについての可変精度バスの活動を示す。ワード21は、複数のディジットから成る。ディジット0「D0」は、ワードの最初の最も重要でないディジットを示し、ディジットn「Dn」は、ワードの最後の最も重要なディジットを示す。フラグは、最初のディジット24については「F」26、及び最後のディジット22については「L」25が設定されている。最初又は最後でないディジットは、連続したディジット23である。1つのディジットのみを占めるワードの場合、F及びL双方のフラグビットが設定される。表2は、可能なディジットに対応するフラグF及びLの組み合わせを表す。ディジットの大きさを、任意の正の整数にしてよい。好適な実施例では、ディジットの大きさが8ビットに等しい。これよりも小さいディジットの大きさ又は大きいディジットの大きさを、様々な処理能力及び分野の要求を具えたアプリケーションを目的とする配列に適用してもよい。
最初又は最後のディジットとディジットの重要度との間に区別がない。可変精度バスに追加のビットを加えて、ディジットの重要度をさらに特定することができるが、それは任意である。また、追加的なフォーマットビットを追加して、符号付きでないものと対比して符号付きのもの、又は他のフォーマットを示すことができる。好適な実施例では、最も重要なディジットと対比した最も重要でないディジットの送信が、エレメントの動作を選択したときにアルゴリズムのレベルで処理される。必要に応じて、最も重要なディジットと最も重要でないディジットとの間でフォーマットを変換するエレメントの機能が利用できる。
本実施例に係る可変精度チャンネルを介したデータの送受信のイベントのシーケンスを図3に示す。図示する全ての信号は、送り先から出力されソースに入力される肯定応答ACKを除いて、ソース又は送信エレメントから出力され送り先又は受信用エレメントへ入力される。システムクロックは図示しない。いくつかの実施例が可変精度バスの一部としてクロック信号を要するが、これは、ハンドシェイクが閉ループとなるように可変精度チャンネルプロトコルを規定するため任意であり、したがって、完全な非同期式インターフェイスを実装してもよい。これは、処理エレメントが互いに非同期式である場合の実施例における要点である。
チャンネル送信エレメントは、対応するF及びLフラグとともに、データの1つのディジット(例えば、D0)がバス上で有効であるときに、リクエスト信号REQをアサートする。データ、フラグ、及びREQ信号は、チャンネル受信エレメントがこれらの信号をバスからうまく読み出したことを示す肯定応答信号ACKがチャンネル受信エレメントによって送信されるまで保持される。この時点で、リクエスト信号REQを解除し、データ及びフラグは自由に状態を変えることができる。受信エレメントは、REQ信号が解除されるまでACKをアサートし続ける。REQ信号は、ACK信号が非アクティブとなり新たなトランザクションとして新たなデータが有効となるまで、再度設定されることはない。このような方法では、D0−Dnディジットを具えるデータワードをチャンネル送信エレメントからチャンネル受信エレメントに伝送する。
また、近接する処理エレメントに接続している可変精度通信チャンネルは、個別のエレメントをバイパスするための機構を与え、あるエレメントを通信が飛び越えることができる。このバイパス性能は、エレメントの接続のルート決めをより簡単にする。未使用のエレメントからの出力は、完全にこのエレメントをバイパスすることによって、同じ未使用のエレメントの別の方向の1つの入力に繋げてもよい。
図4は、4つの方向の各入力(例えば、符号42)及び出力(例えば、符号41)可変精度チャンネルとともに、エレメント13及びエレメントの中心部44の図を示す。入力チャンネルは、処理中心部及び出力セレクタ(例えば、符号43)に通じている。エレメントの中のバイパスレジスタは、このエレメント自身又はエレメントの各出力チャンネルに対する他の3つの入力のうちの1のいずれかから出力ソースを選択する。簡単のために一つのマルチプレクサ43を通過する出力チャンネルを示すが、実際には、選択したチャンネルに関するACKリターン(入力)信号があることに留意されたい。これは、ACK入力用の追加のマルチプレクサという意味を含んでいる−各方向に対して一組のマルチプレクサを有する。
(明りょうのため)本発明の実施例に係るシステムインターフェイスを図1に示していないが、このシステムにより、復号化した行列アドレスに基づいて、各エレメントを選択できる。このシステムインターフェイスは、図5に示すように、各エレメントの内部構成物(内部のレジスタ及びメモリ)を読み出し及び書き込むための機構を与える。システムアドレスバス54を使用して、それぞれ読み出し又は書き込み動作のための個別のエレメントを選択する。アドレスデコーダ53は、各エレメント用の個別の選択ライン(例えば、符号51)及び個別のエレメントの内部構成物にアドレス付けをするためのサブアドレスフィールドにアドレスを分解する。サブアドレスのサイズは、アドレス付けが必要な個別のエレメントの内部構成物の数の関数である。明りょうのために、各行の選択ライン、サブアドレス、及び読み出し書き込みコマンドラインのグループを、図中1本のライン(例えば、符号52)で図示する。デコーダをより大きな配列構造に配設してもよい。システムデータバス55は、書き込み動作のための書き込みデータ、又は読み出し動作の結果としての読み出しデータを搬送する。双方向を図示しているが、実際には、別々の読み出し及び書き込みバスを用いて実施してもよい。さらに、読み出しマルチプレクサをエレメント全体に亘って配設してもよい。
アドレス及び制御信号、入力データ、及び出力データは、まとめてシステムバスと称される。読み出し/書き込みコマンドライン、エレメント選択ライン及びサブアドレス51に加えて、各エレメント13に入力データが与えられ、出力データバスに出力データを与える。入力及び出力データバスは、必ずしも可変精度ではないが、好適な実施例では、従来の32ビットのバスを使用する。書き込み制御信号は、バイトライト(byte write)可能な信号を有する。アドレス付けするエレメントの内部構成物は、レジスタ又はメモリのブロック、又は、エレメントの内部構成物に応じて他のデータ構造により構成してもよい。各エレメントへのアドレス入力は、エレメントの中のアドレス付け可能な各リソースを復号化又は解読するのに十分でなければならない。このアドレス部分は、アドレスの下位アドレスビットを具えてもよい。そして、上位アドレスビットを使用して、アドレス付けすべき実際のエレメントを示すことができる。これらのビットは、個別−各エレメントにつき1つ−の選択ライン(例えば、符号51)を与えるデコーダモジュール53に入力される。
ある実施例では、システムインターフェイスが、従来の非可変型精度バスを有している。この実施例では、バスは独立したバイトがイネーブル(enable)となっている32ビットのデータバスである。ディジットの位置のタグビットを設定するための簡単な機構を提供するために、レジスタ又はメモリアドレスのエイリアスが設けられている。利用できる4つのビュー(view)がある。書き込み用システムインターフェイスのエイリアスを表3に図示しており、読み出し用のそれを表4に図示する。
説明する実施例でのディジットの大きさは、8ビットである。システムインターフェイスの書き込み動作では、1番目のエイリアスにより、F及びLビットを自動的に設定した状態で8ビットのワードサイズのデータの書き込みが可能である。2番目のエイリアスは、フラグビットを設定した状態で16ビットのワードを書き込むために設けられており、3番目のエイリアスは、32ビットのワードサイズを書き込むためである。4番目のエイリアスにより、F及びLビットをゼロにした状態でデータの書き込みができ、32ビットよりも大きいワードをロードするのに有用である。エイリアス1にバイトゼロを書き込んだ後にエイリアス4に書き込んでエンドポイントバイトを処理することによって、より大きなサイズのワードを書き込んでもよい。最終的に、最後のバイトはエイリアス1に書き込まれることを必要とする。
システムインターフェイスの読み出しエイリアスは、Fビット、Lビット、及びデータビットを別々に読み込むためのメカニズムを与える。エイリアス1及び4は同一であり、読み出しアドレスに関するデータのみを戻す。エイリアス2は、Fフラグの各バイトの下位ビットを戻し、エイリアス3はLフラグの各バイトの下位ビットを戻す。エイリアス2及び3から読み出す場合は、データは戻らない。これらのエイリアスは、ディジットのアライメントを決定するためのみに使用する。
本実施例では、図6に示す単一のコマンド用のコマンドインターフェイスが、システムインターフェイスとは異なる方法により行列のアドレス指定を提供する。1つのエレメントに1つずつアドレス付けしてそれらにデータを提供する代わりに、各コマンドに行及び列のアドレスがある。コマンドアドレスレジスタは、行63及び列64の部分に分解される。行の部分を復号化して、配列の各行について別々の行選択ライン61を提供する。同様に、列の部分を復号化して、配列の各列について別々のライン62を提供する。行及び列のコマンド信号は、エレメントの配列の行及び列を介して連結される。コマンドの挿入ポイントに最も近い最初の列のエレメントは、列コマンド信号62を最初に受け取る。それは、隣の列のエレメントにその信号を出力しながら、信号の値を監視する。各エレメントは、最後の列のエレメントに到達するまで、次々と同じことを行う。行のエレメントは、同じような方法で処理される。行の最初のエレメントは、行コマンド信号61を受け取り、同じラインの信号を監視した状態で、同じ行の隣のエレメントにそれを出力する。エレメントが行及び列の双方の同じコマンド信号がアクティブであると観測すると、エレメントは指定されたコマンドを実行するよう命令されているものと認識する。システムインターフェイスと同様にアドレス付けすると、1度に1つのエレメントのみにアクセスする。制御インターフェイスとともに、矩形状の領域の中の1つのエレメントから多くの隣接するエレメントを同時に選択してもよい。
コマンドインターフェイスにマップするコマンドの例は、リセット、イネーブル(enable)、消去割り込み、及び切り換え状態を含む。リセットコマンドを使用してエレメント又はエレメントのグループを初期化する。イネーブルコマンドを使用して、エレメントのグループを選択的にイネーブル又はディセーブル(disable)とする。消去割り込みコマンドを使用してエレメントの内部の状態を消去し、状態インターフェイスの割り込み出力に応じて使用する。各エレメントの機能及びコンテキストを二重バッファ式としてもよく、配列全体の領域が、状態コマンドの値を変えることによって、コンテキストの切り替えを同時に実行してもよい。
コマンドの入力に加えて、図7に示すように、状態の出力もまた同じような方法で状態インターフェイスに組み込まれている。割り込み状態信号の出力が、状態レジスタに読み込まれ行の部品73及び列の部品74から成る行及び列を介して直列式に接続されている。状態レジスタでは、配列の各行及び列で別々のビットを有する。各行のエレメントは、行71についての前のエレメントから出力を取り込んで、必要に応じて状態信号を変更し、その行の隣のエレメントに出力する。各エレメントは前の行のエレメントから入力を次々と受け取り、それ自身の状態情報を加えて、行の最後のエレメントの次の状態レジスタに到達するまで出力する。列のエレメントは、同じような機能を実行し、前のエレメント72から入力を受け取り、それ自身の状態情報を加えて、列の隣のエレメント、又は(列の最後のエレメントの場合)状態レジスタ74に出力する。
以下の部分で、擬似コード形式を使用して、典型的なエレメントのマイクロ命令シーケンスを説明する。擬似コードは一般的なプログラミング構成を表しており、単一のエレメント又はその組み合わせのマイクロ命令が動作を実行できるが、エレメントのマイクロ命令に直接的な対応を有するという意味を必ずしも含むものではない。入力又は出力擬似命令動作は、任意の論理チャンネル識別子である可変の名前を使用する。4つの入力チャンネル識別子:a,b,c及びdが設けられている。同様に、4つの論理出力チャンネル識別子:w,x,y及びzが設けられている。論理識別子が4つの方向に対応する物理的なチャンネルに独立してマップされることに留意されたい。従来のコードとは異なり、エレメントの擬似コードは自動的に繰り返される。各エレメントのコードの流れは、終了すると始めから再スタートする。
このコードは、階乗関数を実行し、入力する整数「a」を呼び出すと、「a!」を返す。このアルゴリズムは、マッピング処理を単純化する単一のアサーションの原理に従う。ループ構造中及びループ構造の外側でアサーション間の区別がなされることに留意されたい。整数「a」は入力値である。整数「i」は、ループカウンタとして使用する一時数値変数である。整数「w」は途中の計算の作業値を保持する一時的数値変数で、整数「y」は結果及び戻り値である。定義によれば、0!=1であるため、ループの中に「w」の割当てがあるが、「w」はループの外側で1に初期化される。
階乗のアルゴリズムの代替的な表現を図8に示す。入力値「a」をステップ82で受け、「w」をステップ83で初期化し、ループカウンタをステップ84で初期値にセットする。動作82,83及び84が、ループグループ85及びその次のループグループ89とは別の一つのグループ81をまとめて形成する。これらの動作ブロックは、特定の開始及び終了条件を有するループ動作によって表される。動作グループをネストさせてもよい。グループ81を直列に繋いでもよいことに留意されたい。これは、それらが逐次言語及びシーケンシャルマシン構造に基づくため、フローチャートにおける慣例である。実際には、動作がエレメントにマッピングされると、繰り返し処理のみがデータ依存を具える。入力データが有効な場合、係属しているデータ出力が処理されているという条件で、エレメントの動作が同時に進む。
ループカウンタテスト処理86は、続行するか否かをチェックし;継続条件に合致する場合(i<=a)、ステップ87で乗算を実行してステップ88でループカウンタをインクリメントする。ループ終了条件に合致する場合(i>a)、ステップ810で「w」を「y」に代入し、ステップ811でこの値を出力(返却)する。
ここで、図8のフローチャートに示すアルゴリズムは、エレメントの動作の利用可能なライブラリーに基づいてエレメントにマッピングされる。この処理は、特定のプロセッサ又はアーキテクチャに特有でない中間的な汎用コードを生成するソフトウェア・コンパイラのそれと同じである。この処理結果を図9に示す。図示する各動作ブロックは、1又はそれ以上のエレメントを示す。また、エレメントとエレメントとの間の接続はポイント・ツー・ポイント接続であるが、単一のソースが付加的な送り先を有するように、いくつかのエレメント(94,912)を使用してデータチャンネルをT字状にして、拡張性を高めている。
「a」の入力82は、ループ入力レジスタエレメント(lireg)96に変換される。ループレジスタを使用して、ループの入力及び出力ポイントでのデータの流れを制御する。ループ入力レジスタは、データ入力及び出力チャンネルと、付加的な制御入力チャンネルとを具える通常のレジスタと同じである。制御入力部は、入力データをサンプリングして内部レジスタにロードすべき場合に重要であり、ループ開始条件に繋がっている。制御入力チャンネルが真の場合、「a」が内部レジスタにロードされる。続いて、内部レジスタが出力データチャンネルに出力される。データは常に出力される−この条件のみが入力データのロードである。ループ開始条件は、ループの最初の繰り返しに対して真のブール値であり、次の繰り返しに対して偽である。ループの一番最後の繰り返しの後に、それは再び真となる。lireg(擬似コード)の一般化シーケンスは、以下のとおりである。
ステップ88に対応するループカウンタの値「i」は、初期化レジスタエレメント92に記憶される。初期化レジスタエレメントは、初めに出力される初期パラメータ値(このケースではゼロ)を有する。このポイントから、それは取り込まれるワードを出力する単なる遅延である。入力ワードのマークは、維持されて出力に反映される。iregのシーケンスは:
最初の検査により、このエレメント92が必要でないと決定してもよい。(加算エレメント91及びマルチプレクサ93を通した)フィードバックループのため、iを保持するレジスタが有効でない場合、パスが開始しない。マルチプレクサ93は、双方の入力のデータを消費しなければならないが、このような理由により、iregが初期値ゼロとそれを入力する前に出力データとを有する。
(割り当て84に対応する)定数レジスタ97をiの初期化のために使用する。それは、入力ポートが接続されていないことを除いて「reg」と同様である。一定値が初めに保持されて継続的に出力される。固定エレメントでは、これはハードウェアに組み込まれた値であるが、プログラム可能なエレメントでは、この値は、エレメントのコンテキスト又は定義の一部としてロードされるパラメータであるか、又は外部のプロセッサによって変更される。
mux93は、従来のデータマルチプレクサとして機能し、ステップ85のフィードバックループの終わりを表す。ある入力表現は、「i=1」84で、ループ本体85に入る際にのみ選択されるが、他の表現は、「i=i+1」88で、ループを終了するまで選択される。muxの出力は、「i」を表す。双方の入力が消費され;制御入力がどちらか一方の入力を出力に反映することを選択し;他方の入力が捨てられる。mux動作のための擬似コードは以下のとおりである:
ループ比較演算器95、加算演算器91、乗算演算器99は、mux出力を必要とする。また、アルゴリズムがデータを消費するのと同じ速さで進むことを指摘することは重要である。このため、新たな「i」の値は、乗算演算器、ループ比較演算器、及び加算演算器が全て最後の値を消費するまで現れない。muxは、ただ一つの出力を有するため、T型エレメント94を挿入して付加的に拡張性を高める。代替物が複数の出力を具えたmuxを生成する。また、2以上の出力を有するT型エレメントを形成してもよい。T型エレメントのための擬似コードは、以下のとおりである:
lte機能では、演算が入力ディジット毎に進むが、全ての入力ディジットを受け取って初めて出力が生じることに留意されたい。このようなエレメントでは、2つの符号付きの表記法を使用してb入力値がaから引き算される。carry−flag、negative−flag、及びzero−flag変数は、従来のプロセッサのそれらと同じように、ALUの動作に基づいて設定される内部フラグである。ワードのディジットの位置フラグを使用して、ワードの始まり及びディジットを示す。
lteエレメントの出力は、ループテスト変数である:それはループが繰り返されている間は真で、そうでなければ偽である。特定のループエレメント98を使用してループの実行の状態を維持する。ループ比較動作の出力は、ループエレメント入力(「テスト」)に送り込まれ、別々の2つの出力を生成する:一方は、一番最初のループの繰り返し(「スタート」)の際に真に設定され、他方は、最後のループの繰り返し(「ストップ」)の際に真に設定される。最初及び最後以外のループの繰り返しは、いずれも偽に設定される出力を有する。初期条件(エレメントに対するリセットの後の)は、「スタート」出力では真で、「ストップ」出力では偽である。一例として、このような特別な実行は、複数の「スタート」出力を有して、T型エレメントを追加する必要性を減らす。いくつかのエレメントを一つにまとめ、(十分な入力及び出力チャンネルが存在する場合)特に出力を複製するためのそれらのマイクロ命令シーケンスを変えることによって、最適化を実行可能である。これは機能全体に影響を与えないが、処理能力又は待ち時間に影響を与える可能性がある。さらに、それは配列の中で得られるエレメントの配置又は方向に影響を与える可能性がある。ループエレメントの擬似コードは:
乗算エレメント99は、2つの入力の整数乗算を実行する。初めの入力がnディジットを有し、2番目がmディジットを有する場合、結果はn+mディジットを有する。階乗の実施例では、前の積をループ変数「i」で乗算する。乗算エレメントの擬似コードは:
実際の乗算による積及び乗算の結果としての余りに使用する表記法は、十分な精度の乗算のために様々なサイズを表そうと試みている。
レジスタ910は、次の繰り返しのために作業用の積の値を保持する。このエレメントの機能は、エレメント92のそれと同様である。レジスタの大きさは、複数のエレメントをカスケード接続することによって達成する最大値を保持するのに十分大きくなければならない。regのシーケンスは:
定数914は、エレメント97と機能が同一であり、マルチプレクサ911は、エレメント93と同じである。T型エレメント912は、エレメント94と同じである。
ループ出力レジスタ(loreg)913は、lireg96と機能が似ている。liregは、保持データを常に出力するが、選択するとその内部レジスタの書き換えのみを行う。liregは、一般にループの入力に使用されるが、loregは、一般にループの出力に使用される。loregの擬似コードを以下に示す:
loregの制御入力部は、ループエレメント停止信号に接続されているため、「y」データは全てのループの繰り返しが完了した後のみ有効となる。
図10は、同一のエレメントの配列にマップされた図9のエレメントを示す。実行するためのアルゴリズムの特定のマッピングを必要としない未使用のエレメント101が場所を占める。いくつかのエレメントが、エレメントの動作の点で未使用であるが、エレメント102といったように相互接続をするために使用される。機能を実行する他のエレメントが、エレメント内部でルーティングを与えてエレメント95といった実際のエレメントをバイパスするために使用する予備の入力又は出力チャンネルを有してもよい。
当業者は、情報及び信号を様々な異なる技術及び方法を用いて表してもよいことを理解するであろう。例えば、上記の記載にわたって言及されているデータ、命令、コマンド、情報、信号、ビット、記号等を、電圧、電流、電磁波、磁場又は粒子、光場又は光子、又はそれらの組み合わせで表してもよい。情報及び信号を、ワイヤ、金属の配線、ビア(via)光ファイバ等を含む何らかの適切な輸送媒体用いて、開示したシステムの部品間で通信してもよい。
さらに、当業者は、本書に開示されている本実施例とともに記載された様々な具体的な論理ブロック、モジュール、回路、及びアルゴリズムのステップを、様々な方法で実施してもよいことを十分理解するであろう。システムのトポロジーのこのような多様さを明りょうに記載するために、具体的な部品、ブロック、モジュール、回路、及びステップは、一般にそれらの機能性の観点で上述されている。このような機能性を上記の特定の機能的なブロックで実施するかどうかは、特定のアプリケーション及びシステム全体に課される設計制約及び対応する設計上の選択に依存する。当業者は、それぞれの特定のアプリケーションのために様々な点で上記の機能性を実施するであろうが、このような実施の決定は、本発明の範囲を逸脱すると解釈すべきではない。
本発明によって提供される利益及び利点は、特定の実施例に関連して上述されている。より明白となるこれらの利益及び利点、及びエレメント又は限定は、任意又は全ての特許請求の範囲の重要な、必須の又は本質的な態様として解釈すべきではない。本書で使用するように、「具える」、「具えている」という用語又はこれらの他の変形は、これらの用語に付随するエレメント又は限定を非排他的に含むとして解釈することを意図する。このため、エレメントの組から成るシステム、方法、又は他の実施例は、これらの実施例のみに限定されず、明示的に記載されておらず又は主張した実施例に特有の他のエレメントを含んでもよい。
特定の実施例を参照して本発明を説明したが、本実施例は具体例であって、本発明の範囲はこれらの実施例に限定されないことに留意されたい。上記の本実施例に対する多くの変形、変更、追加及び改良が可能である。これらの変形、変更、追加及び改良は、上記の特許請求の範囲に記載のように本発明の範囲内にある。
Claims (20)
- 複数のデータ処理エレメント13と、
配列11の中で前記データ処理エレメントを互いに連結する1又はそれ以上の相互接続14とを具え、
前記1又はそれ以上の相互接続14が前記データ処理エレメント間で可変精度データを伝達するよう構成されていることを特徴とするシステム。 - 前記1又はそれ以上の相互接続14が非同期式であることを特徴とする請求項1に記載のシステム。
- 前記1又はそれ以上のデータ処理エレメント13が非同期式であることを特徴とする請求項1に記載のシステム。
- 前記1又はそれ以上のデータ処理エレメント13が、局所的に同期式で、全体として非同期式であることを特徴とする請求項1に記載のシステム。
- 前記1又はそれ以上のデータ処理エレメント13がディジットシリアルデータを処理するよう構成されていることを特徴とする請求項1に記載のシステム。
- 前記1又はそれ以上のデータ処理エレメント13が、タグ25,26を含むディジットシリアルデータを処理して、対応するデータワード21のビットの位置を識別するよう構成されていることを特徴とする請求項5に記載のシステム。
- さらに、前記1又はそれ以上のデータ処理エレメントが、各ディジットが、前記ディジットが前記対応するデータワード21の最初のディジットかどうかを示す第1のタグ26及び前記ディジットが前記対応するデータワードの最後のディジットかどうかを示す第2のタグ27を有する、ディジットシリアルデータを処理するよう構成されていることを特徴とする請求項6に記載のシステム。
- 各データ処理エレメント13が、前記データ処理エレメントによって受信したデータに関する所定の単一動作を実行するよう構成されていることを特徴とする請求項1に記載のシステム。
- 各データ処理エレメント13が、受信データに関する複数の選択可能な動作のうちの1を実行するよう構成されていることを特徴とする請求項1に記載のシステム。
- 各データ処理エレメント13が、2又はそれ以上の近接するデータ処理エレメントからデータを交互に受信するようプログラム可能で、2又はそれ以上の近接するデータ処理エレメントに出力データを送信するようプログラム可能であることを特徴とする請求項1に記載のシステム。
- 各データ処理エレメントが、第1の近接するデータ処理エレメントから第2の近接するデータ処理エレメントに受信したデータをバイパスするようプログラム可能であることを特徴とする請求項10に記載のシステム。
- 前記配列が、2次元の行と列の配列11を具えており、
最初の行の各データ処理エレメントが、最後の行の対応するデータ処理エレメントに連結されていることを特徴とする請求項1に記載のシステム。 - 前記配列が、2次元の行と列の配列11を具えており、
最初の列の各データ処理エレメントが、最後の列の対応するデータ処理エレメントに連結されていることを特徴とする請求項1に記載のシステム。 - 前記システムが、2又はそれ以上の前記データ処理エレメントを通してデータを連続的に送ることによって、複数の各データワードを処理するよう構成されていることを特徴とする請求項1に記載のシステム。
- さらに、1又はそれ以上の前記データ処理エレメントに連結された非可変精度型のシステムバスを具え、前記1又はそれ以上のデータ処理エレメント及び周辺機器12からデータ通信可能に構成されていることを特徴とする請求項1に記載のシステム。
- 前記周辺機器12が外部メモリを具えることを特徴とする請求項15に記載のシステム。
- さらに、前記データ処理エレメントに連結されたコマンドインターフェイスを具え、
前記データ処理エレメントとコマンドの通信ができるよう構成されていることを特徴とする請求項1に記載のシステム。 - 前記コマンドインターフェイスが、選択した前記データ処理エレメントに同時にコマンドの通信ができるよう構成されていることを特徴とする請求項17に記載のシステム。
- 前記各データ処理エレメントが、受信データに関する複数の選択可能な動作のうちの1を実行するよう構成されており、
前記各データ処理エレメントの選択可能な動作のうちの1を、前記コマンドインターフェイスを介して前記データ処理エレメントにコマンドの通信をすることによって選択することを特徴とする請求項18に記載のシステム。 - さらに、前記データ処理エレメント13に連結されたステータスインターフェイスを具えており、
前記データ処理エレメントからコントロールユニットにステータス情報の通信ができるよう構成されていることを特徴とする請求項1に記載のシステム。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US67399505P | 2005-04-22 | 2005-04-22 | |
US67407005P | 2005-04-22 | 2005-04-22 | |
US67399405P | 2005-04-22 | 2005-04-22 | |
PCT/US2006/015034 WO2006116044A2 (en) | 2005-04-22 | 2006-04-21 | Array of data processing elements with variable precision interconnect |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008537268A true JP2008537268A (ja) | 2008-09-11 |
Family
ID=37215285
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008507904A Pending JP2008537268A (ja) | 2005-04-22 | 2006-04-21 | 可変精度相互接続を具えたデータ処理エレメントの配列 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7500043B2 (ja) |
EP (1) | EP1880274A2 (ja) |
JP (1) | JP2008537268A (ja) |
WO (1) | WO2006116044A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021090711A1 (ja) * | 2019-11-06 | 2021-05-14 | 太陽誘電株式会社 | データ処理装置および情報処理装置 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002013000A2 (de) | 2000-06-13 | 2002-02-14 | Pact Informationstechnologie Gmbh | Pipeline ct-protokolle und -kommunikation |
DE10081643D2 (de) * | 1999-06-10 | 2002-05-29 | Pact Inf Tech Gmbh | Sequenz-Partitionierung auf Zellstrukturen |
US8058899B2 (en) * | 2000-10-06 | 2011-11-15 | Martin Vorbach | Logic cell array and bus system |
WO2007143278A2 (en) * | 2006-04-12 | 2007-12-13 | Soft Machines, Inc. | Apparatus and method for processing an instruction matrix specifying parallel and dependent operations |
US7765382B2 (en) * | 2007-04-04 | 2010-07-27 | Harris Corporation | Propagating reconfiguration command over asynchronous self-synchronous global and inter-cluster local buses coupling wrappers of clusters of processing module matrix |
WO2011022114A1 (en) | 2009-08-20 | 2011-02-24 | Rambus Inc. | Atomic memory device |
US8294490B1 (en) * | 2010-10-01 | 2012-10-23 | Xilinx, Inc. | Integrated circuit and method of asynchronously routing data in an integrated circuit |
US8358148B1 (en) | 2010-10-01 | 2013-01-22 | Xilinx, Inc. | Programmable integrated circuit and method of asynchronously routing data in an integrated circuit |
US8913601B1 (en) | 2010-10-01 | 2014-12-16 | Xilinx, Inc. | Programmable integrated circuit and method of asynchronously routing data in a circuit block of an integrated circuit |
US8752064B2 (en) * | 2010-12-14 | 2014-06-10 | Advanced Micro Devices, Inc. | Optimizing communication of system call requests |
US9274793B2 (en) | 2011-03-25 | 2016-03-01 | Soft Machines, Inc. | Memory fragments for supporting code block execution by using virtual cores instantiated by partitionable engines |
CN105247484B (zh) | 2013-03-15 | 2021-02-23 | 英特尔公司 | 利用本地分布式标志体系架构来仿真访客集中式标志体系架构的方法 |
GB2533292B (en) | 2014-12-15 | 2016-11-02 | Ibm | Differential data access |
WO2016128050A1 (en) * | 2015-02-12 | 2016-08-18 | Pro Design Electronic Gmbh | Content adaptive signal probing in hardware emulation devices |
US9928190B2 (en) * | 2015-06-15 | 2018-03-27 | International Business Machines Corporation | High bandwidth low latency data exchange between processing elements |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5113523A (en) * | 1985-05-06 | 1992-05-12 | Ncube Corporation | High performance computer system |
US4858177A (en) * | 1987-03-27 | 1989-08-15 | Smith Harry F | Minimal connectivity parallel data processing system |
EP0428770B1 (de) * | 1989-11-21 | 1995-02-01 | Deutsche ITT Industries GmbH | Datengesteuerter Arrayprozessor |
US5274832A (en) | 1990-10-04 | 1993-12-28 | National Semiconductor Corporation | Systolic array for multidimensional matrix computations |
FR2680026B1 (fr) * | 1991-07-30 | 1996-12-20 | Commissariat Energie Atomique | Architecture de systeme en tableau de processeurs a structure parallele. |
US6175717B1 (en) * | 1993-04-16 | 2001-01-16 | Trans Video Electronics, Inc. | Global mobile video communications system |
US5710910A (en) * | 1994-09-30 | 1998-01-20 | University Of Washington | Asynchronous self-tuning clock domains and method for transferring data among domains |
US6644771B1 (en) * | 1997-07-12 | 2003-11-11 | Silverbrook Research Pty Ltd | Printing cartridge with radio frequency identification |
US6546004B2 (en) * | 1998-12-31 | 2003-04-08 | Nortel Networks Limited | Method and apparatus for distributing access devices for voice/data communication in a communication system over packet based networks |
US6260087B1 (en) * | 1999-03-03 | 2001-07-10 | Web Chang | Embedded configurable logic ASIC |
US6832185B1 (en) * | 2000-03-09 | 2004-12-14 | Quickturn Design Systems, Inc. | Non-synchronous hardware emulator |
US7006531B2 (en) * | 2001-02-21 | 2006-02-28 | Integrated Device Technology, Inc. | Method and apparatus for transmitting streamed ingressing data through a switch fabric that provides read requests at an ingress independent request rate |
GB2395299B (en) * | 2002-09-17 | 2006-06-21 | Micron Technology Inc | Control of processing elements in parallel processors |
-
2006
- 2006-04-21 WO PCT/US2006/015034 patent/WO2006116044A2/en active Application Filing
- 2006-04-21 EP EP06750922A patent/EP1880274A2/en not_active Withdrawn
- 2006-04-21 JP JP2008507904A patent/JP2008537268A/ja active Pending
- 2006-04-21 US US11/379,666 patent/US7500043B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021090711A1 (ja) * | 2019-11-06 | 2021-05-14 | 太陽誘電株式会社 | データ処理装置および情報処理装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2006116044A2 (en) | 2006-11-02 |
US20060259529A1 (en) | 2006-11-16 |
WO2006116044A3 (en) | 2009-04-23 |
US7500043B2 (en) | 2009-03-03 |
EP1880274A2 (en) | 2008-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008537268A (ja) | 可変精度相互接続を具えたデータ処理エレメントの配列 | |
EP2237165B1 (en) | Multiprocessor system with specific architecture of communication elements and manufacturing method therefor | |
US7895416B2 (en) | Reconfigurable integrated circuit | |
JP4484756B2 (ja) | リコンフィギュラブル回路および処理装置 | |
US8949576B2 (en) | Arithmetic node including general digital signal processing functions for an adaptive computing machine | |
US8106679B2 (en) | Data processing system | |
US7302667B1 (en) | Methods and apparatus for generating programmable device layout information | |
US20060242213A1 (en) | Variable Precision Processor | |
JP2006510129A (ja) | システム・オン・チップへのアレイ・プロセッサのモジュラ統合 | |
CN117009287A (zh) | 一种于弹性队列存储的动态可重构处理器 | |
Tunbunheng et al. | A retargetable compiler based on graph representation for dynamically reconfigurable processor arrays |