(57)【要約】可変精度相互接続（１４）で互いに連結されたデータ処理エレメント（１３）の配列（１１）を使用してデータを処理するシステム及び方法。一実施例が、可変精度相互接続により結合され行列配列（１１）を形成するデータ処理エレメントを具える。相互接続（１４）及び／又はデータ処理エレメント（１３）は同期式又は非同期式にしてよい。データ処理エレメント（１３）は固定方法で動作するか又はプログラム可能にしてよく、配列の中の選択可能なデータ処理エレメント（１３）をバイパスさせてもよい。相互接続（１４）及びデータ処理エレメント（１３）を、各ディジットがデータワードの中の最初及び／又は最後のディジットかどうかを識別するタグ（２５，２６）を具えたディジットシリアル方法でデータを扱うよう構成してもよい。データ処理エレメントを、データ処理エレメントと外部の装置との間でデータ通信可能なシステムバス（５４，５５）に結合してよく、制御情報をデータ処理エレメントに及びデータ処理エレメントから伝達できる。【選択図】図１
2008537268.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータ処理エレメント１３と、
配列１１の中で前記データ処理エレメントを互いに連結する１又はそれ以上の相互接続１４とを具え、
前記１又はそれ以上の相互接続１４が前記データ処理エレメント間で可変精度データを伝達するよう構成されていることを特徴とするシステム。
【請求項２】
前記１又はそれ以上の相互接続１４が非同期式であることを特徴とする請求項１に記載のシステム。
【請求項３】
前記１又はそれ以上のデータ処理エレメント１３が非同期式であることを特徴とする請求項１に記載のシステム。
【請求項４】
前記１又はそれ以上のデータ処理エレメント１３が、局所的に同期式で、全体として非同期式であることを特徴とする請求項１に記載のシステム。
【請求項５】
前記１又はそれ以上のデータ処理エレメント１３がディジットシリアルデータを処理するよう構成されていることを特徴とする請求項１に記載のシステム。
【請求項６】
前記１又はそれ以上のデータ処理エレメント１３が、タグ２５，２６を含むディジットシリアルデータを処理して、対応するデータワード２１のビットの位置を識別するよう構成されていることを特徴とする請求項５に記載のシステム。
【請求項７】
さらに、前記１又はそれ以上のデータ処理エレメントが、各ディジットが、前記ディジットが前記対応するデータワード２１の最初のディジットかどうかを示す第１のタグ２６及び前記ディジットが前記対応するデータワードの最後のディジットかどうかを示す第２のタグ２７を有する、ディジットシリアルデータを処理するよう構成されていることを特徴とする請求項６に記載のシステム。
【請求項８】
各データ処理エレメント１３が、前記データ処理エレメントによって受信したデータに関する所定の単一動作を実行するよう構成されていることを特徴とする請求項１に記載のシステム。
【請求項９】
各データ処理エレメント１３が、受信データに関する複数の選択可能な動作のうちの１を実行するよう構成されていることを特徴とする請求項１に記載のシステム。
【請求項１０】
各データ処理エレメント１３が、２又はそれ以上の近接するデータ処理エレメントからデータを交互に受信するようプログラム可能で、２又はそれ以上の近接するデータ処理エレメントに出力データを送信するようプログラム可能であることを特徴とする請求項１に記載のシステム。
【請求項１１】
各データ処理エレメントが、第１の近接するデータ処理エレメントから第２の近接するデータ処理エレメントに受信したデータをバイパスするようプログラム可能であることを特徴とする請求項１０に記載のシステム。
【請求項１２】
前記配列が、２次元の行と列の配列１１を具えており、
最初の行の各データ処理エレメントが、最後の行の対応するデータ処理エレメントに連結されていることを特徴とする請求項１に記載のシステム。
【請求項１３】
前記配列が、２次元の行と列の配列１１を具えており、
最初の列の各データ処理エレメントが、最後の列の対応するデータ処理エレメントに連結されていることを特徴とする請求項１に記載のシステム。
【請求項１４】
前記システムが、２又はそれ以上の前記データ処理エレメントを通してデータを連続的に送ることによって、複数の各データワードを処理するよう構成されていることを特徴とする請求項１に記載のシステム。
【請求項１５】
さらに、１又はそれ以上の前記データ処理エレメントに連結された非可変精度型のシステムバスを具え、前記１又はそれ以上のデータ処理エレメント及び周辺機器１２からデータ通信可能に構成されていることを特徴とする請求項１に記載のシステム。
【請求項１６】
前記周辺機器１２が外部メモリを具えることを特徴とする請求項１５に記載のシステム。
【請求項１７】
さらに、前記データ処理エレメントに連結されたコマンドインターフェイスを具え、
前記データ処理エレメントとコマンドの通信ができるよう構成されていることを特徴とする請求項１に記載のシステム。
【請求項１８】
前記コマンドインターフェイスが、選択した前記データ処理エレメントに同時にコマンドの通信ができるよう構成されていることを特徴とする請求項１７に記載のシステム。
【請求項１９】
前記各データ処理エレメントが、受信データに関する複数の選択可能な動作のうちの１を実行するよう構成されており、
前記各データ処理エレメントの選択可能な動作のうちの１を、前記コマンドインターフェイスを介して前記データ処理エレメントにコマンドの通信をすることによって選択することを特徴とする請求項１８に記載のシステム。
【請求項２０】
さらに、前記データ処理エレメント１３に連結されたステータスインターフェイスを具えており、
前記データ処理エレメントからコントロールユニットにステータス情報の通信ができるよう構成されていることを特徴とする請求項１に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、電子ロジック回路に関し、より詳細には、タグを使用することによって可変精度データを処理してデータワードのディジットの位置を示すためのシステム及び方法に関する。
【背景技術】
【０００２】
コンピュータ技術が進歩するにつれて、コンピュータシステムの処理能力の量及びスピードが増加している。このため、これらのシステムによってソフトウェアプログラムが実行できるスピードもまた増加している。しかしながら、これらの増加にもかかわらず、ソフトウェアプログラムがより速く実行するよう絶え間ない要求がある。
【０００３】
スピードの必要性は、時として、ハードウェアの加速によって対応する。従来のプロセッサは、シーケンシャルプログラムの各命令のために同じハードウェアを再使用する。しばしば、プログラムは、ソフトウェアの同一又は類似の部分がアプリケーションの他の多くの部分と比較して何度も実行する重要なコードを含んでいる。プログラムの処理を速めるために、付加的なハードウェアを追加してプログラムの重要なコードの断片のためのハードウェアの並列処理を与えている。これは、データの有効性に応じて、重要なコードの断片における全ての命令の同時処理の効果を与えている。さらに、別の繰り返しを同時に実行してソフトウェアの処理をさらに速くするように、繰り返しループを展開することが可能である。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
得られる速さの利点があるが、無償ではない。ハードウェアを、問題になっているソフトウェアのアプリケーションのために特別に設計しなければならない。ハードウェアでの機能の実行は、一般に、それをソフトウェアで実行するよりも多くの努力及び資源が必要である。最初に、アルゴリズムを実行するためのハードウェアアーキテクチャーを、実行する動作及びそれらの複雑さ、入力及び出力データ形式及び処理能力、必要メモリ、所要電力、コスト又は場所の制限、及び他の種々の基準、といった基準に基づいて選ばなければならない。
【０００５】
そして、シミュレーション環境を構成して、ハードウェアのシミュレーション及びソフトウェアとの比較に基づいて実行の検証をする。ハードウェアが対象とするライブラリは、システム全体の要求に基づいて選択される。最終的な対象は、ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ（ＡＳＩＣ）、ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ（ＦＰＧＡ）、又は他の同じようなハードウェア  プラットフォームであるようだ。そして、ハードウェア設計は、ハードウェア記述言語（ＨＤＬ）、対象とするライブラリ、及びシミュレーション環境を用いて始める。ＨＤＬ設計において論理合成を実行し、目標とするライブラリに基づくハードウェアを表すネットリストを生成する。
【０００６】
プロセス全体にわたって採用される複雑且つ高価な設計ツールがあるが、頻繁な繰り返しを一般に必要として、タイミング、エリア、電源及び機能性といったものの間の取決めを管理する。ハードウェア設計プロセスの困難性は、設計目標及び対象とするライブラリの機能である。半導体技術の絶え間ない進歩により、それぞれの新たなプロセスの生成とともに設計パラメータの重要性が増し続けている。可能となる設計密度が大きくなるのに加えて、ハードウェアの設計プロセスの複雑さが時間とともに確実に増加し続けるであろう。
【０００７】
本発明は、データに関する論理的又は算術的な動作を実行するハードウェアにおけるアルゴリズムの実施に関連する。現在のところ、有効な方法論は、単一のプロセッサ、プロセッサの配列、固定（ゲートアレイ）又はｆｉｅｌｄ−ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙｓ（ＦＰＧＡ）、又はスタンダードセル（ＡＳＩＣ）又はフルカスタム設計技術に及んでいる。いくつかの構成は、１以上の方法論の要素を組み合わせている。例えば、プロセッサがフィールド・プログラマブル・ロジックのブロックを組み込んでもよい。
【０００８】
プログラム可能なロジックの様々な実施を比較する場合、時として粒度の概念を使用する。それは、所定の方法論におけるプログラム可能な最小の設計単位に関する。粒度は、トランジスタからゲート及びより複雑なブロックを通してプロセッサ全体に及ぶ。プログラム可能なハードウェアアーキテクチャを比較する際の他の考慮すべき事柄は、プログラム可能なエレメントの相互接続配置である。それらは、単純なビット単位のポイント・ツー・ポイント配置から、様々なトポロジーのより複雑な共有バス、クロスバー、さらには珍しい方式に及んでいる。
【０００９】
ゲートレベルの粒度及び高密度な相互接続を具えたフルカスタム又はスタンダードセル構造が、優れた性能、エリア、及びパワートレードオフ（ｐｏｗｅｒ  ｔｒａｄｅｏｆｆ）能力を提供する。使用するライブラリは、一般にゲート及びレジスタのレベルである。設計時間は、必要とする複雑なツールの多様性によって課せられる設計フローにより、重要となり得る。機能性とタイミングのための配置後の検査が、設計スケジュールのしばしば大きな要素となっている。高価な設計ツールに加え、製造ツールのコストが高くて新たな生成プロセスとともに上昇するため、このような方法は利益率が高く又は大量設計のため経済的な場合に限られる。フルカスタム又はスタンダードセル技術を用いて実施するアルゴリズムは（初期の設計段階で予想される限りにおいて）固定で、変更することができないようである。
【００１０】
固定又は従来のゲートアレイのための設計方法は、スタンダードセルのそれと同様である。従来のゲートアレイの主要な利点は、個別の設計が共通のプラットフォーム又はベースのウェハーに基づくため、製品化に要する時間及びユニットのコストが低いことである。中立のゲート及びルーティングチャンネルのみを使用するため、柔軟性及び回路密度が、カスタム又はスタンダードセル構成のそれと比較して減る可能性がある。カスタム又はスタンダードセル技術で作られるのと同様に、従来のゲートアレイを使用して実施するアルゴリズムは固定で作製後に変えられそうにない。
【００１１】
従来のゲートアレイと同様に、ＦＰＧＡは、標準的な構造に基づいているが、プログラム可能である。このケースでは、標準的な構造が、サブシステムのモジュール及び中立のゲートのブロックではなくて完成したチップ又は装置である。プログラム可能であると、デバイスのエリアをかなり増やし、あるアプリケーションでは高価な解決法となる。さらに、プログラム可能な相互接続は、付加インピーダンス及び関連する伝搬遅延により、処理能力及び性能を制限する可能性がある。ＦＰＧＡは、単純なゲート及びレジスタよりも設計要素として複雑でマクロなブロックを有する。プログラム可能なロジックのブロックにおける非効率のため、相互接続ネットワーク、及び関連するバッファ、電力消費が問題となる可能性がある。ＦＰＧＡを使用して実施するアルゴリズムは変わる可能性があるため、プログラム可能であると見なされている。相互接続構成のため、それらはインアクテブ（クロック動作なし）の場合のみ構成される。必要な相互接続及びロジックのブロック全てを再プログラムするのに要する時間は、デバイスの速さに対して重要である可能性があり、リアルタイムのダイナミック・プログラミングを実行不可能にする。
【００１２】
アルゴリズムを実施するためのハードウェアソリューションの連続体に従って、様々な程度の困難性又は専門性が位置している。この連続体は、最下位が高度な専門性を要するため可能な設計者の非常に小さいベースを表し、レベルが高くなるとより一般的な既知のスキルを使用し可能な設計者の集まりが顕著に増える点で、逆三角形である（表１参照）。また、この順序の下位レベルが、複雑さのレベルが高いレベルに上がる設計抽象化の下位レベルを表していることに留意されたい。
2008537268.tif 000003
【００１３】
このため、使い易さ及びプロセッサへのアクセスし易さを具えてロジック設計及びアプリケーションのベースを可能にするＡＳＩＣのスピード及び柔軟性を与えるソフトウェア加速を提供するための技術の必要性がある。
【課題を解決するための手段】
【００１４】
本開示は、上記の１又はそれ以上の問題を解決する可変精度（ｖａｒｉａｂｌｅ  ｐｒｅｃｉｓｉｏｎ）相互接続で互いに連結したデータ処理エレメントの配列を使用してデータを処理するためのシステム及び方法を対象とする。ある特定の実施例が、幅方向に固定だが可変精度でデータをサポートするエレメント間の単純な相互接続を具える処理エレメントの配列を具える。エレメントは、これらの結合にわたって入力データを受け取って、それらにわたって動作結果を出力する。各エレメントによって実行される動作は一定でもよいし、可変／プログラム可能でもよい。データは、送信エレメントが新たな有効なデータを有し受信エレメントが新たなデータを必要とする場合にのみ、エレメント間を通る。さらに、非同期式エレメント（ａｓｙｎｃｈｒｏｎｏｕｓ  ｅｌｅｍｅｎｔｓ）を採用して、電力を最小限にして性能を改善してもよい。
【００１５】
代替的な実施例は、１又はそれ以上の内部接続によって結合した複数のデータ処理エレメントを具えており、行及び列の配列といった配列を形成する。１又はそれ以上の内部接続は、データ処理エレメント間で可変精度データを搬送するよう構成される。内部接続を同期式又は非同期式にしてもよい。同様に、データ処理エレメントを同期式（局所的又はグローバルに）又は非同期式にしてもよい。データ処理エレメントは、固定の方式で動作したり、又はプログラム可能でよく、配列の選択可能な処理エレメントをバイパスしてもよい。内部接続及びデータ処理エレメントを、各ディジットに関連するタグが、データワードのディジットが最初及び又は最後のディジットかどうかを識別する、ディジットシリアル（ｄｉｓｉｔ−ｓｅｒｉａｌ）方式でデータを扱うよう構成してもよい。ある実施例では、エレメントの配列が、データ処理エレメントと外部装置（例えば、外部メモリ）との間でデータ通信可能なシステムバスに結合され、制御情報をデータ処理エレメントに送受信できる。
【００１６】
また、多くの他の実施例が可能である。
【発明を実施するための最良の形態】
【００１７】
本発明の他の目的及び利点が、以下の詳細な記載及び添付図面を参照して明らかになろう。
【００１８】
本発明は、様々な変更及び代替的な形式に従っているが、特定の実施例を図面及び添付の詳細な記載において例として示す。しかしながら、当然のことながら、図面及び詳細な記載は、記載されている特定の実施例に本発明を限定することを意図するものではない。その代わり、本開示は、添付の特許請求の範囲に規定されているような本発明の範囲に含まれる全ての変更、同等のもの、及び代わりとなるものをカバーすることを意図する。
【００１９】
本発明に係る１又はそれ以上の実施例を以下に記載する。以下に記載するこれら及び他の実施例は、典型例であって、限定ではなく本発明の説明を意図することに留意されたい。
【００２０】
本書に記載されるように、本発明の様々な実施例が、可変精度相互接続（ｖａｒｉａｂｌｅ  ｐｒｅｃｉｓｉｏｎ  ｉｎｔｅｒｃｏｎｎｅｃｔ）で互いに連結されたデータ処理エレメントの配列を用いてデータを処理するためのシステム及び方法を具える。ある実施例は、幅が固定されるが可変精度でデータをサポートする単純なエレメントとエレメントとの相互接続を具えた処理エレメントの配列を具える。このエレメントは、これらのリンクを介して入力データを受け入れ、それらを介して動作結果を出力する。各エレメントによって実行される動作は固定でもよく、又は可変／プログラム可能でもよい。送信エレメントが有効な新たなデータを有し受信エレメントが新たなデータを必要とする場合に、データがエレメント間を通る。さらに、非同期式エレメント（ａｓｙｎｃｈｒｏｎｏｕｓ  ｅｌｅｍｅｎｔｓ）を採用することで、電力を最小限にして性能を改善してもよい。
【００２１】
ある実施例では、可変精度相互接続は、ディジットシリアルデータ（ｄｉｓｉｔ−ｓｅｒｉａｌ  ｄａｔａ）を搬送するよう構成されており、ここでは各ディジットが、伝送されるデータワードのディジットが最初及び／又は最後のディジットかどうかを示すフラグをともなう。データワードに対応する動作を実行して１又はそれ以上の他の処理エレメントに出力する処理エレメントのうちの１によってデータを受信する。処理エレメントは、データに基づいて動作するよう、又は他の処理エレメントにデータをバイパスするよう構成してもよい。システムバスは、処理エレメントから／へのデータ通信、処理エレメントへのコマンド情報の入力、処理エレメントからの状態情報の出力を可能にする。処理エレメント自身とともに、処理エレメント間の相互接続は、同期式又は非同期式のいずれで動作してもよい。ある実施例では、処理エレメントの動作を局所的に同期式するが、全体として非同期式にしてもよい。
【００２２】
図１は、可変精度相互接続バス１４を介して互いに通信する処理エレメント１３の配列１１を示す。処理エレメントは、データがエレメントからエレメントへと配列を通って移動すると、データに基づいて動作を実行する。処理エレメントは、一定の幅の相互接続バス又は通信チャンネルを介して接続されている。多くの相互接続トポロジーが可能であるが、好適な実施例では、速さ及び簡単のために最近接のエレメントとエレメントとの間の構成を選択する。各エレメント間のバス１４は、単一のソース及び宛先を具えた一方向通信チャンネルとして機能する。入力及び出力用に別々の相互接続があり、また、各方向（図の上、下、右及び左）に別々の入力及び出力用の接続部があり、近接するエレメントを接続する。配列１１の周辺部に沿った処理エレメント１３は、接続していない入力部や出力部を有しており（図示せず）、又はそれらは、メモリコントローラ、他の周辺機器といった、外部モジュール１２に任意に接続されている。さらに別の実施例では、それらを配列の反対側の他のエレメントに連結してもよい。例えば、列の最上部のエレメントを列の最下部のエレメントに接続したり、行の最も左のエレメントを行の最も右のエレメントに接続してもよい。理想的には、相互接続バスが、可変精度データをサポートするための機構を与える。
【００２３】
実際には、アルゴリズム又は計算上の問題は、別々の動作に分解されて、接続した処理エレメントのネットワークにマッピングされる。データは、様々な手段を用いて配列に導入され、その後、エレメントによるデータの生成及び消費に基づいてエレメントからエレメントを通って配列内を伝達する。同様に、配列からデータを出力する様々な可能性がある。処理エレメントは、外部モジュール；システムインターフェイス；及び別の（近接した）エレメントを含む（がこれらに限定されない）様々な方法で入力データを受信して出力データを送信してよい。
【００２４】
システムインターフェイスは、複数のエレメントに共通するデータバスから成り、各エレメントが個別に選択される。これにより、コントロールユニットが、選択したエレメントにデータを選択的に読み出し又は書き込むことができる。
【００２５】
特定のアプリケーション及び実装に応じて処理エレメントの特性を変えてもよい。エレメントは、ハードウェアで実装されるある共通の動作を具えたあるアクリケーションのために最適化してもよく、又はほとんど一般的なものでもよい。最小限、処理エレメントは、データに適合して対応できる必要があり、入力データに基づく所望の動作を実行し、出力データを生成できる必要がある。さらに、所望の特性は、好適な実施例にあるように可変精度データを処理する能力である。規定の動作のための個別のエレメントのシーケンスを固定してもよく、又はそれらを完全に可変にしてエレメントをプログラム可能にしてもよい。
【００２６】
固定エレメントが、読み出し専用メモリ（ＲＯＭ）と、固定プログラム可能なロジックアレイ（ＰＬＡ）又は特定の動作又は機能に対する一連のイベントを制御する他の固定記憶エレメントとを含んでもよい。動作及びシーケンスを決めるポイントを、設計プロセスの際、又は製造サイクルのかなり後にすることができる。
【００２７】
可変又はプログラム可能なエレメントは、ランダム・アクセス・メモリ（ＲＡＭ）、レジスタ、（フラッシュメモリといった）不揮発性メモリ、又は動作シーケンスの各ステップでの動作を制御するデータを収容する他の何らかのタイプの可変の記憶エレメントを含んでもよい。
【００２８】
エレメントの特性は、このエレメントによって実行されるイベントの動作及びシーケンスから成る。エレメントの特性を規定するデータは、切り換え又はリロードしてもよい。また、それは、２つの特性が共存して外部信号がどちらかを選択して使用するように、二重バッファ型でもよい。また、切り換え特性は、切り換え状態から成り、これは様々な追加的な内部動作レジスタ又は状態情報を切り換えなければならないことを意味する。理想的には、この情報は、前のコンテキストを再記憶するため、後の使用のために記憶される。
【００２９】
１又はそれ以上のエレメントの特性を、所定のデータブロックを処理した後に、効果的且つ同時にアルゴリズムを変えるために、又は、断片的なシーケンシャル方式で、より複雑なアルゴリズムを実行するために変更できる。製品のフィールドの更新等のために変更する１又はそれ以上のエレメントの特性を、システムの初期化の際にロードできる。また、エレメントの特性の部分を相対的に固定にしたままで、別の部分を可変にするハイブリッド構成が設けられる。この一例は、入力サンプルデータに固定フィルタ係数を乗じるデジタルフィルタである。このケースでは、プログラム可能な部分が可変のオペランドを含みつつ、固定エレメントを乗算演算によりセットする。プログラム可能又はハイブリッドエレメントを具えた状態で、フィルタ係数をパラメータとしてアプリケーションの中で変えてもよい。
【００３０】
エレメントの最も簡単な実施例は、同期設計方法を使用し、現在入手可能な市販の設計ツールが一般にこのような方法を実行するように、単一のグローバルなタイミング基準を全ての内部レジスタに使用する。
【００３１】
非同期式の設計方法は、電力消費及びデータ処理能力の分野において周知の利点を有する。単一のエレメントが配列全体にわたって複製されるため、非同期式方法を用いるときの設計課題を最小限にする。可変精度インターフェイスチャンネルは、データフローの原理を実施して閉ループのハンドシェーキングを有するため、チャンネルインターフェイスからクロックを除去することを実際に簡素化する。このため、非同期式可変精度チャンネル及び／又は非同期式エレメントを組み込んだ配列の追加の実装が可能となる。
【００３２】
配列の各エレメントが個別にアドレス付けされ及びアクセスされるように、システムのインターフェイスが設けられている。これを、初期化及び診断の目的のため、又は、エレメントの中の処理動作にデータを投入又はそこから引き出すのに使用してもよい。また、個別の処理エレメントが割り込み信号をアサートすることによってイベントを通知するように、機構が設けられている。
【００３３】
ある実施例では、エレメント間の可変精度インターフェイスが、ワード中の現在のディジット位置を表示するステータスラインを具えたディジットシリアルバス（ｄｉｓｉｔ−ｓｅｒｉａｌ  ｂｕｓ）である。ディジットシリアルは、ワードが１又はそれ以上のビットから成る一連のディジットから成ることを意味する。ディジットサイズは、所定の実装に固定されるが、１ワードを構成するディジットの数を変えてもよい。１つのディジットは、１つのワードの最初、最後、又は中間の位置を占める。単一のディジットのワードが可能であり、このようなケースでは、ディジットは最初及び最後の双方である。２つのディジットのワードは、最初及び最後のディジットを有しているが、中間のディジットを有していない。３又はそれ以上のディジットから成るワードは１又はそれ以上の中間のディジットを有する。
【００３４】
エレメントの相互接続バス幅が、ｎディジットのビットに加えて、２つのフラグビット及び２つのハンドシェイク信号に固定される。フラグビットは、ディジットがデータワードの最初及び／又は最後のディジットかどうかを表示する。２つのハンドシェイク信号は、データを処理エレメントに送受信する準備ができている場合に表示する。グローバルのクロック信号を、同期的な実装のために任意に使用してもよい。フラグビットを適切に設定することにより、ｎビットよりも長いワードをインターフェイスを介して連続的に送信してもよい。単一のフラグビットが、境界条件をマークするのに技術的に十分であるが、これは、最も重要でない部分及び最も重要な部分を個別に判定できるように、各入力について１ディジットのパイプライン遅延を追加することを必要とする。
【００３５】
図２は、ワードをディジット及びフラグビットにマッピングして、可変精度ワードを形成するやり方を示し、一方、図３はこのようなトランザクションについての可変精度バスの活動を示す。ワード２１は、複数のディジットから成る。ディジット０「Ｄ０」は、ワードの最初の最も重要でないディジットを示し、ディジットｎ「Ｄｎ」は、ワードの最後の最も重要なディジットを示す。フラグは、最初のディジット２４については「Ｆ」２６、及び最後のディジット２２については「Ｌ」２５が設定されている。最初又は最後でないディジットは、連続したディジット２３である。１つのディジットのみを占めるワードの場合、Ｆ及びＬ双方のフラグビットが設定される。表２は、可能なディジットに対応するフラグＦ及びＬの組み合わせを表す。ディジットの大きさを、任意の正の整数にしてよい。好適な実施例では、ディジットの大きさが８ビットに等しい。これよりも小さいディジットの大きさ又は大きいディジットの大きさを、様々な処理能力及び分野の要求を具えたアプリケーションを目的とする配列に適用してもよい。
2008537268.tif 000004
【００３６】
最初又は最後のディジットとディジットの重要度との間に区別がない。可変精度バスに追加のビットを加えて、ディジットの重要度をさらに特定することができるが、それは任意である。また、追加的なフォーマットビットを追加して、符号付きでないものと対比して符号付きのもの、又は他のフォーマットを示すことができる。好適な実施例では、最も重要なディジットと対比した最も重要でないディジットの送信が、エレメントの動作を選択したときにアルゴリズムのレベルで処理される。必要に応じて、最も重要なディジットと最も重要でないディジットとの間でフォーマットを変換するエレメントの機能が利用できる。
【００３７】
本実施例に係る可変精度チャンネルを介したデータの送受信のイベントのシーケンスを図３に示す。図示する全ての信号は、送り先から出力されソースに入力される肯定応答ＡＣＫを除いて、ソース又は送信エレメントから出力され送り先又は受信用エレメントへ入力される。システムクロックは図示しない。いくつかの実施例が可変精度バスの一部としてクロック信号を要するが、これは、ハンドシェイクが閉ループとなるように可変精度チャンネルプロトコルを規定するため任意であり、したがって、完全な非同期式インターフェイスを実装してもよい。これは、処理エレメントが互いに非同期式である場合の実施例における要点である。
【００３８】
チャンネル送信エレメントは、対応するＦ及びＬフラグとともに、データの１つのディジット（例えば、Ｄ０）がバス上で有効であるときに、リクエスト信号ＲＥＱをアサートする。データ、フラグ、及びＲＥＱ信号は、チャンネル受信エレメントがこれらの信号をバスからうまく読み出したことを示す肯定応答信号ＡＣＫがチャンネル受信エレメントによって送信されるまで保持される。この時点で、リクエスト信号ＲＥＱを解除し、データ及びフラグは自由に状態を変えることができる。受信エレメントは、ＲＥＱ信号が解除されるまでＡＣＫをアサートし続ける。ＲＥＱ信号は、ＡＣＫ信号が非アクティブとなり新たなトランザクションとして新たなデータが有効となるまで、再度設定されることはない。このような方法では、Ｄ０−Ｄｎディジットを具えるデータワードをチャンネル送信エレメントからチャンネル受信エレメントに伝送する。
【００３９】
また、近接する処理エレメントに接続している可変精度通信チャンネルは、個別のエレメントをバイパスするための機構を与え、あるエレメントを通信が飛び越えることができる。このバイパス性能は、エレメントの接続のルート決めをより簡単にする。未使用のエレメントからの出力は、完全にこのエレメントをバイパスすることによって、同じ未使用のエレメントの別の方向の１つの入力に繋げてもよい。
【００４０】
図４は、４つの方向の各入力（例えば、符号４２）及び出力（例えば、符号４１）可変精度チャンネルとともに、エレメント１３及びエレメントの中心部４４の図を示す。入力チャンネルは、処理中心部及び出力セレクタ（例えば、符号４３）に通じている。エレメントの中のバイパスレジスタは、このエレメント自身又はエレメントの各出力チャンネルに対する他の３つの入力のうちの１のいずれかから出力ソースを選択する。簡単のために一つのマルチプレクサ４３を通過する出力チャンネルを示すが、実際には、選択したチャンネルに関するＡＣＫリターン（入力）信号があることに留意されたい。これは、ＡＣＫ入力用の追加のマルチプレクサという意味を含んでいる−各方向に対して一組のマルチプレクサを有する。
【００４１】
（明りょうのため）本発明の実施例に係るシステムインターフェイスを図１に示していないが、このシステムにより、復号化した行列アドレスに基づいて、各エレメントを選択できる。このシステムインターフェイスは、図５に示すように、各エレメントの内部構成物（内部のレジスタ及びメモリ）を読み出し及び書き込むための機構を与える。システムアドレスバス５４を使用して、それぞれ読み出し又は書き込み動作のための個別のエレメントを選択する。アドレスデコーダ５３は、各エレメント用の個別の選択ライン（例えば、符号５１）及び個別のエレメントの内部構成物にアドレス付けをするためのサブアドレスフィールドにアドレスを分解する。サブアドレスのサイズは、アドレス付けが必要な個別のエレメントの内部構成物の数の関数である。明りょうのために、各行の選択ライン、サブアドレス、及び読み出し書き込みコマンドラインのグループを、図中１本のライン（例えば、符号５２）で図示する。デコーダをより大きな配列構造に配設してもよい。システムデータバス５５は、書き込み動作のための書き込みデータ、又は読み出し動作の結果としての読み出しデータを搬送する。双方向を図示しているが、実際には、別々の読み出し及び書き込みバスを用いて実施してもよい。さらに、読み出しマルチプレクサをエレメント全体に亘って配設してもよい。
【００４２】
アドレス及び制御信号、入力データ、及び出力データは、まとめてシステムバスと称される。読み出し／書き込みコマンドライン、エレメント選択ライン及びサブアドレス５１に加えて、各エレメント１３に入力データが与えられ、出力データバスに出力データを与える。入力及び出力データバスは、必ずしも可変精度ではないが、好適な実施例では、従来の３２ビットのバスを使用する。書き込み制御信号は、バイトライト（ｂｙｔｅ  ｗｒｉｔｅ）可能な信号を有する。アドレス付けするエレメントの内部構成物は、レジスタ又はメモリのブロック、又は、エレメントの内部構成物に応じて他のデータ構造により構成してもよい。各エレメントへのアドレス入力は、エレメントの中のアドレス付け可能な各リソースを復号化又は解読するのに十分でなければならない。このアドレス部分は、アドレスの下位アドレスビットを具えてもよい。そして、上位アドレスビットを使用して、アドレス付けすべき実際のエレメントを示すことができる。これらのビットは、個別−各エレメントにつき１つ−の選択ライン（例えば、符号５１）を与えるデコーダモジュール５３に入力される。
【００４３】
ある実施例では、システムインターフェイスが、従来の非可変型精度バスを有している。この実施例では、バスは独立したバイトがイネーブル（ｅｎａｂｌｅ）となっている３２ビットのデータバスである。ディジットの位置のタグビットを設定するための簡単な機構を提供するために、レジスタ又はメモリアドレスのエイリアスが設けられている。利用できる４つのビュー（ｖｉｅｗ）がある。書き込み用システムインターフェイスのエイリアスを表３に図示しており、読み出し用のそれを表４に図示する。
【００４４】
説明する実施例でのディジットの大きさは、８ビットである。システムインターフェイスの書き込み動作では、１番目のエイリアスにより、Ｆ及びＬビットを自動的に設定した状態で８ビットのワードサイズのデータの書き込みが可能である。２番目のエイリアスは、フラグビットを設定した状態で１６ビットのワードを書き込むために設けられており、３番目のエイリアスは、３２ビットのワードサイズを書き込むためである。４番目のエイリアスにより、Ｆ及びＬビットをゼロにした状態でデータの書き込みができ、３２ビットよりも大きいワードをロードするのに有用である。エイリアス１にバイトゼロを書き込んだ後にエイリアス４に書き込んでエンドポイントバイトを処理することによって、より大きなサイズのワードを書き込んでもよい。最終的に、最後のバイトはエイリアス１に書き込まれることを必要とする。
2008537268.tif 000005
【００４５】
システムインターフェイスの読み出しエイリアスは、Ｆビット、Ｌビット、及びデータビットを別々に読み込むためのメカニズムを与える。エイリアス１及び４は同一であり、読み出しアドレスに関するデータのみを戻す。エイリアス２は、Ｆフラグの各バイトの下位ビットを戻し、エイリアス３はＬフラグの各バイトの下位ビットを戻す。エイリアス２及び３から読み出す場合は、データは戻らない。これらのエイリアスは、ディジットのアライメントを決定するためのみに使用する。
2008537268.tif 000006
【００４６】
本実施例では、図６に示す単一のコマンド用のコマンドインターフェイスが、システムインターフェイスとは異なる方法により行列のアドレス指定を提供する。１つのエレメントに１つずつアドレス付けしてそれらにデータを提供する代わりに、各コマンドに行及び列のアドレスがある。コマンドアドレスレジスタは、行６３及び列６４の部分に分解される。行の部分を復号化して、配列の各行について別々の行選択ライン６１を提供する。同様に、列の部分を復号化して、配列の各列について別々のライン６２を提供する。行及び列のコマンド信号は、エレメントの配列の行及び列を介して連結される。コマンドの挿入ポイントに最も近い最初の列のエレメントは、列コマンド信号６２を最初に受け取る。それは、隣の列のエレメントにその信号を出力しながら、信号の値を監視する。各エレメントは、最後の列のエレメントに到達するまで、次々と同じことを行う。行のエレメントは、同じような方法で処理される。行の最初のエレメントは、行コマンド信号６１を受け取り、同じラインの信号を監視した状態で、同じ行の隣のエレメントにそれを出力する。エレメントが行及び列の双方の同じコマンド信号がアクティブであると観測すると、エレメントは指定されたコマンドを実行するよう命令されているものと認識する。システムインターフェイスと同様にアドレス付けすると、１度に１つのエレメントのみにアクセスする。制御インターフェイスとともに、矩形状の領域の中の１つのエレメントから多くの隣接するエレメントを同時に選択してもよい。
【００４７】
コマンドインターフェイスにマップするコマンドの例は、リセット、イネーブル（ｅｎａｂｌｅ）、消去割り込み、及び切り換え状態を含む。リセットコマンドを使用してエレメント又はエレメントのグループを初期化する。イネーブルコマンドを使用して、エレメントのグループを選択的にイネーブル又はディセーブル（ｄｉｓａｂｌｅ）とする。消去割り込みコマンドを使用してエレメントの内部の状態を消去し、状態インターフェイスの割り込み出力に応じて使用する。各エレメントの機能及びコンテキストを二重バッファ式としてもよく、配列全体の領域が、状態コマンドの値を変えることによって、コンテキストの切り替えを同時に実行してもよい。
【００４８】
コマンドの入力に加えて、図７に示すように、状態の出力もまた同じような方法で状態インターフェイスに組み込まれている。割り込み状態信号の出力が、状態レジスタに読み込まれ行の部品７３及び列の部品７４から成る行及び列を介して直列式に接続されている。状態レジスタでは、配列の各行及び列で別々のビットを有する。各行のエレメントは、行７１についての前のエレメントから出力を取り込んで、必要に応じて状態信号を変更し、その行の隣のエレメントに出力する。各エレメントは前の行のエレメントから入力を次々と受け取り、それ自身の状態情報を加えて、行の最後のエレメントの次の状態レジスタに到達するまで出力する。列のエレメントは、同じような機能を実行し、前のエレメント７２から入力を受け取り、それ自身の状態情報を加えて、列の隣のエレメント、又は（列の最後のエレメントの場合）状態レジスタ７４に出力する。
【００４９】
以下の部分で、擬似コード形式を使用して、典型的なエレメントのマイクロ命令シーケンスを説明する。擬似コードは一般的なプログラミング構成を表しており、単一のエレメント又はその組み合わせのマイクロ命令が動作を実行できるが、エレメントのマイクロ命令に直接的な対応を有するという意味を必ずしも含むものではない。入力又は出力擬似命令動作は、任意の論理チャンネル識別子である可変の名前を使用する。４つの入力チャンネル識別子：ａ，ｂ，ｃ及びｄが設けられている。同様に、４つの論理出力チャンネル識別子：ｗ，ｘ，ｙ及びｚが設けられている。論理識別子が４つの方向に対応する物理的なチャンネルに独立してマップされることに留意されたい。従来のコードとは異なり、エレメントの擬似コードは自動的に繰り返される。各エレメントのコードの流れは、終了すると始めから再スタートする。
【００５０】
本発明の適用例として、Ｃプログラミング言語でコード化された以下に示すアルゴリズムを考える。
2008537268.tif 000007
2008537268.tif 000008
【００５１】
このコードは、階乗関数を実行し、入力する整数「ａ」を呼び出すと、「ａ！」を返す。このアルゴリズムは、マッピング処理を単純化する単一のアサーションの原理に従う。ループ構造中及びループ構造の外側でアサーション間の区別がなされることに留意されたい。整数「ａ」は入力値である。整数「ｉ」は、ループカウンタとして使用する一時数値変数である。整数「ｗ」は途中の計算の作業値を保持する一時的数値変数で、整数「ｙ」は結果及び戻り値である。定義によれば、０！＝１であるため、ループの中に「ｗ」の割当てがあるが、「ｗ」はループの外側で１に初期化される。
【００５２】
階乗のアルゴリズムの代替的な表現を図８に示す。入力値「ａ」をステップ８２で受け、「ｗ」をステップ８３で初期化し、ループカウンタをステップ８４で初期値にセットする。動作８２，８３及び８４が、ループグループ８５及びその次のループグループ８９とは別の一つのグループ８１をまとめて形成する。これらの動作ブロックは、特定の開始及び終了条件を有するループ動作によって表される。動作グループをネストさせてもよい。グループ８１を直列に繋いでもよいことに留意されたい。これは、それらが逐次言語及びシーケンシャルマシン構造に基づくため、フローチャートにおける慣例である。実際には、動作がエレメントにマッピングされると、繰り返し処理のみがデータ依存を具える。入力データが有効な場合、係属しているデータ出力が処理されているという条件で、エレメントの動作が同時に進む。
【００５３】
ループカウンタテスト処理８６は、続行するか否かをチェックし；継続条件に合致する場合（ｉ＜＝ａ）、ステップ８７で乗算を実行してステップ８８でループカウンタをインクリメントする。ループ終了条件に合致する場合（ｉ＞ａ）、ステップ８１０で「ｗ」を「ｙ」に代入し、ステップ８１１でこの値を出力（返却）する。
【００５４】
ここで、図８のフローチャートに示すアルゴリズムは、エレメントの動作の利用可能なライブラリーに基づいてエレメントにマッピングされる。この処理は、特定のプロセッサ又はアーキテクチャに特有でない中間的な汎用コードを生成するソフトウェア・コンパイラのそれと同じである。この処理結果を図９に示す。図示する各動作ブロックは、１又はそれ以上のエレメントを示す。また、エレメントとエレメントとの間の接続はポイント・ツー・ポイント接続であるが、単一のソースが付加的な送り先を有するように、いくつかのエレメント（９４，９１２）を使用してデータチャンネルをＴ字状にして、拡張性を高めている。
【００５５】
「ａ」の入力８２は、ループ入力レジスタエレメント（ｌｉｒｅｇ）９６に変換される。ループレジスタを使用して、ループの入力及び出力ポイントでのデータの流れを制御する。ループ入力レジスタは、データ入力及び出力チャンネルと、付加的な制御入力チャンネルとを具える通常のレジスタと同じである。制御入力部は、入力データをサンプリングして内部レジスタにロードすべき場合に重要であり、ループ開始条件に繋がっている。制御入力チャンネルが真の場合、「ａ」が内部レジスタにロードされる。続いて、内部レジスタが出力データチャンネルに出力される。データは常に出力される−この条件のみが入力データのロードである。ループ開始条件は、ループの最初の繰り返しに対して真のブール値であり、次の繰り返しに対して偽である。ループの一番最後の繰り返しの後に、それは再び真となる。ｌｉｒｅｇ（擬似コード）の一般化シーケンスは、以下のとおりである。
2008537268.tif 000009
【００５６】
ステップ８８に対応するループカウンタの値「ｉ」は、初期化レジスタエレメント９２に記憶される。初期化レジスタエレメントは、初めに出力される初期パラメータ値（このケースではゼロ）を有する。このポイントから、それは取り込まれるワードを出力する単なる遅延である。入力ワードのマークは、維持されて出力に反映される。ｉｒｅｇのシーケンスは：
2008537268.tif 000010
【００５７】
最初の検査により、このエレメント９２が必要でないと決定してもよい。（加算エレメント９１及びマルチプレクサ９３を通した）フィードバックループのため、ｉを保持するレジスタが有効でない場合、パスが開始しない。マルチプレクサ９３は、双方の入力のデータを消費しなければならないが、このような理由により、ｉｒｅｇが初期値ゼロとそれを入力する前に出力データとを有する。
【００５８】
（割り当て８４に対応する）定数レジスタ９７をｉの初期化のために使用する。それは、入力ポートが接続されていないことを除いて「ｒｅｇ」と同様である。一定値が初めに保持されて継続的に出力される。固定エレメントでは、これはハードウェアに組み込まれた値であるが、プログラム可能なエレメントでは、この値は、エレメントのコンテキスト又は定義の一部としてロードされるパラメータであるか、又は外部のプロセッサによって変更される。
2008537268.tif 000011
【００５９】
ｍｕｘ９３は、従来のデータマルチプレクサとして機能し、ステップ８５のフィードバックループの終わりを表す。ある入力表現は、「ｉ＝１」８４で、ループ本体８５に入る際にのみ選択されるが、他の表現は、「ｉ＝ｉ＋１」８８で、ループを終了するまで選択される。ｍｕｘの出力は、「ｉ」を表す。双方の入力が消費され；制御入力がどちらか一方の入力を出力に反映することを選択し；他方の入力が捨てられる。ｍｕｘ動作のための擬似コードは以下のとおりである：
2008537268.tif 000012
2008537268.tif 000013
【００６０】
ループ比較演算器９５、加算演算器９１、乗算演算器９９は、ｍｕｘ出力を必要とする。また、アルゴリズムがデータを消費するのと同じ速さで進むことを指摘することは重要である。このため、新たな「ｉ」の値は、乗算演算器、ループ比較演算器、及び加算演算器が全て最後の値を消費するまで現れない。ｍｕｘは、ただ一つの出力を有するため、Ｔ型エレメント９４を挿入して付加的に拡張性を高める。代替物が複数の出力を具えたｍｕｘを生成する。また、２以上の出力を有するＴ型エレメントを形成してもよい。Ｔ型エレメントのための擬似コードは、以下のとおりである：
2008537268.tif 000014
【００６１】
ステップ８５に対応するループ比較演算器９５は、入力として最新のループ変数「ｉ」及び終了値「ａ」を用いた「小さいか又は等しいか」という論理計算（ｌｔｅ）を実行する。比較動作のための擬似コードは：
2008537268.tif 000015
【００６２】
ｌｔｅ機能では、演算が入力ディジット毎に進むが、全ての入力ディジットを受け取って初めて出力が生じることに留意されたい。このようなエレメントでは、２つの符号付きの表記法を使用してｂ入力値がａから引き算される。ｃａｒｒｙ−ｆｌａｇ、ｎｅｇａｔｉｖｅ−ｆｌａｇ、及びｚｅｒｏ−ｆｌａｇ変数は、従来のプロセッサのそれらと同じように、ＡＬＵの動作に基づいて設定される内部フラグである。ワードのディジットの位置フラグを使用して、ワードの始まり及びディジットを示す。
【００６３】
ｌｔｅエレメントの出力は、ループテスト変数である：それはループが繰り返されている間は真で、そうでなければ偽である。特定のループエレメント９８を使用してループの実行の状態を維持する。ループ比較動作の出力は、ループエレメント入力（「テスト」）に送り込まれ、別々の２つの出力を生成する：一方は、一番最初のループの繰り返し（「スタート」）の際に真に設定され、他方は、最後のループの繰り返し（「ストップ」）の際に真に設定される。最初及び最後以外のループの繰り返しは、いずれも偽に設定される出力を有する。初期条件（エレメントに対するリセットの後の）は、「スタート」出力では真で、「ストップ」出力では偽である。一例として、このような特別な実行は、複数の「スタート」出力を有して、Ｔ型エレメントを追加する必要性を減らす。いくつかのエレメントを一つにまとめ、（十分な入力及び出力チャンネルが存在する場合）特に出力を複製するためのそれらのマイクロ命令シーケンスを変えることによって、最適化を実行可能である。これは機能全体に影響を与えないが、処理能力又は待ち時間に影響を与える可能性がある。さらに、それは配列の中で得られるエレメントの配置又は方向に影響を与える可能性がある。ループエレメントの擬似コードは：
2008537268.tif 000016
【００６４】
乗算エレメント９９は、２つの入力の整数乗算を実行する。初めの入力がｎディジットを有し、２番目がｍディジットを有する場合、結果はｎ＋ｍディジットを有する。階乗の実施例では、前の積をループ変数「ｉ」で乗算する。乗算エレメントの擬似コードは：
2008537268.tif 000017
【００６５】
実際の乗算による積及び乗算の結果としての余りに使用する表記法は、十分な精度の乗算のために様々なサイズを表そうと試みている。
【００６６】
レジスタ９１０は、次の繰り返しのために作業用の積の値を保持する。このエレメントの機能は、エレメント９２のそれと同様である。レジスタの大きさは、複数のエレメントをカスケード接続することによって達成する最大値を保持するのに十分大きくなければならない。ｒｅｇのシーケンスは：
2008537268.tif 000018
【００６７】
定数９１４は、エレメント９７と機能が同一であり、マルチプレクサ９１１は、エレメント９３と同じである。Ｔ型エレメント９１２は、エレメント９４と同じである。
【００６８】
ループ出力レジスタ（ｌｏｒｅｇ）９１３は、ｌｉｒｅｇ９６と機能が似ている。ｌｉｒｅｇは、保持データを常に出力するが、選択するとその内部レジスタの書き換えのみを行う。ｌｉｒｅｇは、一般にループの入力に使用されるが、ｌｏｒｅｇは、一般にループの出力に使用される。ｌｏｒｅｇの擬似コードを以下に示す：
2008537268.tif 000019
【００６９】
ｌｏｒｅｇの制御入力部は、ループエレメント停止信号に接続されているため、「ｙ」データは全てのループの繰り返しが完了した後のみ有効となる。
【００７０】
図１０は、同一のエレメントの配列にマップされた図９のエレメントを示す。実行するためのアルゴリズムの特定のマッピングを必要としない未使用のエレメント１０１が場所を占める。いくつかのエレメントが、エレメントの動作の点で未使用であるが、エレメント１０２といったように相互接続をするために使用される。機能を実行する他のエレメントが、エレメント内部でルーティングを与えてエレメント９５といった実際のエレメントをバイパスするために使用する予備の入力又は出力チャンネルを有してもよい。
【００７１】
当業者は、情報及び信号を様々な異なる技術及び方法を用いて表してもよいことを理解するであろう。例えば、上記の記載にわたって言及されているデータ、命令、コマンド、情報、信号、ビット、記号等を、電圧、電流、電磁波、磁場又は粒子、光場又は光子、又はそれらの組み合わせで表してもよい。情報及び信号を、ワイヤ、金属の配線、ビア（ｖｉａ）光ファイバ等を含む何らかの適切な輸送媒体用いて、開示したシステムの部品間で通信してもよい。
【００７２】
さらに、当業者は、本書に開示されている本実施例とともに記載された様々な具体的な論理ブロック、モジュール、回路、及びアルゴリズムのステップを、様々な方法で実施してもよいことを十分理解するであろう。システムのトポロジーのこのような多様さを明りょうに記載するために、具体的な部品、ブロック、モジュール、回路、及びステップは、一般にそれらの機能性の観点で上述されている。このような機能性を上記の特定の機能的なブロックで実施するかどうかは、特定のアプリケーション及びシステム全体に課される設計制約及び対応する設計上の選択に依存する。当業者は、それぞれの特定のアプリケーションのために様々な点で上記の機能性を実施するであろうが、このような実施の決定は、本発明の範囲を逸脱すると解釈すべきではない。
【００７３】
本発明によって提供される利益及び利点は、特定の実施例に関連して上述されている。より明白となるこれらの利益及び利点、及びエレメント又は限定は、任意又は全ての特許請求の範囲の重要な、必須の又は本質的な態様として解釈すべきではない。本書で使用するように、「具える」、「具えている」という用語又はこれらの他の変形は、これらの用語に付随するエレメント又は限定を非排他的に含むとして解釈することを意図する。このため、エレメントの組から成るシステム、方法、又は他の実施例は、これらの実施例のみに限定されず、明示的に記載されておらず又は主張した実施例に特有の他のエレメントを含んでもよい。
【００７４】
特定の実施例を参照して本発明を説明したが、本実施例は具体例であって、本発明の範囲はこれらの実施例に限定されないことに留意されたい。上記の本実施例に対する多くの変形、変更、追加及び改良が可能である。これらの変形、変更、追加及び改良は、上記の特許請求の範囲に記載のように本発明の範囲内にある。
【図面の簡単な説明】
【００７５】
【図１】図１は、可変精度内部接続バスを介して互いに通信する処理エレメントの配列を示す、一実施例に関するダイヤグラムである。
【図２】図２は、データワードを一連のディジット及びフラグビットにマッピングして可変精度ワードを形成する仕方を示す、一実施例に関するダイヤグラムである。
【図３】図３は、ディジットシリアル・データワードトランザクションの可変精度バスの活動を示す、一実施例に関するダイヤグラムである。
【図４】図４は、多方向にデータを入力／出力できるデータ処理エレメントの中心の接続を示す、一実施例に関するダイヤグラムである。
【図５】図５は、読み込み及び書き出し内部レジスタ／メモリのシステムインターフェイスを示す、一実施例に関するダイヤグラムである。
【図６】図６は、配列のデータ処理エレメントに行列のアドレス指定能力を与えるよう構成されたコマンドインターフェイスを示す、一実施例に関するダイヤグラムである。
【図７】図７は、配列のデータ処理エレメントから状態情報を通信できるよう構成された状態インターフェイスを示す、一実施例に関するダイヤグラムである。
【図８】図８は、階乗のアルゴリズムを示す、一実施例のフローチャートである。
【図９】図９は、図８の階乗のアルゴリズムを実行する１組のデータ処理エレメントを示す、一実施例に関するダイヤグラムである。
【図１０】図１０は、行／列の配列の図９のデータ処理エレメント示す、一実施例に関するダイヤグラムである。
【図１】
2008537268.tif 000020
【図２】
2008537268.tif 000021
【図３】
2008537268.tif 000022
【図４】
2008537268.tif 000023
【図５】
2008537268.tif 000024
【図６】
2008537268.tif 000025
【図７】
2008537268.tif 000026
【図８】
2008537268.tif 000027
【図９】
2008537268.tif 000028
【図１０】
2008537268.tif 000029