(58)【調査した分野】(Int.Cl.,DB名)
複数のエレメントと、前記複数のエレメントの間でデータを転送するチャネルであって、当該チャネルにアクセス可能な前記複数のエレメントに対し相手を特定せずにデータを転送するチャネルとを含むデータ処理部を有する装置の制御方法であって、
前記複数のエレメントのそれぞれは、論理エレメントと、
前記論理エレメントの入力側と前記チャネルとの接続をサイクル単位でオンオフし、データの取り込みの要否を制御する取得ユニットと、
前記論理エレメントの出力側と前記チャネルとの接続をサイクル単位でオンオフし、接続がオフの際は、前記チャネルを他のエレメントによりドライブ可能とするポストユニットとを含み、
前記データ処理部は、さらに、前記取得ユニットの前記オンオフおよび前記ポストユニットの前記オンオフを制御する制御ユニットを含み、
当該制御方法は、
前記制御ユニットが前記取得ユニットの前記オンオフまたは前記ポストユニットの前記オンオフをサイクル単位で制御し、前記複数のエレメントの前記チャネルに対する取得およびポストをサイクル単位で繰り返して変更することにより目的の動作を行わせることを含む、制御方法。
複数のエレメントと、前記複数のエレメントの間でデータを転送するチャネルであって、当該チャネルにアクセス可能な前記複数のエレメントに対し相手を特定せずにデータを転送するチャネルとを含むデータ処理部を有し、
前記複数のエレメントのそれぞれは、論理エレメントと、
前記論理エレメントの入力側と前記チャネルとの接続をサイクル単位でオンオフし、データの取得の要否を制御する取得ユニットと、
前記論理エレメントの出力側と前記チャネルとの接続をサイクル単位でオンオフし、接続がオフの際は、前記チャネルを他のエレメントによりドライブ可能とするポストユニットとを含み、
前記データ処理部は、さらに、前記取得ユニットの前記オンオフおよび前記ポストユニットの前記オンオフをサイクル単位で制御し、前記チャネルに対する取得およびポストをサイクル単位で繰り返して変更することにより目的の動作を行わせるタイミング制御ユニットを含む装置。
請求項5ないし12のいずれかにおいて、前記タイミング制御ユニットは、自律的に前記取得ユニットの前記オンオフおよび前記ポストユニットの前記オンオフをサイクル単位で制御する機能と、
外部からのローディングにより前記取得ユニットの前記オンオフおよび前記ポストユニットの前記オンオフをサイクル単位で制御する機能とを含む、装置。
【発明を実施するための形態】
【0015】
プログラマブルなデータ処理装置として、回路を動的に再構成可能な論理回路を含む装置がある。回路は、「電気の流れる、輪のように閉じている道筋」、また、電子回路は「電気部品を電気伝導体で接続し電流の通り道を作り、目的の動作を行わせる電気回路」などと定義される。これに対し、電子回路により実装される目的の動作(処理、算術演算、論理演算)を断続的に、たとえば、クロックのタイミングで、断続的に行うことを考えると、閉じている道筋を形成する必要はない。したがって、目的の動作を行わせるための電子回路を形成する必要はない。回路を形成せずに処理を進めることができるデータ処理部、すなわち、非回路型のデータ処理部により、論理回路を経た結果と同等の結果を得ることが可能である。
【0016】
本明細書では、複数のエレメント(ノード、処理エレメント、処理ユニット)と、複数のエレメントの間でデータを転送するチャネルとを含むデータ処理部を有する装置(データ処理装置)を説明する。チャネルの代表例は、配線チャネル、配線群、配線マトリクスと称される電子および/または光の通路である。チャネルは2次元に配置されていてもよく、3次元に配置されていてもよい。チャネルは、配線チャネルのように予め適当なルールにしたがって配置されていてもよく、可視光通信のように指向性を持った通信手段により空間に適宜形成されてもよい。
【0017】
光、電波を用いた指向性がそれほど高くない通信手段であれば、適当なプロトコルを採用することにより所定のエレメント間でデータを転送または交換するチャネルを形成できる。しかしながら、プロトコルの処理に要する時間を考慮するとハード的に接続をオンオフできることが望ましい。
【0018】
複数のエレメントのそれぞれは、論理エレメント(コア)と、論理エレメントの入力側とチャネルとの接続をサイクル単位でオンオフし、データ(信号を含む概念)の取得の要否を制御する取得ユニット(取得デバイス、入力ユニット、ゲットユニット、リードユニット、アクアイアユニット)と、論理エレメントの出力側とチャネルとの接続をサイクル単位でオンオフするポストユニット(ポスティングユニット、ポストデバイス、投稿ユニット、データまたは信号をチャネルに載せるデバイス)とを含む。データ処理部は、さらに、論理エレメントの処理内容、取得ユニットのオンオフおよびポストユニットのオンオフをサイクル単位で制御するタイミング制御ユニットを含む。
【0019】
取得ユニットは受動的に入力データが流れ込むのを待つのではなく、チャネルに載ったデータまたは信号をチャネルに対する接続をオンオフして取得し、エレメントに取り込む。取得ユニットは、たとえば、チャネルとの接続をオンオフしてエレメントに対するデータの流入をオンオフしてもよく、チャネルにポストされたデータをラッチするかしないかでチャネルに対する接続をオンオフして取得の要否を制御してもよい。ポストユニットは、データをチャネルに垂れ流しするのではなく、チャネルに対する接続をオンオフし、チャネルをドライブする権限を取得したり、放棄(解放)したりする。
【0020】
このデータ処理部は、複数のエレメントの接続関係をチャネル、たとえば配線群により形成して、複数のエレメントが接続された回路を構成すること、すなわちサイクル単位であっても、目的の動作を行わせる回路を生成または固定することによりアプリケーションまたはアルゴリズムを実現してもよい。
【0021】
一方、目的の動作を行わせる回路を固定または生成せずに、論理エレメント(コア)と、取得ユニットと、ポストユニットとの処理のタイミングをサイクル単位(クロック単位)で制御し、複数のエレメントのチャネルに対する取得およびポスト(取得と投稿との関係、ゲット・ポストの関係)をサイクル単位で変更してもよい。
【0022】
このデータ処理部において、チャネルのみではエレメントの接続関係(接続)は規定されない。チャネルは、ポストされたデータを配信するが、取得するのはエレメントであり、チャネルはそれを規定または制限するものではない。チャネルがマルチルートで、それぞれのルートにアクセスできるエレメントが限られている場合は、その範囲でポストされたデータにアクセスできるエレメントが限定されてもよい。各エレメントは自律的にチャネルからデータを入手し、チャネルにデータをポストする。チャネルはエレメント間の接続関係を規定せず、さらに、チャネルに対するエレメントのゲット・ポスト(ゲット・プット、入出力)は1サイクルで変わる。このため、データ処理部にサイクル単位で実装される接続のオンオフから目的とする動作を読み取れる必要はない。
【0023】
エレメントのチャネルに対するゲット・ポストをサイクル単位で変更することにより、所定のサイクルが経過した後に、目的の動作を行わせる回路と同一の結果が得られるように、チャネルに対するゲット・ポストを規定する情報(タイミング情報、ファンクション情報)を用意することができる。このファンクション情報は、エレメントが属する、あるいはエレメントがアクセスできるチャネルに対する取得のタイミング、チャネルの選択、ポストのタイミング、ポストするチャネルの選択を含むが、回路あるいは接続関係の構成(再構成)を示すものではない。サイクル単位のデータの交換(入出力、ポスト−ゲット)は、エレメント毎の取得ユニットとポストユニットとが、それぞれチャネルにアクセス(オンオフ)するか否かで決定できる。
【0024】
複数のエレメントのチャネルに対するゲット(アクアイア)およびポストを繰り返して変更することにより目的の動作(処理、演算)を行わせる場合、チャネルは、チャネルにアクセスできる他のエレメントに対し、相手を特定せずに1サイクルでデータを提供する放送網として機能すればよい。チャネルが配線群のようにマルチルートであることは並列に複数種類のデータを広げることができるので好ましい。配線群は、いずれかの配線にアクセスしたエレメントから、その配線にアクセス可能な他のエレメントに対し、相手を特定せずに1サイクル単位でデータを提供する放送網として機能する。
【0025】
チャネルに対するポストおよび取得をエレメント単位で独立して制御することにより、チャネルが特定のエレメントに占有されることを防止でき、チャネル資源(配線資源)の利用効率を大幅に向上できる。また、1サイクルでも信号(データ)が載らない、すなわち、いずれかのエレメントによりドライブされないようなチャネルは排除でき、その点でもチャネル資源の利用効率を大幅に向上できる。すなわち、このデータ処理部に実装できる技術は、エレメント同士の接続を規定してもよいが、エレメント同士の接続を規定しなくてもよく、エレメント同士の接続を規定しないことによりチャネルは占有されず、使用範囲が広がりハードウェアの利用効率が格段に向上する。
【0026】
サイクル単位で、チャネルの利用者(利用エレメント、送信者と受信者と)は変わり、チャネルを通じて目的の動作を行わせるための回路は形成されない。一方、チャネルへのアクセス(接続のオンオフ)は、取得ユニットおよびポストユニットが接続をオンオフする、すなわち、接続する/接続しないにより制御される。このため、チャネル、たとえば、配線資源は、それに接続されているエレメントとの間で、サイクル単位で、通信プロトコルの確立も不要な放送媒体として使用される。すなわち、チャネル(配線資源)は、非同期の要素としてではなく、送信側および/または受信側と同期した範囲で情報を伝達する媒体(要素)として機能する。
【0027】
このため、サイクル単位で異なる論理あるいはアルゴリズムに関連する情報を、エレメントはチャネルにポスト(出力)でき、他のエレメント(1つに限らない)は取得できる。したがって、配線などのチャネル資源を低減でき、実装密度が高く、ハードウェアの利用効率も高いデータ処理装置を提供できる。さらに、チャネルをサイクル単位の論理演算の要素として使用してもよい。すなわち、チャネルに接続する/しないを取得ユニットおよびポストユニットでスケジュール管理することによりワイヤードロジックの一部を構成することが可能である。さらに、チャネルは量子操作を反映できるものであってもよく、量子コンピューティングの一部を構成するものであってもよい。
【0028】
このデータ処理部を有する装置においては、アプリケ―ション、アルゴリズムまたは論理を含み、高位言語で記述されうる手続きを実行または実装する情報(高位レベルの情報、ファンクション情報)は、エレメントの選択(特定)と、チャネルに対して取得またはポストするタイミングとの情報に変換される。ファンクション情報は、取得またはポストするチャネルの選択を含んでいてもよい。エレメントを特定する情報はたとえば位置であり、2次元または3次元の位置情報として変換されてもよい。処理のタイミング(時間の経過)を考えると、ファンクション情報(高位レベルの情報)は、エレメントの配置が立体であれば4次元の情報に変換されうるし、エレメントの配置が平面であれば3次元の情報に変換されうる。エレメントを選択(特定)する情報は一次元であってもよく、高位レベルの情報は2次元の情報に変換されうる。高位レベルの情報は5次元以上の多次元の情報に変換されてもよい。
【0029】
エレメントを選択する情報は、エレメントに冗長性があれば特定のエレメントや特定の場所等を示す情報でなくてもよく、代替え性の高い情報に変換されうる。また、タイミングを示す情報も、チャネルの冗長性または時間的な裕度、たとえば、配線の占有時間が確保できたり、データを遅延させたり、データを退避させたりすることができれば、代替え性の高い情報に変換されうる。したがって、データ処理部において目的の処理を行わせるためのファンクション情報(高位レベルの情報)は、極めて代替え性の高い情報として提供でき、データ処理装置のハードウェアを高速処理、低消費電力、超並列性を含む多種多様な目的で使用できる。
【0030】
配線群は固定されたものであってもよく、再構成できるものであってもよい。また、エレメントにより実現される処理内容(論理演算、算術演算)も、固定されたものであってもよく、再構成または変更可能なものであってもよい。エレメントの冗長性を向上するためには、エレメントにより実現される論理は変更可能であることが望ましい。
【0031】
タイミング制御ユニットは、予め設定された順番あるいは情報に基づいて自律的に論理エレメントの処理内容、取得ユニットのオンオフまたはポストユニットのオンオフをサイクル単位で制御してもよい。タイミング制御ユニットは、外部からのローディングにより論理エレメントの処理内容、取得ユニットのオンオフおよびポストユニットのオンオフをサイクル単位で制御してもよい。タイミング制御ユニットは、外部からのローディングのみによりエレメントをサイクル単位で制御してもよいが、データ処理部は、外部からそのための情報、すなわち、上述したファンクション情報をローディングするためのチャネル資源を含む。一方、外部からのローディングなしだと、タイミング制御ユニットで制御できる内容が限定される可能性がある。したがって、上記の2つの制御を組み合わせることが望ましい。
【0032】
データ処理装置は、データ処理部に、アプリケ―ション、アルゴリズムまたは論理を実装する情報(ファンクション情報)を格納するメモリを有し、メモリから実装する情報の少なくとも一部を、チャネルを介して複数のエレメントのそれぞれに供給するユニットを有していてもよい。チャネルはエレメント同士の処理に占有されるものではなく、時分割あるいは並列にチャネルを、ファンクション情報をエレメントに供給するために共用できる。
【0033】
チャネル(配線資源)は固定であっても、再構成可能であっても、可視光通信のようにその都度形成されてもよい。チャネルは配線チャネルのようにマルチルートであることが望ましく、適当な範囲で複数のエレメントのアクセスをローカライズしたりグルーピングしたりできることは有効である。また、チャネルは多重化または多層化されていてもよく、2次元、3次元さらにはメモリや遅延素子などを介して時間方向にデータを転送できるものであってもよい。
【0034】
チャネルの一例は、第1の方向に沿って配置された第1の配線チャネルと第1の方向と異なる第2の方向に沿って配置された第2の配線チャネルとを含むものである。第1の配線チャネルと第2の配線チャネルとは縦横等、グリッド状あるいはマトリクス状に複数のエレメントが配置された領域あるいは空間をカバーするものであることが望ましい。第1の配線チャネルと第2の配線チャネルとは直交していても直交していなくてもよく、第3の配線チャネルなどのさらに多くのデータの伝達方向の異なる配線チャネルを含んでもよい。上述したように配線チャネルは2次元である必要はなく、3次元および時間を含めた4次元以上の高次元に配置されたものであってもよい。
【0035】
データ処理部は、第1の配線チャネルおよび第2の配線チャネルに時分割で接続する配線ボックスを含む。配線チャネル同士を動的に接続することにより、配線チャネルを再構成でき、配線チャネルによりデータに対するアクセスがローカライズされるエレメントを再構成できる。取得ユニットおよびポストユニットは、第1および第2の配線チャネルに対しそれぞれ独立してアクセスできることが望ましい。取得ユニットおよびポストユニットは直に第1および第2の配線チャネルにアクセスできるものであってよく、タイムシェアードタイプの配線ボックスを介してアクセスできるものであってもよい。
【0036】
エレメントの一例は、コアである論理エレメントに対して、データの流れとして、取得ユニットである入力側ボックスと、ポストユニットである出力側ボックスとがコアを挟むような形で接続されるものである。論理エレメントは、固定機能ブロックと、機能書き換えが可能なブロックとを含むものであり、これらのブロックに対し独立して複数、たとえば、4つの配線チャネルが接続されうるものである。論理エレメントは、少なくとも1つの機能書き換え可能ブロックを含み、外部からのローディング無しに、必要に応じてこれを内部更新することが望ましい。論理エレメント(コア)の機能を変更(書き換える)ために要する配線コストをさらに低減できる。つまり、使用頻度の高い機能(演算他)は、内部に実装されている圧縮された機能選択情報から、出力側のメモリスイッチに専用の固定された機能選択情報がコピーされる。これにより、常時外部から更新すべき機能選択情報を取り込む必要が無くなる。
【0037】
論理エレメント(コア)は、さらに、出力側、すなわちポストユニットから、演算機能やその他の付加情報を含む拡張ビットをポストする機能を含むことが望ましい。オバーフロー、ゼロフラグ、パリティ、キャリービット、多ビット演算対応キャリー、シフト情報、例外イベント出力等に対応可能な構造をもったデータをチャネルにポストできる。
【0038】
論理エレメントは、さらに、ポストユニットの、同期機能を実現する多チャンネル対応の出力スイッチを制御する機能を含むことが望ましい。例えば、急にイベントが発生した場合に、イベント対応の処理領域を生成するには、配線資源およびエレメント資源の割り当てを変更して、ハードウェアに空きがある処理領域を瞬時に生成する必要がある。この資源の割り当て変更の対応や入力チャネル・出力チャネルのタイミングを制御して、矛盾なくイベント対応の処理が実行される領域が実現される必要があり、この為の制御要素がエレメント内に実装されていてもよく、外部に設けられていてもよい。
【0039】
ただし、配線との接続は、予め組み込まれパターンでの対応か、イベント情報を受け取り更新された情報の2系統に対応するだけで、その整合性や一致性を確認する機能は実装されていない。この機能は、必要があれば、隣接するコアにその機能を追加で、一時的に実装して、機能が完了すると消滅(更新)させられる構造としている。
【0040】
配線チャネルは、タイムスロットの暗黙の割当を利用して動作する構造を採用できる。取得ユニット(取得デバイス)の一例は、シフトレジスター型のフリップフロップと簡単なマスク機能を持ったANDゲートを利用して、有効データを取り込むか取り込まないのかを決定するものである。4ビットを単位として制御する例であれば、4サイクル分の取り込みの要否の情報(ファンクション情報)をフリップフロップに記憶させる。5サイクル目からは、ファンクション情報をメモリから取り込むか最初に戻って同じ4サイクルを繰り返すかを決めて動作させる。パターンが長い場合は、5サイクル目、9サイクル目、13サイクル目をそれぞれメモリからローディングして繰り返すことで、メモリのアクセスタイムに余裕を持たせると同時に、長期パターンにも対応可能な構造とすることができる。
【0041】
配線ボックスに実装される配線チャネルスイッチは、基本的には、複数の縦側チャネルから次の縦側チャネルの指定するチャネルへスイッチするか、横側チャネルの指定されるチャネルにスイッチするかを決める機能を含む。スイッチが正常に動作したか否かは、基本的に、アプリケーション側が責任を持つ方式である。すなわち、配線チャネルの構成がエレメント同士の接続を決定しないので、エレメント側がアクセスするかしないかをタイミングとともに制御することでエレメント間の授受が決定される。したがって、物理的に配線の接続を検証することに意味はなく、エラーチェックをする処理をエレメントの選択情報とタイミングとの情報で追加することが可能である。
【0042】
コスト削減を優先する場合、正常に配線チャネルがスイッチされることを前提にして、エレメントを動作させる。データ取りこみは、エレメント側で制御され、配線チャネルスイッチは、配線間のスイッチ(取りこみと出力)だけの機能を持っている。取りこみは、指定されたタイミングで、データのスイッチだけを行う。あるいは、出力させる配線チャネルを選択してデータを有効にするだけの機能を果たす。
【0043】
図1に、回路を形成せずに処理を行えるデータ処理部10を含むデータ処理装置1の一例を部分的に拡大しながら示している。このデータ処理装置1は、固定された回路または再構成可能な回路を用いてデジタル処理を行うデジタル処理部3と、CPU2と、メモリ5と、タイミング制御により処理を行うデータ処理部10とを含む。非回路なデータ処理部10は、複数のエレメント(セル)20と、縦横にマトリクス状に配置された配線チャネル50と、配線ボックス58とを含む。
【0044】
図2に、非回路なデータ処理部10の構成を、一部を拡大して示している。このデータ処理部10は、複数、本例では64×64個、すなわち、4096個のエレメント(セル)20と、それらのエレメント20が接続できるように縦横に配置された配線チャネル50とを含む。配線チャネル50は、
図2の横方向(第1の方向)に配置された横配線(第1の配線チャネル)51と、横配線51と直交する第2の方向に配置された縦配線(第2の配線チャネル)52とを含む。
【0045】
図3に、非回路なデータ処理部10の構成を部分的にさらに拡大して示している。エレメント20は、中心のコア31と、その周囲に配置された4方向の接続制御ユニット35a、35b、35cおよび35dとを含む。接続制御ユニット35a〜35dは、後述する取得ユニット21a〜21dと、ポストユニット28a〜28dとをそれぞれ含む。配線チャネル50は、縦横の配線チャネル51および52に加え、配線ボックス58とエレメント20とを接続するローカル配線チャネル55を含む。各エレメント20は、縦横のグローバルな配線チャネル51および52に配線ボックス58を介して接続できる。
【0046】
各エレメント20は、さらに、配線ボックス58を介してローカル配線チャネル55により、グローバルな配線チャネル51および52を経由せずに、隣接するエレメント20に接続できる。ローカルに接続できるエレメント20の範囲は、4方に限定してもよく、8方向に限定してもよく、さらに、その外側まで延長してもよい。配線ボックス58を介さずに、エレメント20同士がローカルで接続できるようにしてもよい。ローカルな配線はエレメント20に占有される可能性が高いので、配線の利用効率は低くなる可能性がある。その一方、グローバルな配線チャネル51および52を、ローカルなエレメント20同士のデータ交換から解放できるのでチャネル51および52の利用効率が向上する。
【0047】
配線ボックス58は、時分割(タイムシェア)で、サイクル単位で縦横の配線チャネル51および52に含まれる配線の接続を再構成する。配線ボックス58は、入力側ボックス59aおよび出力側ボックス59bを含み、配線チャネル51および52に対するエレメント20からの出力および入力方向を制御できる。本例では、エレメント(セル)20が独立して、エレメント20の上下に配置された2つの配線チャネル51および左右に配置された縦方向の配線チャネル52の4つ(4方向)の配線チャネル50に対し接続をオンオフできる構造となっている。接続をオンオフできる配線チャネルの数は4方向に限定されない。3次元にエレメント20が配置されている場合は8方向(8配線チャネル)であってもよい。配線チャネルが交差する角度は90度に限定されないので、さらに多くの方向に延びた配線チャネルを配置することも可能であり、それらに対して接続が制御できるエレメント20を配置してもよい。
【0048】
配線ボックス(接続制御ユニット、配線チャネルスイッチ)58は、複数の縦側チャネル52から次の縦側チャネル52の指定するチャネルへスイッチするか、横側チャネル51の指定されるチャネルにスイッチするかをサイクル単位で決定する機能を含む。配線ボックス58のスイッチングが正常かどうかは、基本的に、アプリケーション側が責任を持つ方式であり、もし、心配であれば、このエラーチェックをする機能が配線ボックス59の接続制御ユニットに付加される。コスト削減を優先する場合、正常にスイッチングされることを前提にして動作させる。データの取りこみの要否は、エレメント20の側で選択される。したがって、配線ボックス58は、配線間のスイッチング(取りこみと出力)だけの機能を持ち、取り込む側のエレメント20が指定されたタイミングでデータを取り込むスイッチングだけを行う。あるいは、エレメント20が出力する配線チャネルを選択してデータを有効にするだけの処理を行う。
【0049】
データ処理部10は、バス8を介してデジタル処理部3、CPU2、およびメモリ5と接続される。メモリ5には、データ処理部10に、アプリケーションなどを実装するファンクション情報5aが格納されている。ファンクション情報5aは、上述したタイミング情報5bと、エレメントを選択(特定)する情報5cとを含む。ファンクション情報5aはさらに、配線ボックス58をサイクル単位で制御する情報5dなどを含んでいてもよい。
【0050】
CPU2は、メモリ5からファンクション情報5aを、配線チャネル50を介して各エレメント20に供給する機能(供給ユニット)2aを含む。供給ユニット2aは、装置1のリセット時、特定の処理の開始時などのタイミングでファンクション情報5aを各エレメント20に配線チャネル50を介して供給する。さらに、供給ユニット2aは、処理の途中に、ファンクション情報5aを配線チャネル50にポストし、所定のエレメント20がローディングできるようにしてもよい。データ処理部10においては、配線チャネル50がサイクルベースで解放されるので、配線チャネル50をエレメント20の間でデータの交換、ファンクション情報5aの供給などに共用できる。
【0051】
図4にエレメント20の概略構成を拡大して示している。エレメント20は、データ処理部(AxionNipeR)10の基本セルであり、独立した4CHの取得ユニット(入力部)21a〜21dと、独立した4CHのポストユニット(出力部、2CHx2は共通)28a〜28dと、コアである論理エレメント25とを含む。論理エレメント25は、高利用頻度が予想される4ビットの加算・減算・比較・論理演算と8ビット、12ビット、16ビット拡張迄の対応を論理エレメント25の基本回路として内部に圧縮して、他のエレメント20と共通回路として保持し、外部からの情報入力を不要としている。論理エレメント25が対応していない新しい回路構成情報は、ファンクション情報5aを介して外部から導入して更新する方式となる。
【0052】
取得ユニット(取得モジュール、MUX−INA、−INB、−INC,−IND)21a〜21dは、配線チャネル50からのデータを取得する4つの独立したマルチプレクサである。入力データ信号は、隣接している配線チャネル50から供給される。取得ユニット21a〜21dは、配線チャネル50との接続をサイクル単位でオンオフする。配線チャネル50に対する接続をオンオフし、配線チャネル50にポストされたデータを、取得ユニット21a〜21dを介して入力制御ユニット22にラッチをするかどうかは、全て以下で説明するタイミング・コントローラ(タイミング制御ユニット、CTL−TMNG)26にてサイクル単位で確定する。
【0053】
入力制御ユニット(入力制御モジュール、ラッチユニット、MUX−4×4)22は、タイミング・コントローラ26から供給される制御パターン情報に従って、4CHの独立した入力信号をラッチし、レジスタ23aおよび23bに格納済みの入力信号の入替や交換、ファンクション・ラッチ・ブロック24a〜24dのいずれに入力データを接続するかを決定する。入力制御ユニット22は、データ信号のスイッチ機能を実現している。入力制御ユニット22は、特殊な制御コード情報による自己診断、配線チャネル50を介して外部、たとえば、CPU2の供給ユニット2aからのファンクション情報5aのローディング指示を解読する機能を有している。これらの機能は、タイミング・コントローラ26と連動して実現している。
【0054】
ファンクション・ラッチ・ブロック(ファンクションラッチモジュール、FNC−LA、−LB、−LC、−LD)24a〜24dは、ファンクションメモリ(論理エレメント)25から内部デコード(解読)されたファンクションを記憶するラッチモジュールである。ファンクション・ラッチ・ブロック24a〜24dは、それぞれ、図面上の横方向に4サイクル分のファンクションをラッチして格納し、入力データを4CHの独立した論理で処理(算術演算、論理演算を含む)して出力する。
【0055】
ファンクション・ラッチ・ブロック24a〜24dは、ファンクション情報5aなどの特殊制御コードがエレメント20に届き、ラッチされると、その制御コードに含まれている外部情報の取り込みを行い、内部デコードを無視して、それを取り込む機能を含む。内部デコードのラッチは、原則、1サイクルで完了する。外部情報の取り込みを実行する場合は、1〜4クロック・サイクルを消費してもよい。
【0056】
ファンクションメモリ(LST−FXP)25は、エレメント20のコアである論理エレメント31の中心となる内部論理が格納されているメモリである。ファンクションメモリ25は、4ビット単位での処理や8ビット、12ビット、16ビットでの拡張データ処理、加算・減算・比較、論理演算、その他のエレメント20として使用頻度の高いパターンを圧縮してエレメント20の内部に保持している。ファンクションメモリ25は、外部から取得ユニット21a〜21dを介して、または、内部のタイミング・コントローラ26から特殊ローディングコードを受け取ると、その制御情報に従って、予め格納されている中から必要なファンクション情報5aを選んで、これを内部のラッチ24a〜24dに格納する。
【0057】
タイミング・コントローラ(タイミング制御ユニット、CTL−TMNG)26は、外部からタイミング制御情報を受け取り、内部に用意された、または内部でデコードされ、レジスタ27aおよび27bにセットされた4セットのファンクション情報5aに基づき4つの独立したファンクション・ブロックをサイクル単位(クロック単位)で制御する。すなわち、タイミング・コントローラ26は、取得モジュール21a〜21d、ファンクション・ラッチ・ブロック24a〜24d、および以下で説明するポストユニット28a〜28dをそれぞれ必要に応じてタイミング制御をするモジュールである。
【0058】
タイミング・コントローラ26の主な機能の1つは、配線チャネル50から入力データを取り込むタイミングの制御である。タイミング・コントローラ26の主な機能の他の1つは、配線チャネル50の所定のチャネルへ出力データを送信(ポスト、配信)するタイミングの制御である。出力の必要が無い場合は、出力信号は、全て“0”または“1”へと固定される。配線チャネル50に接続できるエレメント20の間において負論理が処理されているか、正論理が処理されているかに依存する。
【0059】
このタイミング・コントローラモジュール26は、電源投入後(パワーオンリセット)、特殊パターンが入力されると、自己診断機能や外部からの制御情報や新しいファンクションの取り込みを自動的に行う機能を有していてもよい。また、タイミング・コントローラ26は、エレメント20の各機能を制御するのみならず、エレメント20に属している配線ボックス58の制御をサイクル単位で行ってもよい。また、タイミング・コントローラ26は、基本的には、内部デコードしてレジスタ27aおよび27bに格納されたファンクション情報5aに基づいて繰り返し、または所定のパターンでエレメント20を自律して(独立して)制御する。一方、配線チャネル50を介して、外部から特殊コードとともにファンクション情報5aが供給されると、それをファンクション・ラッチ・ブロック24a〜24dに直接出力してエレメント20の機能(処理内容)を一時的に変えたり、ファンクションメモリ25の内容を更新してエレメント20の基本的な機能を変えたりすることができる。
【0060】
ポストユニット(MUX−OUTA、−OUTB、−OUTC、OUTD)28a〜28dは、エレメント20から配線チャネル50に対して出力を決定する4つの独立した出力チャネルである。出力信号をアクティブにするかどうかは、全てタイミング・コントローラ26が確定する。ポストユニット28a〜28dは、サイクル単位で配線チャネル50に対する接続をオンオフする。ポストユニット28a〜28dは、それぞれ異なる配線チャネル50に出力データをポスト(投稿、載せる)してもよく、バス形式の配線チャネル50に所定のビット長のデータをポストしてもよい。ポストユニット28a〜28dは、同期機能を実現する多チャンネル対応の出力スイッチを含むことが望ましい。
【0061】
ポストユニット(ポスティングユニット)28a〜28dは、配線チャネル50にデータを出力(ポスト)しないときは、配線チャネル50とエレメント20の出力側との接続をオフにする。これにより、配線チャネル50はポストユニット28a〜28dにドライブされず、出力しないエレメント20から解放され、配線チャネル50は他のデータ出力をするタイミングとなっているエレメント20によりドライブされる。
【0062】
ポストユニット28a〜28dは、出力データに加え、付加情報を出力する。付加情報は、オバーフロー、ゼロフラグ、パリティ、キャリービット、多ビット演算対応キャリー、シフト情報、例外イベント出力などを、配線チャネル50を介して配信するために用いられる。取得ユニット21a〜21dは、配線チャネル50から付加情報を含めてデータを入手してもよく、付加情報を除いてデータを入手してもよい。
【0063】
エレメント20のコア31は、上記の複数の機能書き換え可能ブロック(可変機能ブロック)に加え、固定機能ブロックを含んでいてもよい。エレメント20のコア31の可変機能ブロックは、ファンクションメモリ25を備えており、外部からのローディング無しに、必要に応じてこれを内部のデータ(情報)だけでそれぞれの機能を更新することが可能である。使用頻度のさらに高い機能(演算他)は、固定機能ブロックで対応してもよく、ファンクションメモリ25に圧縮されたファンクション情報の量を削減できる可能性がある。
【0064】
なお、上記のエレメント20は4ビットで構成された例を示しているが、2ビットでもよく、8ビット以上を基本とするエレメントであってもよい。さらに、上記のエレメント20は4サイクル分のファンクション情報を予めフリップフロップまたはレジスタ27a、27b、24a〜24dに記憶させて内部で自律的に制御できる例を示している。5サイクル分以上のファンクション構成情報を内部に展開して繰り返して処理するものであってもよい。4サイクル分のファンクション情報が終了すると、5サイクル目からは、外部または他のメモリから取り込んでもよく、ファンクションメモリ25から新たにデコードしてもよく、すでにデコード済みのファンクション情報を繰り返し使用してもよい。
【0065】
エレメント20において実行する処理の繰り返しパターンが長い場合は、5サイクル目、9サイクル目、13サイクル目をそれぞれ外部メモリ5からローディングして、これを繰り返えしてもよい。メモリ5のアクセスタイムに余裕を持たせると同時に、長期パターンにも対応可能となる。
【0066】
図5に配線ボックス58の内部構成の一例を示している。配線ボックス58もサイクル単位でグローバルな配線チャネル51および52の接続を変えたり、配線チャネル51または52からローカルな配線チャネル55を介してエレメント20との接続を変えたりする機能を備えている。
図5に示した例は、シフトレジスター型のフリップフロップと簡単なマスク機能を持ったANDゲートを利用して、有効データを取り込む、または取り込まないかを決定するものである。
【0067】
図6に、取得ユニット21a〜21d、配線ボックス58において、配線チャネル50の中の指定されたバスとの接続をオンオフするモジュール61の一例を示している。このモジュール61は、MUXが不要な単純な構造を採用した例である。
【0068】
図7に、ポストユニット28a〜28d、配線ボックス58において、配線チャネル50の中の指定されたバスとの接続をオンオフするモジュール62の一例を示している。配線チャネル50は、タイムスロットの暗黙の割当を利用して動作する構造であり、出力側のモジュール62は、配線チャネル50の中のプログラムされたバスのみをドライブし、必要のないバスを解放する構成が採用されている。
【0069】
図8に、データ処理部10の各エレメント20のタイミングの制御をフローチャートにより示している。この制御方法は、論理(論理回路)としてエレメント20、タイミング・コントローラ26などに実装されていてもよく、ファームウェア、マイクロプログラム(プログラム製品)として提供され、メモリなどの適当な記録媒体に格納されていてもよい。
【0070】
ステップ71で、タイミング・コントローラ26がエレメント20の入力側を配線チャネル50に接続するタイミング(サイクル)であると判断すると、ステップ72で取得ユニット21a〜21dのいずれかをオンし、ステップ73で配線チャネル50にポストされているデータをラッチする。取得ユニット21a〜21dをオンする際、ステップ85で配線チャネル50の縦横の配線チャネル51および52の接続は再構成されており、その再構成された配線チャネル50でローカライズされたエレメント20がポストしたデータをラッチする。その後、ステップ74で、取得ユニット21a〜21dをオフし、配線チャネル50を解放する。
【0071】
ステップ75においてラッチされたデータが演算用か、ファンクション情報の更新用かを判断する。ファンクション情報であれば、ステップ81でファンクションメモリ25を更新するか、ファンクション・ラッチ・ブロック24a〜24dでラッチして、エレメント20の処理内容を変更する。
【0072】
ステップ75においてラッチされたデータが演算用であれば、ステップ76で、エレメント20の内部で、そのタイミング(サイクル)で指定された処理(演算)が行われる。ステップ77で、タイミング・コントローラ26が出力側を配線チャネル50に接続するタイミング(サイクル)であると判断すると、ステップ78でポストユニット28a〜28dのいずれかがオンになり、ステップ79で配線チャネル50に出力データがポストされる。ポストユニット28a〜28dをオンする際、ステップ85で配線チャネル50の縦横の配線チャネル51および52の接続は再構成されており、その再構成された配線チャネル50でローカライズされたエレメント20がポストされたデータを取得することができる。その後、ステップ80で、ポストユニット28a〜28dをオフし、配線チャネル50を解放する。
【0073】
その後、ステップ82で、タイミング・コントローラ26が次のファンクション情報を認識し、そのファンクション情報にしたがってエレメント20の制御を繰り返す。
【0074】
図9に、配線チャネル50の占有状況が変化する様子を模式的に示している。
図9(a)は、エレメントC33とエレメントC11との間でデータ交換が行われる処理(論理演算)と、エレメントC32とエレメントC21との間でデータ交換が行われる処理とを時分割で物理的に同じ配線チャネル50、具体的には、配線チャネルX6およびY2に対してオンオフすることで行うことを示している。
図9(b)は配線チャネルX6およびY2の占有を示すタイミングチャートである。
【0075】
ファンクション情報CD1ではエレメントC33およびC11が配線チャネルX6およびY2に対してオンとなり、それらの間でデータ交換が行われる。ファンクション情報CD2ではエレメントC32およびC21が配線チャネルX6およびY2に対してオンとなり、それらの間でデータ交換が行われる。ファンクション情報CD3およびCD4では、エレメントC11,C21,C32およびC33は、配線チャネルX6およびY2に対してオフであり、これらの配線に他のエレメント20がアクセスしてデータのポストおよび取得が行われる。配線チャネルX6およびY2は、サイクル単位で利用者が変わり、配線チャネルは時分割で占有される。配線チャネルの利用者を固定することももちろん可能である。
【0076】
データ処理部10の配線チャネル50は、サイクル単位で送信者と受信者とが変わり、配線チャネル50を通じて目的の動作を行わせるための回路は形成されない。配線チャネル50は、配線チャネル50に接続されているエレメント(セル)20の間で、サイクル単位で、通信プロトコルの確立も不要な放送媒体として使用され、利用者はサイクル単位で配線チャネルにアクセスできる。
【0077】
配線チャネル50は、信号が伝達される非同期の要素としてではなく、送信側および/または受信側と同期した範囲で情報を伝達する媒体(要素)として機能する。このため、エレメント20は、サイクル単位で異なる論理あるいはアルゴリズムに関連する情報を、時分割で配線資源に出力(ポスト)でき、他のセル20は時分割で情報(データ、信号)を取得できる。したがって、配線資源を低減でき、実装密度が高く、ハードウェアの利用効率も高いデータ処理装置を提供できる。さらに、配線資源をサイクル単位で論理演算を行う要素しても使用できる。
【0078】
論理演算エレメントであるコア31は、加算、乗算などの比較的ゲート数の大きな論理演算を行うもの(コースグレイン)であってもよく、4入力以下のAND、NAND、OR、NOR、EXORなどの比較的ゲート数の小さな論理演算を行うもの(ファイングレイン)であってもよい。本例では、ファイングレインなコア31を採用している。論理演算はルックアップテーブルを用いるものであってもよく、セレクタータイプのものであってもよく、メモリタイプのものであってもよい。
【0079】
図10に、データ処理装置1を含むシステム(OLP)100の一例を示している。このシステム100は、FAIMSなどのセンサーから得られたデータ101を解析するシステムであり、非回路型のデータ処理部10に様々な機能を時分割または並列に実装することが可能である。このシステム100は、様々なアプリケーションのプラットフォームとして使用できる。アプリケーションのいくつかの例は、ヘルスケアモニタリング100a、プロセスモニタリング100b、セキュリティーモニタリング100c、コンシューマー向けの匂いビジネスアプリケーション100dである。装置1には、FAIMS(イオン移動度センサー)、MS(質量センサー)などのセンサーから得られるデータ101の他に、温度、湿度、圧力、周辺画像、GPSなどの補助センサーデータ102と、サンプリングシステムのデータ、たとえば、サンプリングタイム、サンプリング対象に関するデータ103が入力される。
【0080】
データ処理部10には、たとえば、測定対象物のカテゴリーなどを判断して解析条件を設定するパーサ110と、ベースライン補正などのデータ補正を行うユニット111と、ピークを規格化したり、ノイズを低減するユニット113と、センサーデータ101に含まれるピークを検出したり分離するユニット114と、分離されたピークから種類(性質、属性)および量を判断する分析エンジン115と、SOM(自己組織化写像)、ニューラルネットワークなどの手法を用いて分析エンジン115において得られた情報から測定元の化学物質を類推または分類するエンジン116と、装置内部のデータベースまたはネットワークを経由してデータベースサーチを行い、測定対象の化学物質を判断するユニット(機能)117とが実装される。これらの機能は、原則として、エレメント20を選択する情報と、配線チャネルにアクセスするタイミングの情報とによりデータ処理部10に実装される。
【0081】
CPU2は、データ処理部10における処理を支援するための機能を実現する。たとえば、CPU2は、参照データベースにアクセスする機能124、クラウド(LAN)にアクセスする機能123、ユーザーインタフェース機能122、データ取得制御機能121を提供する。これらの機能は、データ処理部10の空きスペースや空き時間を用いてデータ処理部10に実装することも可能である。
【0082】
リアルタイムで化学物質を検出および分析のためには大規模並列データ処理エンジンが要望される。リアルタイムで化学物質を検出および分析することにより、疾患検出のバイオマーカの同定や定量化、健康状態あるいは生体機能の監視、遠隔監視技術による管理医療の提供といった画期的なサービスをユーザーに提供することが可能となる。そのためのプラットフォームは、知的であり、拡張可能であり、さまざまなアプリケーションやパフォーマンスへの要求に答えられる必要がある。非回路型の情報処理セクターであるデータ処理部10を含む装置1は、配線チャネルに複数のエレメントが自在にアクセスできるという並列処理ハードウェアとしての機能に加え、タイミング制御により動的にプログラム可能であり、上記の要求にマッチしたハードウェアである。
【0083】
センサーの1つは、FAIMS(Field Asymmetric ion mobility spectrometer)である。FAIMSは、空気などに含まれる微量な化学成分の検出に適しており、警備、環境モニタリング、ヘルスケア、産業プロセス、エネルギーなどの広範囲にわたるアプリケーションに適用されようとしている。FAIMSおよびMS(質量センサー)はチップレベルの小型軽量なものが市場に提供され始めており、チップレベルで実現できる装置1を解析用のプラットフォームとして採用することにより、小型、軽量、機械的および熱的に堅牢で、低パワーの、チップレベルでのリアルタイム化学物質分析装置を提供できる。