図面 (/)

技術 リコンフィグ演算装置を備えるコンピュータシステムおよびリコンフィグ演算装置

出願人 スパンションエルエルシー
発明者 古川浩笠間一郎
出願日 2009年6月25日 (11年4ヶ月経過) 出願番号 2009-151161
公開日 2011年1月13日 (9年10ヶ月経過) 公開番号 2011-008519
状態 特許登録済
技術分野 並列プロセッサ マイクロコンピュータ
主要キーワード 特定演算 平方根演算器 プリントボード 演算シーケンス 三角関数演算 固定出力 演算エレメント 演算指示
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2011年1月13日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (17)

課題

演算に応じて処理時間を短縮できるリコンフィグ演算装置を備えるコンピュータシステムの実現。

解決手段

CPU1と、RAM I/F2と、リコンフィグ演算装置4と、を備えるコンピュータシステムであって、リコンフィグ演算装置は、入力端子31と、出力端子32と、複数のPE33と、接続状態が変更可能なネットワーク34と、RAM I/F2のアドレス空間に配置されたリコンフィグ内蔵RAM14と、制御部31,32と、を備え、演算は、第1の種類の命令と、第2の種類の命令と、を備え、CPU1は、第1の種類の命令をリコンフィグ内蔵RAMの第1アドレスに、変数データを第2アドレスに書き込み、制御部は書き込まれた第1の種類の命令を解読して、複数のPEおよびネットワークを設定し、CPU1は第2の種類の命令の変数データを、リコンフィグ内蔵RAMの固定入力アドレスに書き込み、制御部はそれに応じて複数のPEおよびネットワークを設定する。

概要

背景

従来の伝統的なプログラム可能マイクロプロセッサは、メモリに記憶されている命令順番読み出して逐次的に処理する。実行可能な命令は簡単な命令であり、このようなマイクロプロセッサの処理能力には一定の限界がある。
近年、マイクロプロセッサは、高速割り込み応答性などの従来通りの要求に加えて、さらに複雑な演算についても高速に実行することが要求されるようになってきた。

制御用マイクロコンピュータマイコン)は、高速に演算処理を実行することを目的に作られた汎用マイクロプロセッサ(CPU)と異なり、一般的に割り込みによる制御および高い応答性を目的として作られている。そのため、制御用マイコンで実行可能な命令は、単純な命令のみで、複雑な処理命令を備えていないという問題があった。また、複雑な命令を備えている場合でも、その処理時間が長いという問題があった。近年要望されている制御マイコンは、割り込み応答性は重要であるが、それに加えて、複雑な演算を含んだアプリケーションを高速に実行できることが要求されている。制御用マイコンを含めて、マイクロプロセッサには、次のような問題があった。

マイクロプロセッサで複雑な演算を実行可能にする場合、プロセッサ内部の演算ユニットALU)における演算レイテンシが長くなり、演算実行時における割り込み応答が遅くなるという問題を生じる。また、割り込み応答のために、実行していた演算を破棄した場合、再実行処理による演算ペナルティが大きくなり、演算時間が長くなるという問題を生じる。

そこで、プロセッサに、複雑な演算を実行する専用のコプロセッサを接続して、複雑な演算はコプロセッサで実行し、プロセッサは演算結果のみを受け取ることが行われている。しかし、汎用バス(BUS)上にコプロセッサを接続した場合、アプリケーションの連続する処理で、直前の演算結果を使う演算や、直後に演算結果が必要な場合が生じる。このような場合に、例えば平方根演算を1演算だけコプロセッサで実行しても、BUSアクセスによるペナルティのために実際にはあまり演算性能が向上しないという問題がある。また、汎用BUS上にコプロセッサを接続する場合、割り込み応答などによる処理に悪影響を及ぼし、割り込み処理時間が長くなるという問題を生じる。

また、コプロセッサを専用インターフェース(I/F)で接続した場合、接続するコプロセッサに搭載される命令で演算可能な処理が決定されてしまい、使用できる演算が限定されるという問題がある。

コプロセッサの演算機能が限定されるという問題を解決するために、複数のプロセッサエレメントと、複数のプロセッサエレメント、入力端子および出力端子間を変更可能に接続するプロセッサ間ネットワークと、を備え、複数の演算機能を選択的に実行するように内部状態を変更可能な再構成可能な演算装置が知られている。以下、再構成可能な演算装置をリコンフィグ演算装置と称する。

リコンフィグ演算装置は、一般には複雑な演算を実行することを目的としているため、多数の変数データを設定可能で、繰り返し演算などを実行可能なように構成される。そのため、リコンフィグ演算装置での演算時間が長く、プロセッサによるリコンフィグ演算装置へのアクセスは高速であることはあまり必要でなかった。このような理由で、リコンフィグ演算装置は、汎用BUSに接続され、プロセッサ(CPU)が変数データを設定した後、割り込みにより起動されるのが一般的である。リコンフィグ演算装置を使用する場合、プロセッサはCPUと称されるので、以下プロセッサをCPUとして説明する。

リコンフィグ演算装置は、演算機能を変更可能であり、非常に複雑な演算も実行可能であるが、内部の構成を変更すれば、比較的簡単な演算も実行可能である。このような比較的簡単な演算も、CPUで実行する場合処理時間が長くなる。リコンフィグ演算装置の実際の使用においては、非常に複雑な演算を行う頻度はあまり高くなく、比較的簡単な演算に使用されることが多い。

概要

演算に応じて処理時間を短縮できるリコンフィグ演算装置を備えるコンピュータシステムの実現。CPU1と、RAM I/F2と、リコンフィグ演算装置4と、を備えるコンピュータシステムであって、リコンフィグ演算装置は、入力端子31と、出力端子32と、複数のPE33と、接続状態が変更可能なネットワーク34と、RAM I/F2のアドレス空間に配置されたリコンフィグ内蔵RAM14と、制御部31,32と、を備え、演算は、第1の種類の命令と、第2の種類の命令と、を備え、CPU1は、第1の種類の命令をリコンフィグ内蔵RAMの第1アドレスに、変数データを第2アドレスに書き込み、制御部は書き込まれた第1の種類の命令を解読して、複数のPEおよびネットワークを設定し、CPU1は第2の種類の命令の変数データを、リコンフィグ内蔵RAMの固定入力アドレスに書き込み、制御部はそれに応じて複数のPEおよびネットワークを設定する。

目的

効果

実績

技術文献被引用数
1件
牽制数
1件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

CPUと、RAMインターフェースと、前記RAMインターフェースのアドレス空間に配置されるRAMと、コンフィグレーションデータに基づいて演算機能を動的に変更可能なリコンフィグ演算装置と、を備えるコンピュータシステムであって、前記リコンフィグ演算装置は、入力端子と、出力端子と、クロックに同期してそれぞれの演算処理を行う複数のプロセッサエレメントと、前記入端子と前記出力端子と前記複数のプロセッサエレメントの入力ポートおよび出力ポートとの間を接続し、接続状態が変更可能なプロセッサ間ネットワークと、前記RAMインターフェースのアドレス空間に配置され、前記CPUが、前記リコンフィグ演算装置で実行する演算に関係するデータを書き込み、前記リコンフィグ演算装置で実行した演算結果が書き込まれるリコンフィグ内蔵RAMと、前記CPUが前記リコンフィグ内蔵RAMの所定アドレスに前記演算に関係するデータを書き込むと、前記複数のプロセッサエレメントおよび前記プロセッサ間ネットワークを対応した演算処理を行う状態に設定して前記演算を開始するように制御する制御部と、を備え、前記演算は、第1の種類の命令と、第2の種類の命令と、を備え、前記CPUは、前記第1の種類の命令を前記リコンフィグ内蔵RAMの第1の所定アドレスに、前記第1の種類の命令の変数データを前記リコンフィグ内蔵RAMの第2の所定アドレスに書き込み、前記制御部は、前記第1の所定アドレスに書き込みが行われると、書き込まれた前記第1の種類の命令を解読して、前記複数のプロセッサエレメントおよび前記プロセッサ間ネットワークを前記演算命令に対応した演算処理を行う状態に設定し、前記CPUは、前記第2の種類の命令の変数データを、前記リコンフィグ内蔵RAMの前記第1および第2の所定アドレス以外の固定入力アドレスに書き込み、前記制御部は、前記固定入力アドレスに書き込みが行われると、前記複数のプロセッサエレメントおよび前記プロセッサ間ネットワークを前記第2の種類の命令に対応した演算処理を行う状態に設定することを特徴とするコンピュータシステム。

請求項2

前記第2の種類の命令は、複数の特定演算命令を備え、前記リコンフィグ内蔵RAMの前記固定入力アドレスは、前記複数の特定演算命令に対応して複数の特定入力固定アドレスを備え、前記CPUは、前記複数の特定演算命令を、対応する前記リコンフィグ内蔵RAMの前記複数の特定固定入力アドレスに書き込むことを特徴とする請求項1に記載のコンピュータシステム。

請求項3

前記制御部は、前記第2の種類の命令の変数データの前記固定入力アドレスへの書き込みが行われると、前記リコンフィグ演算装置が前記第1の種類の命令を実行中であるか判定し、実行中でなければ前記第2の種類の命令をただちに実行し、実行中であれば、前記リコンフィグ演算装置で前記第2の種類の命令が並行して実行可能であるか判定し、並行して実行可能であれば前記複数のプロセッサエレメントおよび前記プロセッサ間ネットワークを前記第2の種類の命令を並行して行う状態に設定し、並行して実行可能でなければ実行中の前記第1の種類の命令の終了後前記第2の種類の命令をただちに実行することを特徴とする請求項1または2に記載のコンピュータシステム。

請求項4

前記リコンフィグ演算装置は、前記第1の種類の命令の演算結果を、前記リコンフィグ内蔵RAMの第3の所定アドレスに書き込み、前記第2の種類の命令の演算結果を、前記リコンフィグ内蔵RAMの固定出力アドレスに書き込むことを特徴とする請求項1から3のいずれか1項に記載のコンピュータシステム。

請求項5

前記リコンフィグ演算装置は、前記CPUによる前記第2の種類の命令の変数データの前記固定入力アドレスへの書き込みに対する受取を、前記第2の種類の命令の演算結果を前記リコンフィグ内蔵RAMの固定出力アドレスに書き込んだ後出力することを特徴とする請求項4に記載のコンピュータシステム。

請求項6

前記複数のプロセッサエレメントは、前記特定演算命令の演算を単独で実行可能であるプロセッサエレメントを含むことを特徴とする請求項2に記載のコンピュータシステム。

請求項7

前記複数のプロセッサエレメントは、異なる前記特定演算命令の演算を単独で実行するように変更可能であるプロセッサエレメントを含むことを特徴とする請求項2に記載のコンピュータシステム。

請求項8

入力端子と、出力端子と、クロックに同期してそれぞれの演算処理を行う複数のプロセッサエレメントと、前記入力端子と前記出力端子と前記複数のプロセッサエレメントの入力ポートおよび出力ポートとの間を接続し、接続状態が変更可能なプロセッサ間ネットワークと、複数の演算をそれぞれ実行するように、前記複数のプロセッサエレメントおよび前記プロセッサ間ネットワークを変更するためのコンフィグレーションデータを記憶するメモリと、実行する演算に関係するデータが書き込まれ、実行した演算結果が書き込まれるリコンフィグ内蔵RAMと、前記リコンフィグ内蔵RAMの所定アドレスに前記演算に関係するデータが書き込まれると、前記コンフィグレーションデータに基づいて前記複数のプロセッサエレメントおよび前記プロセッサ間ネットワークを対応した演算処理を行う状態に設定して前記演算を開始するように制御する制御部と、を備え、前記演算は、第1の種類の命令と、第2の種類の命令と、を備え、前記第1の種類の命令は前記リコンフィグ内蔵RAMの第1の所定アドレスに、前記第1の種類の命令の変数データは前記リコンフィグ内蔵RAMの第2の所定アドレスに書き込まれ、前記制御部は、前記第1の所定アドレスに書き込みが行われると、書き込まれた前記第1の種類の命令を解読して、前記複数のプロセッサエレメントおよび前記プロセッサ間ネットワークを前記演算命令に対応した演算処理を行う状態に設定し、前記第2の種類の命令の変数データは、前記リコンフィグ内蔵RAMの前記第1および第2の所定アドレス以外の固定入力アドレスに書き込まれ、前記制御部は、前記固定入力アドレスに書き込みが行われると、前記複数のプロセッサエレメントおよび前記プロセッサ間ネットワークを前記第2の種類の命令に対応した演算処理を行う状態に設定する、ことを特徴とする演算機能を動的に変更可能なリコンフィグ演算装置。

請求項9

前記第2の種類の命令は、複数の特定演算命令を備え、前記リコンフィグ内蔵RAMの前記固定入力アドレスは、前記複数の特定演算命令に対応して複数の特定入力固定アドレスを備え、前記複数の特定演算命令は、対応する前記リコンフィグ内蔵RAMの前記複数の特定固定入力アドレスに書き込まれることを特徴とする請求項8に記載のリコンフィグ演算装置。

請求項10

前記制御部は、前記第2の種類の命令の変数データの前記固定入力アドレスへの書き込みが行われると、前記第1の種類の命令を実行中であるか判定し、実行中でなければ前記第2の種類の命令をただちに実行し、実行中であれば、前記第2の種類の命令が並行して実行可能であるか判定し、並行して実行可能であれば前記複数のプロセッサエレメントおよび前記プロセッサ間ネットワークを前記第2の種類の命令を並行して行う状態に設定し、並行して実行可能でなければ実行中の前記第1の種類の命令の終了後前記第2の種類の命令をただちに実行することを特徴とする請求項8または9に記載のリコンフィグ演算装置。

技術分野

0001

本発明は、リコンフィグ演算装置を備えるコンピュータシステムおよびリコンフィグ演算装置に関する。

背景技術

0002

従来の伝統的なプログラム可能マイクロプロセッサは、メモリに記憶されている命令順番読み出して逐次的に処理する。実行可能な命令は簡単な命令であり、このようなマイクロプロセッサの処理能力には一定の限界がある。
近年、マイクロプロセッサは、高速割り込み応答性などの従来通りの要求に加えて、さらに複雑な演算についても高速に実行することが要求されるようになってきた。

0003

制御用マイクロコンピュータマイコン)は、高速に演算処理を実行することを目的に作られた汎用マイクロプロセッサ(CPU)と異なり、一般的に割り込みによる制御および高い応答性を目的として作られている。そのため、制御用マイコンで実行可能な命令は、単純な命令のみで、複雑な処理命令を備えていないという問題があった。また、複雑な命令を備えている場合でも、その処理時間が長いという問題があった。近年要望されている制御マイコンは、割り込み応答性は重要であるが、それに加えて、複雑な演算を含んだアプリケーションを高速に実行できることが要求されている。制御用マイコンを含めて、マイクロプロセッサには、次のような問題があった。

0004

マイクロプロセッサで複雑な演算を実行可能にする場合、プロセッサ内部の演算ユニットALU)における演算レイテンシが長くなり、演算実行時における割り込み応答が遅くなるという問題を生じる。また、割り込み応答のために、実行していた演算を破棄した場合、再実行処理による演算ペナルティが大きくなり、演算時間が長くなるという問題を生じる。

0005

そこで、プロセッサに、複雑な演算を実行する専用のコプロセッサを接続して、複雑な演算はコプロセッサで実行し、プロセッサは演算結果のみを受け取ることが行われている。しかし、汎用バス(BUS)上にコプロセッサを接続した場合、アプリケーションの連続する処理で、直前の演算結果を使う演算や、直後に演算結果が必要な場合が生じる。このような場合に、例えば平方根演算を1演算だけコプロセッサで実行しても、BUSアクセスによるペナルティのために実際にはあまり演算性能が向上しないという問題がある。また、汎用BUS上にコプロセッサを接続する場合、割り込み応答などによる処理に悪影響を及ぼし、割り込み処理時間が長くなるという問題を生じる。

0006

また、コプロセッサを専用インターフェース(I/F)で接続した場合、接続するコプロセッサに搭載される命令で演算可能な処理が決定されてしまい、使用できる演算が限定されるという問題がある。

0007

コプロセッサの演算機能が限定されるという問題を解決するために、複数のプロセッサエレメントと、複数のプロセッサエレメント、入力端子および出力端子間を変更可能に接続するプロセッサ間ネットワークと、を備え、複数の演算機能を選択的に実行するように内部状態を変更可能な再構成可能な演算装置が知られている。以下、再構成可能な演算装置をリコンフィグ演算装置と称する。

0008

リコンフィグ演算装置は、一般には複雑な演算を実行することを目的としているため、多数の変数データを設定可能で、繰り返し演算などを実行可能なように構成される。そのため、リコンフィグ演算装置での演算時間が長く、プロセッサによるリコンフィグ演算装置へのアクセスは高速であることはあまり必要でなかった。このような理由で、リコンフィグ演算装置は、汎用BUSに接続され、プロセッサ(CPU)が変数データを設定した後、割り込みにより起動されるのが一般的である。リコンフィグ演算装置を使用する場合、プロセッサはCPUと称されるので、以下プロセッサをCPUとして説明する。

0009

リコンフィグ演算装置は、演算機能を変更可能であり、非常に複雑な演算も実行可能であるが、内部の構成を変更すれば、比較的簡単な演算も実行可能である。このような比較的簡単な演算も、CPUで実行する場合処理時間が長くなる。リコンフィグ演算装置の実際の使用においては、非常に複雑な演算を行う頻度はあまり高くなく、比較的簡単な演算に使用されることが多い。

先行技術

0010

特開2006−302132号公報
特開2007−094847号公報
特開2007−133456号公報

発明が解決しようとする課題

0011

前記のリコンフィグ演算装置では、汎用BUSに接続されるため、上記のBUSアクセスによるペナルティのために実際にはあまり演算性能が向上しないという問題や、割り込み処理時間が長くなるという問題がある。そのため、比較的簡単な演算をリコンフィグ演算装置で実行するようにしても、処理時間はあまり短縮できないという問題が生じている。

課題を解決するための手段

0012

実施形態の第1の態様のコンピュータシステムは、CPUと、RAMインターフェースと、RAMインターフェースのアドレス空間に配置されるRAMと、コンフィグレーションデータに基づいて演算機能を動的に変更可能なリコンフィグ演算装置と、を備えるコンピュータシステムである。このコンピュータシステムにおいて、リコンフィグ演算装置は、入力端子と、出力端子と、クロックに同期してそれぞれの演算処理を行う複数のプロセッサエレメントと、入力端子と出力端子と複数のプロセッサエレメントの入力ポートおよび出力ポートとの間を接続し、接続状態が変更可能なプロセッサ間ネットワークと、RAMインターフェースのアドレス空間に配置され、CPUが、リコンフィグ演算装置で実行する演算に関係するデータを書き込み、リコンフィグ演算装置で実行した演算結果が書き込まれるリコンフィグ内蔵RAMと、CPUがリコンフィグ内蔵RAMの所定アドレスに演算に関係するデータを書き込むと、複数のプロセッサエレメントおよびプロセッサ間ネットワークを対応した演算処理を行う状態に設定して演算を開始するように制御する制御部と、を備える。演算は、第1の種類の命令と、第2の種類の命令と、を備える。第1の種類の命令を実行する場合、CPUは、第1の種類の命令をリコンフィグ内蔵RAMの第1の所定アドレスに、第1の種類の命令の変数データをリコンフィグ内蔵RAMの第2の所定アドレスに書き込み、制御部は、第1の所定アドレスに書き込みが行われると、書き込まれた第1の種類の命令を解読して、複数のプロセッサエレメントおよびプロセッサ間ネットワークを演算命令に対応した演算処理を行う状態に設定する。第2の種類の命令を実行する場合、CPUは、第2の種類の命令の変数データを、リコンフィグ内蔵RAMの第1および第2の所定アドレス以外の固定入力アドレスに書き込み、制御部は、固定入力アドレスに書き込みが行われると、複数のプロセッサエレメントおよびプロセッサ間ネットワークを第2の種類の命令に対応した演算処理を行う状態に設定する。

発明の効果

0013

実施形態の第1の態様によれば、CPUは、RAMインターフェースを介してリコンフィグ内蔵RAMの所定のアドレスに演算に関係するデータを書き込むだけで、リコンフィグ演算装置に演算を実行させることができる。また、演算結果がリコンフィグ内蔵RAMに出力されるので、CPUはリコンフィグ内蔵RAMにアクセスするだけで演算結果を得ることができる。

0014

特に、比較的簡単な演算処理である第2の種類の命令を実行する場合、CPUが、第2の種類の命令の変数データを、リコンフィグ内蔵RAMの固定入力アドレスに書き込むだけでよい。この書き込みに応じて、命令の解読を行わずに複数のプロセッサエレメントおよびプロセッサ間ネットワークは、第2の種類の命令に対応した演算処理を行う状態に設定される。従って。応答時間が短くなり、比較的簡単な演算処理である第2の種類の命令を短時間で実行できる。
特に、制御用マイコンは、一般的に割り込みによる制御および高い応答性を目的として作られているため、リコンフィグ回路を追加するだけで、特別な回路機構を増やすことなく、複雑な演算を含む処理を高速に実行できるようになる。さらに、上記の実施例の構成によれば、リコンフィグ回路は、汎用のバスを使用しないため、制御用マイコンの割り込みの応答性が低下することもない。

図面の簡単な説明

0015

図1は、第1実施形態のコンピュータシステムの概略構成を示す図である。
図2は、第1実施形態のリコンフィグ回路の構成を示す図である。
図3は、第1実施形態のリコンフィグ回路における演算実行のための構成例を示す図である。
図4は、第1実施形態のリコンフィグ回路に設けた、内部に複数の演算器およびネットワークを備えるPEの例を示す図である。
図5は、第1実施形態におけるリコンフィグ内蔵SRAMのアドレス構成を示す図である。
図6は、第1実施形態におけるリコンフィグ回路を利用した演算動作を示すシーケンス図である。
図7は、第1実施形態において、アクセラレータ演算を実行する場合の動作を示すフローチャートである。
図8は、第1実施形態において、特定演算を実行する場合の動作を示すフローチャートである。
図9は、第1実施形態において、アクセラレータ演算と特定演算を並列に実効する場合の演算ユニット&ネットワークにおける使用状態を説明する図である。
図10は、第1実施形態における特定演算の起動動作を示すタイムチャートである。
図11は、第1実施形態における特定演算の終了動作を示すタイムチャートである。
図12は、第1実施形態で、特定演算を実行する場合にCPUからのアクセスに対してアクノレッジ返送演算終了まで待つ変形例の動作を示すフローチャートである。
図13は、第2実施形態のコンピュータシステムの構成を示す図である。
図14は、第3実施形態のコンピュータシステムの構成を示す図である。
図15は、第2および第3実施形態のコンピュータシステムにおいて、演算エレメントに割り当てる演算機能の例を示す図である。
図16は、第2および第3実施形態のコンピュータシステムにおいて、演算エレメントに割り当てる演算機能の別の例を示す図である。

実施例

0016

図1は、第1実施形態のコンピュータシステムの構成を示す図である。

0017

図1に示すように、第1実施形態のコンピュータシステムは、CPU1と、RAMインターフェース(I/F)2と、SRAM3と、リコンフィグ回路4と、周辺I/F5と、外部RAM6と、周辺機器7A〜7Nと、を備える。CPU1は、RAMI/F2を介してSRAM3およびリコンフィグ回路4にアクセスする。また、CPU1は、RAMI/F2および周辺I/F5を介して外部RAM6および周辺機器7A〜7Nにアクセスする。RAMI/F2の方が周辺I/F5より拘束のアクセスが可能であるので、CPU1からSRAM3およびリコンフィグ回路4に対するアクセス速度の方が、CPU1から外部RAM6および周辺機器7A〜7Nに対するアクセス速度より高速である。

0018

CPU1、SRAM3、リコンフィグ回路4、RAMI/F2および周辺I/F5のすべてまたは一部は、1チップ半導体集積回路として実現できる。しかし、CPU1、SRAM3、リコンフィグ回路4および周辺I/F5を個別の集積回路チップとし、プリントボード上に形成されたRAMI/F2の配線に接続するように搭載する形で実現することも可能である。

0019

図1に示すように、リコンフィグ回路4は、演算エレメント11と、制御ブロック12と、リコンフィグシーケンサ13と、リコンフィグ内蔵SRAM14と、備える。さらに、演算エレメント11は、演算ユニット&ネットワーク21と、コンフィグデータメモリ22と、を備える。CPU1は、RAMI/F2を介してリコンフィグ内蔵SRAM14にアクセスする。

0020

図2は、リコンフィグ回路4のより詳細な構成を示す図である。

0021

図2に示すように、演算ユニット&ネットワーク21は、入力ポート31と、出力ポート32と、複数のプロセッサエレメント(PE)33と、入力ポート31、出力ポート32および複数のPE33の入力部および出力レジスタの間の接続を変更するネットワーク34と、を備える。コンフィグデータメモリ22は、実行する各演算に対応して、ネットワーク34の接続および使用するPE33内の接続などのデータを記憶している。コンフィグデータメモリ22は、指示された演算に対応するデータを演算ユニット&ネットワーク21に出力し、入力ポート31から入力される変数データに指示された演算を施して結果を出力ポート32に出力する。

0022

リコンフィグ内蔵SRAM14は、CPUから演算用変数データおよび演算命令を書き込まれると、リコンフィグ起動指示フラグを立てる。リコンフィグ起動指示フラグが立てられると、そのことが制御ブロック12に通知される。演算命令は、制御ブロック12またはコンフィグデータメモリ22に通知され、演算用変数データは入力ポート31に転送される。出力ポート32から出力される演算結果は、リコンフィグ内蔵SRAM14に書き込まれる。制御ブロック12は、演算が終了すると、リコンフィグ内蔵SRAM14に演算終了フラグを書き込む。リコンフィグシーケンサ13は、制御ブロック12からの指示に応じて演算エレメント11をシーケンス制御し、演算シーケンスが終了すると、制御ブロック12に終了を通知する。

0023

図3は、複数のPE33を組み合わせて所定の演算処理を実行する演算ユニット&ネットワーク21の例を説明する図である。図3の例は、乗算加算(Multiplier Accumulate)プロセッサエレメントMAC-PEと、遅延プロセッサエレメントDEL-PEと、加算プロセッサエレメントALU-PEと、を図示のように接続して、a×b+cを演算する。図3で、Shift/Maskは、入力データのビットシフトするシフト回路とその一部のビットをマスクするマスク回路からなる入力部である。Regは、クロックCLKに同期して保持動作を行うレジスタである。MULは乗算器である。ACC加算器である。ALUは加算、減算、論理演算を行うように切り替え可能な演算器である。

0024

演算ユニット&ネットワーク21は、入力部と出力レジスタと1個の演算器のみからなる基本演算用PEのみを備え、これらのPEをネットワーク34で接続して所望の演算を行えるようにすることが可能である。また、PE内に複数の演算器およびレジスタなどを設け、使用頻度の高い演算を、1個のPEで行うようにすることも可能である。

0025

また、図4に示すように、1個のPE内に複数のPEおよび接続変更可能なネットワークを設けて、1個のPEで複雑な演算を行えるようにする場合もある。

0026

上記のようなPEを多数備え、繰り返し演算も可能な演算ユニット&ネットワーク21は、非常に複雑な演算も実行可能であるが、その分演算時間も長くなる。

0027

リコンフィグ回路4については、広く知られているので、これ以上の説明は省略する。

0028

第1実施形態におけるリコンフィグ回路4は、除算器平方根演算器三角関数演算器、浮動小数点演算器などの頻繁に使用される演算を実行するPEを備えている。言い換えれば、リコンフィグ回路4は、除算用PE、平方根演算用PE、三角関数演算用PE、浮動小数点演算用PEなどを備える。ここでは、このような演算を特定演算と称し、このような演算を行うPE33を特定演算エレメントと称する。さらに、リコンフィグ回路4で特定演算を実行するように指示する命令を第2の種類の命令と称する。特定演算は、あらかじめ決定されている。

0029

これに対して、リコンフィグ回路4内で複数のPE33をネットワークで接続して行う演算をアクセラレータ演算と称し、リコンフィグ回路4でアクセラレータ演算を実行するように指示する命令を第1の種類の命令と称する。

0030

図5は、リコンフィグ内蔵RAM14のアドレス領域の割り当てを説明する図である。図5に示すように、リコンフィグ内蔵RAM14のアドレス領域は、アクセラレータ演算領域と、特定演算A領域と、特定演算領域Bと、フラグ領域と、を備える。特定演算領域は、登録されている特定演算の個数分存在する。

0031

アクセラレータ演算領域は、アクセラレータ演算命令(第1の種類の命令)、すなわちコマンドコードを書き込むアドレス領域と、アクセラレータ演算の変数データを書き込むアドレス領域と、アクセラレータ演算の演算結果を書き込むアドレス領域と、を備える。変数データおよび演算結果の個数(データ量)は、アクセラレータ演算命令により異なる。そのため、アクセラレータ演算の変数データを書き込むアドレス領域およびアクセラレータ演算の演算結果を書き込むアドレス領域は、最大データ量が書き込める領域を有する。

0032

特定演算A領域は、特定演算Aの変数データを書き込むアドレス領域と、特定演算Aの演算結果を書き込むアドレス領域と、を備える。同様に、特定演算B領域は、特定演算Bの変数データを書き込むアドレス領域と、特定演算Bの演算結果を書き込むアドレス領域と、を備える。他の特定演算領域も、同様のアドレス領域を備える。特定演算の種類により、変数データおよび演算結果の個数(データ量)は決まっているので、各特定演算領域の幅は固定である。

0033

上記のように、アクセラレータ演算領域にアクセラレータ演算命令が書き込まれると、リコンフィグ起動指示フラグが立ち、これに応じて制御ブロック12がアクセラレータ演算命令を解読し、コンフィグデータメモリ22内に記憶された対応するコンフィグデータがサーチされる。リコンフィグシーケンサ13は、サーチされた対応するコンフィグデータに基づいて、演算ユニット&ネットワーク21のネットワーク34および使用するPE33を、指示された演算を実行する状態に設定する。

0034

アクセラレータ演算領域に書き込まれた変数データは、リコンフィグシーケンサ13の指示により、入力ポート31に入力され、ネットワーク34を介して、変数データが入力されるPE33に供給される。

0035

アクセラレータ演算が終了すると、アクセラレータ演算の演算結果が出力ポート32に出力され、リコンフィグシーケンサ13の指示により、リコンフィグ内蔵RAM14のアクセラレータ演算の演算結果を書き込むアドレス領域に書き込まれる。

0036

以上のように、アクセラレータ演算は、制御ブロック12およびリコンフィグシーケンサ13により、演算ユニット&ネットワーク21のネットワーク34および使用するPE33の設定が制御される。

0037

特定演算は、特定演算の変数データが所定のアドレス領域に書き込まれると、制御ブロック12によりその特定演算を実行するPEが使用可能であるか判定され、使用可能であれば、変数データが対応するPEに入力され、対応するPEが特権モードで起動する。この場合の変数データの転送は、ネットワーク34を使用して行うことができる。しかし、特定演算を実行するPE33の入力部を、リコンフィグ内蔵SRAM14の特定演算の変数データが書き込まれるアドレス領域と直接接続し、変数データが直接対応するPE33に入力できるようにしてもよい。これは、演算結果についても同様で、対応するPE33の出力を、直接リコンフィグ内臓SRAM14の特定演算の演算結果のアドレス領域に出力するようにしてもよい。

0038

いずれにしろ、特定演算は、実行するPEがあらかじめ決められており、リコンフィグ内臓SRAM14から対応するPEへの変数データの転送および演算結果のリコンフィグ内臓SRAM14のための経路を設定するだけなので、短時間に起動して実行可能である。

0039

図6は、第1実施形態において、CPU1が、リコンフィグ回路4に演算を指示し、演算結果を取得するまでの基本的な動作シーケンスを示す。

0040

まず、CPU1が、リコンフィグ内蔵SRAM14の所定のアドレスに演算の変数データを書き込む。上記のように、特定演算であれば、決められたアドレスに変数データを書き込むだけで演算の指示が終了するが、アクセラレータ演算の場合には、さらにアクセラレータ演算命令を書き込むことにより演算指示が終了する。

0041

次に、リコンフィグ回路4の制御ブロック12は、指示された演算を開始する起動条件成立したかが判定され、成立するまで待機し、成立すれば演算ユニット&ネットワーク21を指示された演算を実行するように変更するように指示(Launch)する。これに応じてリコンフィグシーケンサ13が、入力された変数データを演算ユニット&ネットワーク21を取り込むように制御する。この後、演算ユニット&ネットワーク21は、リコンフィグシーケンサ13の制御で演算を実行する。

0042

演算が終了すると、リコンフィグシーケンサ13は、演算が正常に終了したかを判定し、正常に終了していれば、演算結果をリコンフィグ内蔵SRAM14の所定のアドレスに出力するように指示し、正常終了割り込みを発生する。これに応じて制御ブロック12は、リコンフィグ内蔵SRAM14に正常終了フラグを書き込む。リコンフィグシーケンサ13は、正常に終了していなければ、エラーによる終了割り込みを発生する。これに応じて制御ブロック12は、リコンフィグ内蔵SRAM14にエラー終了フラグを書き込む。これらのフラグは、例えば、終了フラグと正常終了またはエラー終了を示すフラグを組み合わせて実現される。

0043

正常終了の場合には、CPU1は、リコンフィグ内蔵SRAM14から演算結果を読み出し、演算データの取得が完了する。エラー終了の場合は、CPU1は、再度演算指示を行うなどの処理を実行する。

0044

図7は、第1実施形態において、CPU1が、リコンフィグ回路4にアクセラレータ演算を指示し、演算結果を取得するまでの動作を示すフローチャートである。

0045

テップ101では、CPU1が、リコンフィグ内蔵SRAM14の所定のアドレス(アクセラレータ演算の変数データ領域)に演算の変数データを書き込む。

0046

ステップ102では、CPU1が、リコンフィグ内蔵SRAM14の所定のアドレス(アクセラレータ演算命令領域)にアクセラレータ演算命令を書き込む。これにより、リコンフィグ演算の起動が指示される。

0047

ステップ103では、CPU1が、リコンフィグ内蔵SRAM14にリコンフィグ起動指示フラグを立てる。

0048

ステップ104では、リコンフィグ内蔵SRAM14にリコンフィグ起動指示フラグを立てることにより、制御ブロック12に、アクセラレータ演算の起動指示が発行される。

0049

ステップ105では、制御ブロック12が、演算ユニット&ネットワーク21で特定演算を実行中であるかを判定し、実行中でなければ、ステップ108に進み、実行中であればステップ106に進む。

0050

ステップ106では、制御ブロック12が、指示されたアクセラレータ演算で、実行中の特定演算で使用しているPEを使用するかを判定し、使用していなければステップ108に進み、使用していればステップ107に進む。

0051

ステップ107では、制御ブロック12が、特定演算の終了を判定し、特定演算が終了するまで待機し、終了すればステップ108に進む。なお、待機中に他の特定演算の実行が指示された場合には、新たに指示された特定演算の実行を優先し、実行中の特定演算の終了後、新たに指示された特定演算を実行し、その後ステップ107に進む。

0052

ステップ108では、制御ブロック12が、リコンフィグシーケンサ13に対してリコンフィグ起動指示を行う。

0053

ステップ109では、リコンフィグシーケンサ13が、指示されたアクセラレータ演算に対応する構成データをコンフィグデータメモリ22から読み出し、演算ユニット&ネットワーク21のPEおよびネットワークを構成データにしたがって変更する。これにより、演算ユニット&ネットワーク21では、指示されたアクセラレータ演算が実行可能なデータフロー構築される。

0054

ステップ110では、リコンフィグシーケンサ13が、リコンフィグ内蔵SRAM14の所定のアドレス(アクセラレータ演算の変数データ領域)の変数データを入力ポート31に転送し、リコンフィグ回路4でのアクセラレータ演算の実行を制御する。

0055

ステップ111では、演算が終了すると、リコンフィグシーケンサ13が、出力ポート32に出力された演算結果を、リコンフィグ内蔵SRAM14の所定のアドレス(アクセラレータ演算の演算結果領域)に書き込むように制御する。

0056

ステップ112では、リコンフィグシーケンサ13が、制御ブロック12に演算の終了を通知する。

0057

ステップ113では、制御ブロック12が、リコンフィグ内蔵SRAM14に終了フラグを立てる。

0058

ステップ114では、CPU1が、リコンフィグ内蔵SRAM14の終了フラグにより演算の終了を検知して、終了する。

0059

図8は、第1実施形態において、CPU1が、リコンフィグ回路4に特定演算を指示し、演算結果を取得するまでの動作を示すフローチャートである。

0060

ステップ201では、CPU1が、リコンフィグ内蔵SRAM14の所定のアドレス(特定演算の変数データ領域)に演算の変数データを書き込む。

0061

ステップ202では、CPU1が、リコンフィグ内蔵SRAM14にリコンフィグ起動指示フラグを立てる。

0062

ステップ203では、変数データの書き込みに応じて、制御ブロック12に、アクセラレータ演算の起動指示が発行される。

0063

ステップ204では、制御ブロック12が、演算ユニット&ネットワーク21でリコンフィグ演算を実行中であるか、すなわち他の特定演算またはアクセラレータ演算実行中であるか判定し、実行中でなければ、ステップ207に進み、実行中であればステップ205に進む。

0064

ステップ205では、制御ブロック12が、指示された特定演算で、実行中のリコンフィグ演算で使用しているPEを使用するかを判定し、使用していなければステップ207に進み、使用していればステップ206に進む。

0065

ステップ206では、制御ブロック12が、リコンフィグ演算の終了を判定し、リコンフィグ演算が終了するまで待機し、終了すればステップ207に進む。なお、実行中のリコンフィグ演算のほかに、別のアクセラレータ演算が先に指示されている場合でも、特定演算を優先する。

0066

ステップ207では、制御ブロック12が、演算ユニット&ネットワーク21に対して、指示された特定演算が実行可能なデータフローを構築するように指示する。もし、指示された特定演算が1個のPEで実行可能であれば、そのPEの内部状態を設定する。これにより、そのPEは、指示された特定演算を実行する状態になり、リコンフィグ内蔵SRAM14の所定のアドレス(特定演算の変数データ領域および演算結果領域)と関係付けられる。

0067

ステップ208では、リコンフィグ内蔵SRAM14の所定のアドレス(特定演算の変数データ領域)の変数データを、特定演算を実行するPEの入力部に転送して特定演算を実行する。

0068

ステップ209では、演算が終了すると、そのPEでの演算結果を、リコンフィグ内蔵SRAM14の所定のアドレス(アクセラレータ演算の演算結果領域)に書き込む。

0069

ステップ210では、制御ブロック12が、特定演算の終了に応じて、リコンフィグ内蔵SRAM14に終了フラグを立てる。

0070

ステップ211では、CPU1が、リコンフィグ内蔵SRAM14の終了フラグにより演算の終了を検知して、終了する。

0071

図9は、演算ユニット&ネットワーク21において、一部はアクセラレータ演算を、一部は特定演算を実行している状態を模式的に示す図である。

0072

斜線部35で示される11個のPE33およびネットワーク34の部分は、指示されたアクセラレータ演算を実行する部分で、入力ポート31Aから入力された変数データに対して指定されたアクセラレータ演算を行い、演算結果を出力ポート32Aに出力する。斜線部36で示される1個のPE33およびネットワーク34の部分は、指示された特定演算を実行する部分で、入力ポート31Bから入力された変数データに対して指定された特定演算を行い、演算結果を出力ポート32Bに出力する。斜線部35および36以外の部分のPE33およびネットワーク34は、この時には使用されていない。もし、この部分のPEが他の特定演算を実行可能であれば、さらにそれを実行することも可能である。

0073

図10は、リコンフィグ装置4で、特定演算を実行する場合の起動動作を示すタイミングチャートである。この場合の起動動作は、複数の変数データのうち最初の1個がリコンフィグ内蔵SRAM14に書き込まれると、ただちに演算処理の開始を指示する命令(Launch)を発生する第1の場合と、演算に使用するすべての変数データ(図10では3個)がすべて書き込まれた時に、Launchを発生する第2の場合と、がある。第1の場合には、Launchを発生した後、リコンフィグ内蔵SRAM14に他の変数データが書き込まれるとすぐにPEに転送し、すべての変数データがPEに入力されると実際の演算処理が行われる。

0074

図11は、リコンフィグ装置4で、特定演算を実行する場合の起動動作を示すタイミングチャートである。ここでは、出力データがa,b,cの3つであり、演算が行われて3つの出力データa,b,cが順次生成されると、リコンフィグ内蔵SRAM(レジスタ)14に順次書き込まれる。3番目の出力データcが生成されると、演算終了条件が成立し、3番目の出力データcがリコンフィグ内蔵SRAM(レジスタ)14に書き込まれると、CPU1に対して割り込みが発生して、特定演算の終了を通知する。

0075

図8に示すように、第1実施形態では、CPU1が特定演算命令を指示するために変数データをリコンフィグ内蔵SRAM14の所定のアドレス(特定演算の変数データ領域)に書き込むと、リコンフィグ内蔵SRAM14に特定演算起動指示フラグを立てた。そして、制御ブロック12により終了フラグが立てられると、CPU1はこれにより特定演算の終了を検知した。このシーケンスでは、CPU1は、特定演算命令を指示した後、終了フラグが立てられるまで他の処理を行うことができる。しかし、CPU1の処理性能はレイテンシに直結する場合があり、アプリケーションによっては、演算結果をCPU1すぐに使用したい場合がある。図12は、このような場合に適したシーケンスを示すフローチャートである。

0076

ステップ301では、制御ブロック12が、CPU1によりリコンフィグ内蔵SRAM14のどのアドレスに変数データが書き込まれたかを検出することにより、指示された特定演算を読み取る。

0077

ステップ302では、指示された特定演算があらかじめ決定されている緊急演算であるかを判定し、緊急演算であればステップ303に進み、緊急演算でなければステップ305に進む。例えば、特定演算をすべて緊急演算とすることも、特定演算の中でももっとも簡単な演算のみを緊急演算とすることもできる。

0078

ステップ303では、CPU1の変数データの書き込みに対するアクノレッジ(ACK.)を返送せず、演算の終了を待ち、演算が終了するとステップ304に進む。

0079

ステップ304では、アクノレッジを返送する。これに応じてCPU1は、リコンフィグ内蔵SRAM14の所定のアドレス(特定演算の演算結果領域)にアクセスして、演算結果を得る。このように、演算終了までCPU1からのアクセスに対するアクノレッジを返送しないので、CPU1からみた演算性能(レイテンシ)は最短になる。

0080

緊急演算でない場合には、ステップ305で、CPU1の変数データの書き込みに対するアクノレッジ(ACK.)を返送し、ステップ306に進む。

0081

ステップ306では、演算の終了を待ち、演算が終了するとステップ307に進む。

0082

ステップ307では、制御ブロック12が終了フラグを立てる。CPU1は、これにより演算の終了を検知し、適当なタイミングでリコンフィグ内蔵SRAM14の所定のアドレス(特定演算の演算結果領域)にアクセスして、演算結果を得る。

0083

以上説明した第1実施形態では、CPU1から容易にアクセス可能な形でリコンフィグ回路を搭載しているため、CPUの負担を少なくして、簡単な演算から複雑な演算までの各種の演算を選択的に行うことができる。特に、あらかじめ決められた簡単な特定演算については、CPU1は、RAMインターフェースのアドレスに変数データを書き込むだけで、リコンフィグ回路4における演算が短時間に起動され、短時間に演算結果を得ることができる。さらに、図12で説明したように、CPUからのアクセスに対して演算終了までアクノレッジを返送しない場合、CPU1は最短時間で演算結果を取得できる。

0084

さらに、CPU1から指示されたアクセラレータ演算と特定演算が、演算ユニットPEの使用において競合しない限り、並列に演算を行うことが可能である。また、競合した場合には、短時間での処理の要求が高い特定演算を優先して実行するため、CPU1の演算処理の速度(レイテンシ)が実質的に向上する。

0085

第1実施形態のリコンフィグ回路を備えるコンピュータシステムの利点は、以下の通りである。

0086

・各種の演算をCPUの負荷を低減して実行できる。これにより、処理能力の小さい旧世代のプロセッサ(マイクロコンピュータ)を使用して、高速な演算処理が可能になる。

0087

・プロセッサ、特にマイクロコンピュータにおいて重要である割り込み応答性を良好に維持したまま、演算処理を高速に実行できる。

0088

・また、リコンフィグ回路で非常に複雑な演算処理も実行でき、その演算の種類を変更可能であり、各種の処理に柔軟に対応できる。

0089

・リコンフィグ内蔵SRAMは、RAMインターフェースのアドレス空間に配置されるので、コプロセッサに比べて接続が容易である。これにより、CPUの開発環境にあまり影響を与えずにリコンフィグ回路の開発環境を組み込む環境が容易に構築できる。

0090

・CPUは、リコンフィグ内蔵SRAMにアクセスするだけで演算処理を指示できる。また、CPUからリコンフィグ回路へのアクセス動作は共通化されているため、コンフィグ回路を変更するだけで、処理の負荷や演算速度を容易に変更することができる。例えばパイプライン処理を行うリコンフィグ回路を使用すれば、非常に高速な演算処理が行える。

0091

図13は、第2実施形態のコンピュータシステムの構成を示す図であり、CPU1、RAMインターフェース2およびリコンフィグ回路4の部分のみを示す。リコンフィグ回路4は、複数の演算エレメント11−1、…、11−nと、複数の制御ブロック12−1、…、12−nと、複数のコンフィグ内蔵SRAM14−1、…、14−nと、1個のリコンフィグシーケンサ13と、を備える。対応する演算エレメント、制御ブロックおよびコンフィグ内蔵SRAMは組をなす。言い換えれば、第2実施形態のリコンフィグ回路4は、第1実施形態のリコンフィグ回路を複数個備え、リコンフィグシーケンサ13を共通化したものである。

0092

第2実施形態では、CPU1は、共通のRAMインターフェース2および個別のコンフィグ内蔵SRAMを介して、各演算エレメントの演算を独立して指示することができる。これにより、CPU1は、複数の演算処理を複数の演算エレメントで同時に実行させることができ、処理をより高速化できる。

0093

図14は、第3実施形態のコンピュータシステムの構成を示す図であり、CPU1、RAMインターフェース2およびリコンフィグ回路4の部分のみを示す。リコンフィグ回路4は、複数の演算エレメント11−1、…、11−nと、制御ブロック12と、リコンフィグシーケンサ13と、コンフィグ内蔵SRAM14と、を備える。言い換えれば、第3実施形態のリコンフィグ回路4は、第1実施形態のリコンフィグ回路を複数個備え、制御ブロック12、リコンフィグシーケンサ13およびコンフィグ内蔵SRAM14を共通化したものである。

0094

第2実施形態でも、複数の演算処理が複数の演算エレメントで同時に実行できる。CPU1が、共通のRAMインターフェース2および共通のコンフィグ内蔵SRAM14を介して、順番に複数の演算処理の実行を指示し、共通の制御ブロック12が、指示された演算処理を各演算エレメントに割り振る。そして、共通のリコンフィグシーケンサ13が各演算エレメントの処理動作を制御する。制御ブロック12およびリコンフィグシーケンサ13による制御および変数データと演算結果の転送は順に行うため、処理速度は第2実施形態に比べて遅くなる。第3実施形態は、バスのコンフリクト(競合)が発生せず、各演算エレメントでパイプライン処理を行う場合や、比較的長い演算時間を要する演算を1つの演算エレメントで行う場合などに適している。

0095

第2および第3実施形態で、各演算エレメントをどのように構成し、各演算エレメントでどのような演算を行うかについては各種の例があり得る。例えば、すべての演算エレメントを同じように構成し、各演算エレメントの動作状態に応じて指示された演算を適宜各演算エレメントに割り当てて実行してもよいが、演算エレメントごとに機能および構成を異ならせることも可能である。

0096

図15は、演算エレメントごとに機能および構成を異ならせた例を示す。図15では、m個をアクセラレータ演算が可能なアクセラレータ演算エレメント11−1、…、11−mとし、1個を除算演算エレメント11−Aとし、1個を平方根演算エレメント11−Bとし、1個を三角関数演算エレメント11−Cとし、1個を浮動小数点演算エレメント11−Dとする。アクセラレータ演算を実行する場合には、アクセラレータ演算エレメント11−1、…、11−mのいずれかを選択して演算を実行する。除算を行う場合には、演算エレメント11−Aがその演算実行する。平方根演算を行う場合には、平方根演算エレメント11−Bが実行する。三角関数演算を行う場合には、三角関数演算エレメント11−Cがその演算を実行する。浮動小数点演算を行う場合には、浮動小数点演算エレメント11−Dがその演算を実行する。なお、三角関数演算には、sin,cos,tanなど各種の演算があるので、実行する三角関数演算に応じて、三角関数演算エレメント11−Cの構成を変更するようにしてもよい。もちろん、別の特定演算を登録し、それをアクセラレータ演算エレメント11−1、…、11−mに含まれるPEを利用して実行するようにしてもよい。

0097

図16は、演算エレメントごとに機能および構成を異ならせた別の例を示す。図16では、m個をアクセラレータ演算が可能なアクセラレータ演算エレメント11−1、…、11−mとし、1個を特定演算エレメント11−Pし、1個を浮動小数点演算エレメント11−Dとする。特定演算エレメント11−Pは、演算ユニット&ネットワークを変更することにより、除算、平方根三角関数の演算を実行可能である。

0098

どのような演算を特定演算とし、特定演算をどのような演算エレメントで行うかは、特定演算の使用頻度、要求される演算時間およびPEの構成の複雑さなどを考慮して決定すべきである。

0099

ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものであり、特に記載された例や条件は発明の範囲を制限することを意図するものではなく、明細書のそのような例の構成は発明の利点および欠点を示すものではない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。

0100

以下、実施形態に関し、更に以下の付記を開示する。
(付記1)
CPUと、RAMインターフェースと、前記RAMインターフェースのアドレス空間に配置されるRAMと、コンフィグレーションデータに基づいて演算機能を動的に変更可能なリコンフィグ演算装置と、を備えるコンピュータシステムであって、
前記リコンフィグ演算装置は、
入力端子と、
出力端子と、
クロックに同期してそれぞれの演算処理を行う複数のプロセッサエレメントと、
記入端子と前記出力端子と前記複数のプロセッサエレメントの入力ポートおよび出力ポートとの間を接続し、接続状態が変更可能なプロセッサ間ネットワークと、
前記RAMインターフェースのアドレス空間に配置され、前記CPUが、前記リコンフィグ演算装置で実行する演算に関係するデータを書き込み、前記リコンフィグ演算装置で実行した演算結果が書き込まれるリコンフィグ内蔵RAMと、
前記CPUが前記リコンフィグ内蔵RAMの所定アドレスに前記演算に関係するデータを書き込むと、前記複数のプロセッサエレメントおよび前記プロセッサ間ネットワークを対応した演算処理を行う状態に設定して前記演算を開始するように制御する制御部と、を備え、
前記演算は、第1の種類の命令と、第2の種類の命令と、を備え、
前記CPUは、前記第1の種類の命令を前記リコンフィグ内蔵RAMの第1の所定アドレスに、前記第1の種類の命令の変数データを前記リコンフィグ内蔵RAMの第2の所定アドレスに書き込み、
前記制御部は、前記第1の所定アドレスに書き込みが行われると、書き込まれた前記第1の種類の命令を解読して、前記複数のプロセッサエレメントおよび前記プロセッサ間ネットワークを前記演算命令に対応した演算処理を行う状態に設定し、
前記CPUは、前記第2の種類の命令の変数データを、前記リコンフィグ内蔵RAMの前記第1および第2の所定アドレス以外の固定入力アドレスに書き込み、
前記制御部は、前記固定入力アドレスに書き込みが行われると、前記複数のプロセッサエレメントおよび前記プロセッサ間ネットワークを前記第2の種類の命令に対応した演算処理を行う状態に設定することを特徴とするコンピュータシステム。

0101

(付記2)
前記第2の種類の命令は、複数の特定演算命令を備え、
前記リコンフィグ内蔵RAMの前記固定入力アドレスは、前記複数の特定演算命令に対応して複数の特定入力固定アドレスを備え、
前記CPUは、前記複数の特定演算命令を、対応する前記リコンフィグ内蔵RAMの前記複数の特定固定入力アドレスに書き込む付記1に記載のコンピュータシステム。

0102

(付記3)
前記制御部は、前記第2の種類の命令の変数データの前記固定入力アドレスへの書き込みが行われると、前記リコンフィグ演算装置が前記第1の種類の命令を実行中であるか判定し、実行中でなければ前記第2の種類の命令をただちに実行し、実行中であれば、前記リコンフィグ演算装置で前記第2の種類の命令が並行して実行可能であるか判定し、並行して実行可能であれば前記複数のプロセッサエレメントおよび前記プロセッサ間ネットワークを前記第2の種類の命令を並行して行う状態に設定し、並行して実行可能でなければ実行中の前記第1の種類の命令の終了後前記第2の種類の命令をただちに実行する付記1または2に記載のコンピュータシステム。

0103

(付記4)
前記リコンフィグ演算装置は、
前記第1の種類の命令の演算結果を、前記リコンフィグ内蔵RAMの第3の所定アドレスに書き込み、
前記第2の種類の命令の演算結果を、前記リコンフィグ内蔵RAMの固定出力アドレスに書き込む付記1から3のいずれかに記載のコンピュータシステム。

0104

(付記5)
前記リコンフィグ演算装置は、前記CPUによる前記第2の種類の命令の変数データの前記固定入力アドレスへの書き込みに対する受取を、前記第2の種類の命令の演算結果を前記リコンフィグ内蔵RAMの固定出力アドレスに書き込んだ後出力する付記4に記載のコンピュータシステム。

0105

(付記6)
前記複数のプロセッサエレメントは、前記特定演算命令の演算を単独で実行可能であるプロセッサエレメントを含む付記2に記載のコンピュータシステム。

0106

(付記7)
前記複数のプロセッサエレメントは、異なる前記特定演算命令の演算を単独で実行するように変更可能であるプロセッサエレメントを含む付記2に記載のコンピュータシステム。

0107

(付記8)
入力端子と、
出力端子と、
クロックに同期してそれぞれの演算処理を行う複数のプロセッサエレメントと、
前記入力端子と前記出力端子と前記複数のプロセッサエレメントの入力ポートおよび出力ポートとの間を接続し、接続状態が変更可能なプロセッサ間ネットワークと、
複数の演算をそれぞれ実行するように、前記複数のプロセッサエレメントおよび前記プロセッサ間ネットワークを変更するためのコンフィグレーションデータを記憶するメモリと、
実行する演算に関係するデータが書き込まれ、実行した演算結果が書き込まれるリコンフィグ内蔵RAMと、
前記リコンフィグ内蔵RAMの所定アドレスに前記演算に関係するデータが書き込まれると、前記コンフィグレーションデータに基づいて前記複数のプロセッサエレメントおよび前記プロセッサ間ネットワークを対応した演算処理を行う状態に設定して前記演算を開始するように制御する制御部と、を備え、
前記演算は、第1の種類の命令と、第2の種類の命令と、を備え、
前記第1の種類の命令は前記リコンフィグ内蔵RAMの第1の所定アドレスに、前記第1の種類の命令の変数データは前記リコンフィグ内蔵RAMの第2の所定アドレスに書き込まれ、
前記制御部は、前記第1の所定アドレスに書き込みが行われると、書き込まれた前記第1の種類の命令を解読して、前記複数のプロセッサエレメントおよび前記プロセッサ間ネットワークを前記演算命令に対応した演算処理を行う状態に設定し、
前記第2の種類の命令の変数データは、前記リコンフィグ内蔵RAMの前記第1および第2の所定アドレス以外の固定入力アドレスに書き込まれ、
前記制御部は、前記固定入力アドレスに書き込みが行われると、前記複数のプロセッサエレメントおよび前記プロセッサ間ネットワークを前記第2の種類の命令に対応した演算処理を行う状態に設定する、演算機能を動的に変更可能なリコンフィグ演算装置。

0108

(付記9)
前記第2の種類の命令は、複数の特定演算命令を備え、
前記リコンフィグ内蔵RAMの前記固定入力アドレスは、前記複数の特定演算命令に対応して複数の特定入力固定アドレスを備え、
前記複数の特定演算命令は、対応する前記リコンフィグ内蔵RAMの前記複数の特定固定入力アドレスに書き込まれる付記8に記載のリコンフィグ演算装置。

0109

(付記10)
前記制御部は、前記第2の種類の命令の変数データの前記固定入力アドレスへの書き込みが行われると、前記第1の種類の命令を実行中であるか判定し、実行中でなければ前記第2の種類の命令をただちに実行し、実行中であれば、前記第2の種類の命令が並行して実行可能であるか判定し、並行して実行可能であれば前記複数のプロセッサエレメントおよび前記プロセッサ間ネットワークを前記第2の種類の命令を並行して行う状態に設定し、並行して実行可能でなければ実行中の前記第1の種類の命令の終了後前記第2の種類の命令をただちに実行する付記8または9に記載のリコンフィグ演算装置。

0110

(付記11)
前記第1の種類の命令の演算結果は、前記リコンフィグ内蔵RAMの第3の所定アドレスに書き込まれ、
前記第2の種類の命令の演算結果は、前記リコンフィグ内蔵RAMの固定出力アドレスに書き込まれる付記8から10のいずれかに記載のリコンフィグ演算装置。

0111

(付記12)
前記第2の種類の命令の変数データの前記固定入力アドレスへの書き込みに対する受取を、前記第2の種類の命令の演算結果を前記リコンフィグ内蔵RAMの固定出力アドレスに書き込んだ後出力する付記11に記載のリコンフィグ演算装置。

0112

(付記13)
前記複数のプロセッサエレメントは、前記特定演算命令の演算を単独で実行可能であるプロセッサエレメントを含む付記9に記載のリコンフィグ演算装置。

0113

(付記14)
前記複数のプロセッサエレメントは、異なる前記特定演算命令の演算を単独で実行するように変更可能であるプロセッサエレメントを含む付記9に記載のリコンフィグ演算装置。

0114

1 CPU
2RAMインターフェース(I/F)
3 SRAM
4リコンフィグ回路(装置)
周辺インターフェース(I/F)
6 外部RAM
7A−7N周辺機器
11演算エレメント
12制御ブロック
13リコンフィグシーケンサ
14 リコンフィグ内蔵SRAM
21演算ユニット&ネットワーク21
22コンフィグデータメモリ
31入力ポート31
32出力ポート32
33プロセッサエレメント(PE)
34 ネットワーク34

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

該当するデータがありません

関連する公募課題

該当するデータがありません

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

該当するデータがありません

この 技術と関連する公募課題

該当するデータがありません

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ