JP6553694B2 - プロセッサエレメント、プログラマブルデバイス及びプロセッサエレメントの制御方法 - Google Patents

プロセッサエレメント、プログラマブルデバイス及びプロセッサエレメントの制御方法 Download PDF

Info

Publication number
JP6553694B2
JP6553694B2 JP2017183690A JP2017183690A JP6553694B2 JP 6553694 B2 JP6553694 B2 JP 6553694B2 JP 2017183690 A JP2017183690 A JP 2017183690A JP 2017183690 A JP2017183690 A JP 2017183690A JP 6553694 B2 JP6553694 B2 JP 6553694B2
Authority
JP
Japan
Prior art keywords
unit
function
register
processor element
output
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.)
Active
Application number
JP2017183690A
Other languages
English (en)
Other versions
JP2019061347A (ja
Inventor
弘樹 檜原
弘樹 檜原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Space Technologies Ltd
Original Assignee
NEC Space Technologies Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Space Technologies Ltd filed Critical NEC Space Technologies Ltd
Priority to JP2017183690A priority Critical patent/JP6553694B2/ja
Priority to US16/641,098 priority patent/US11249753B2/en
Priority to PCT/JP2018/034379 priority patent/WO2019059153A1/ja
Priority to EP18859449.3A priority patent/EP3690666A4/en
Publication of JP2019061347A publication Critical patent/JP2019061347A/ja
Application granted granted Critical
Publication of JP6553694B2 publication Critical patent/JP6553694B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Description

本発明は、プロセッサエレメント、プログラマブルデバイス及びプロセッサエレメントの制御方法に関する。
近年、FPGA(Field Programmable Gate Array)、およびDRP(Dynamically Reconfigurable Processor)などのプログラマブルデバイスが利用されている。
例えば特許文献1にプログラマブルデバイスが開示されている。特許文献1に開示されているプログラマブルデバイスは、実行するタスク毎に、それぞれ異なる特徴を持つ複数の回路を実現するためのコンフィグレーションコードを生成してメモリへ格納しておく。プログラマブルデバイスの動作時、異なる特徴を持つ複数の回路のなかからシステムの動作状態に応じてプログラマブルデバイスに実行させる適切な回路が選択され、該選択した回路に対応するコンフィグレーションコードがメモリからプログラマブルデバイスへロードされる。
プログラマブルデバイスは、コンフィグレーションコードのロードが完了した段階で、選択された回路による入力データへの処理を開始する。
特開2007−179358号公報
プログラマブルデバイスは、各論理ブロックが、図12に示すようにメッシュ状のデータパスによって規則的に配置配線される。このような配置は論理ブロックの自在な配置や配線を行う上での制約となる。またこのような論理ブロックの配置は、演算素子よりも、信号を伝達するための配線やスイッチ領域の面積が多く、集積度の向上の面でも制約となる。特許文献1にはこのような課題を解決する構成は開示されていない。
本発明の目的は、論理ブロックの配置や配線の制約が少なく、集積度の向上が可能なプロセッサエレメント及びプログラマブルデバイスを提供することにある。
本発明の1側面によるプロセッサエレメントは、プログラムに応じて生成されたインストラクションセットを実装した関数に基づく演算処理を行う演算器と、前記関数の引数を記憶するレジスタと、前記演算器をバイパスするか否かを切り替える第1のバイパススイッチと、前記レジスタをバイパスするか否かを切り替える第2のバイパススイッチと、前記レジスタと前記演算器の組である関数部の接続を切り替える接続設定部と、前記接続設定部への入力を切り替えるマルチプレクサと、前記接続設定部からの出力の出力先を切り替えるデマルチプレクサと、状態に応じて前記第1のバイパススイッチ、前記第2のバイパススイッチ、前記接続設定部、マルチプレクサ及びデマルチプレクサの切り替えを行う選択部と、を有する。
本発明の1側面によるプログラマブルデバイスは、上記プロセッサエレメントを複数、隣接させて配置したプログラマブルデバイスにおいて、隣接していないプロセッサエレメント同士は直接には接続せず、隣接するプロセッサエレメント同士を接続させる。
本発明の1側面によるプロセッサエレメントの制御方法は、プログラムに応じて生成されたインストラクションセットを実装した関数に基づく演算処理を行い、前記関数の引数の記憶処理を行い、状態に応じて前記演算処理をバイパスするか否か、前記記憶処理をバイパスするか否か、前記演算処理と前記記憶処理の組である関数処理の順序、前記慣習処理への入力及び前記関数処理の出力先の切り替えを行う。
本発明によれば、プロセッサエレメント及びプログラマブルデバイスにおいて論理ブロックの配置や配線の制約が少なく、集積度の向上が可能となる。
図1は、第1の実施形態のプロセッサエレメントの構成を示すブロック図である。 図2は、第1の実施形態のプロセッサエレメントの隣接プロセッサとの接続部分の構成の一例を示すブロック図である。 図3は、第1の実施形態のプロセッサエレメントの接続切り替え機能の概要を示す図である。 図4は、第1の実施形態のプロセッサエレメントを接続して構成されたプログラマブルデバイスの構成の例を示す図である。 図5は、図4のプログラマブルデバイスを接続して構成されたプログラマブルデバイスの構成の例を示す図である。 図6は、第1の実施形態の接続設定部の構成の一例を示すブロック図である。 図7は、第2の実施形態のプロセッサエレメントの構成を示す図である。 図8は、第3の実施形態のプロセッサエレメントの構成を示す図である。 図9は、第4の実施形態のプロセッサエレメントの構成を示す図である。 図10は、第5の実施形態のプロセッサエレメントの構成を示す図である。 図11は、各実施形態の各部を実現するコンピュータの構成の一例を示す図である。 図12は、プログラマブルデバイス内の配線配置の例を示す図である。 図13は、図12の詳細を示す図である。
以下、本発明の第1の実施形態について説明する。まず、本発明の背景について説明する。
有限オートマトンに基づくストアードプログラム方式のコンピュータアーキテクチャを有するMCU(Micro−Controller Unit)には、2つの解決すべき課題がある。1つは、外付けメモリ素子内に格納されたアプリケーションに内在する状態遷移コントローラを、有限状態制御部内(すなわちMCUの演算器内)の状態遷移コントローラでシミュレーションするオーバーヘッドの解消である。もう1つは、演算器の定義に対する高位合成技術および動作合成技術の活用である。
これらについて対策を講じると共に、更にプログラマブルデバイスであるMCU、FPGA、およびDRPの利点を取り込んだプロセッサエレメントを提案する必要がある。これは設計上の工夫として実装することも可能であるが、開発ツールに組み込むことができれば、センシングデバイスにプロセッサを埋め込むプロセッサエレメントを設計するための汎用的な設計手法として活用することができる。
このためにはプロセッサエレメントの基本的なアーキテクチャを定義し、その定義内容を高級プログラミング言語で指定できるようにする必要がある。
プロセッサエレメントのアーキテクチャを策定するに当たっては、C言語などの関数型言語で全体を設計できるプログラミング環境を維持することを目標とした。また、ソースコードのデバッグを行うに当たっては、デバッグツールはアプリケーションプログラムから抽出されたコンテキストに沿ってプログラムを実行することができる必要がある。すなわち、関数型言語で記述された一連の操作のコンテキストをトレースできる必要がある。
本実施形態のプロセッサエレメントのアーキテクチャは、意味論ないしラムダ計算に基づいて高級プログラミング言語のコンテキストを表現し、2つのタイプのコンテキストを表現できることとした。1つは、ファイルに格納された情報として言及されることの多い、置き換え可能な静的コンテキストであり、もう1つは、ヒープレジスタに格納された情報として表わされる動的コンテキストである。これらは関数記述として表現できるようにした。
アプリケーションプログラムの動的コンテキストは、以下のように関数で表現される。
f(A),f(B),... (1)
静的コンテキストには、引数はレジスタとして実装され、関数本体はアプリケーションプログラムに応じて生成されたインストラクションセットを有する演算器として実装される。またアプリケーションプログラムの要求に沿って、レジスタと演算器の組である関数部が静的コンテキストに定義される。またレジスタ及び演算器をバイパスするか否かを切り替えるバイパススイッチが定義される。静的コンテキストは、状態に応じて必要なレジスタと演算器とバイパススイッチがグルーピングされて定義される。
なおグループの接続は以下のように関数で記述できることとする。
f(g(・)),f(g(・),h(・)),... (2)
次に第1の実施形態の構成について説明する。図1は本実施形態に係るプロセッサエレメントの構成を示すブロック図である。
アプリケーションプログラムの要求に基づいてインストラクションセットが生成されてn個の演算器11a、11b、11n(nは1以上の整数)として実装される。すなわち演算器11a、11b、11nは、それぞれアプリケーションプログラムに応じて生成されたインストラクションセットを実装した関数に基づく演算処理を行う。
レジスタ12a、12b、12nは、対応する演算器11a、11b、11nに実装されるインストラクションセットの引数に対応してプロセッサエレメント1に備えられる。すなわちレジスタ12a、12b、12nは、それぞれ演算器11a、11b、11nの関数で使用される引数を記憶する。
以下、この演算器11a、11b、11nと、演算器に対応するレジスタ12a、12b、12nの組は関数部20a、20b、20nという。
なお以下の説明では特定の演算器を指定して説明する必要がない場合、演算器11と記載する。同様に、特定のレジスタを指定して説明する費用がない場合、レジスタ12と記載し、特定の関数部を指定して説明する費用がない場合、関数部20と記載する。
本実施形態のプロセッサエレメント1ではアプリケーションの静的コンテキストは、選択した関数部20を接続したものとして表現される。静的コンテキストは、状態に応じて必要なレジスタ12と演算器11とがグルーピングされて定義される。プロセッサエレメント1は、プロセッサエレメント1内の各状態にそれぞれの静的コンテキストを対応付けるため、それぞれの静的コンテキストに応じて関数部20a、20b、20nのうちから必要な関数部20を選択する選択部15を備える。選択部15は、選択した関数部の接続順序も指示する。選択部15は、例えば高位合成でアプリケーションに応じて生成された状態遷移コントローラ(Finite State Machine:FSM)で実現される。
またプロセッサエレメント1は、選択部15の指示に基づいて関数部20の接続を設定する接続設定部16を備えている。またプロセッサエレメント1は、選択部15の指示に基づいて演算器11a、11b、11nをバイパスするか否かをそれぞれ切り替えるバイパススイッチ13a、13b、13nと、選択部15の指示に基づいてレジスタ12a、12b、12nをバイパスするか否かをそれぞれ切り替え選択するバイパススイッチ14a、14b、14nを備える。なお以下の説明では、演算器11a、11b、11nをバイパスするか否かをそれぞれ切り替えるバイパススイッチのうち特定のものを指定して説明する必要がない場合、バイパススイッチ13a、13b、13nはバイパススイッチ13と記載される。同様に、レジスタ12a、12b、12nをバイパスするか否かを切り替えるバイパススイッチのうち特定のものを指定して説明する必要がない場合、バイパススイッチ14a、14b、14nは、バイパススイッチ14と記載される。
またプロセッサエレメント1は、接続設定部16への入力を切り替えるマルチプレクサ17と、接続設定部16からの出力の出力先を切り替えるデマルチプレクサ18を備えている。
選択部15は、プロセッサエレメント1内の状態に応じて、バイパススイッチ13、バイパススイッチ14、接続設定部16、マルチプレクサ17及びデマルチプレクサ18に、切り替えを指示する選択信号を出力する。これにより、各状態に対応した関数部の選択及びその処理順序の選択を行い、選択部15は、必要でない関数部をバイパスし、また関数部20の接続順序を切り替えて、各状態に対応した関数の選択を行う。また選択部15は、各状態に対応した関数部への入力及び出力先を切り替える。
なお選択信号は、静的コンテキストのための選択信号である静的コンテキスト選択信号と、動的コンテキストのための選択信号である動的コンテキスト選択信号を含む。
このようにして本実施形態では、状態遷移コントローラ(FSM)である選択部15が、プロセッサエレメント1内の各状態に、静的コンテキストを対応付け、状態が進むにつれて関数部20内部のバイパススイッチ13、バイパススイッチ14及び接続設定部16の設定を切り替える。
またプロセッサエレメント1は、4辺においてそれぞれ隣接する4つのプロセッサエレメント1に接続される。隣接する4つのプロセッサエレメント1から出力された信号は、マルチプレクサ17に入力される。マルチプレクサ17は、選択部15から出力される選択信号に応じて隣接する複数のプロセッサエレメント1からの入力の1つを選択し、選択したプロセッサエレメント1の出力を接続設定部16に入力する。
接続設定部16は、マルチプレクサ17からの信号を、選択部15からの選択信号に基づいて1番目の処理を行う関数部の演算器に出力する。演算器の出力は同じ関数部のレジスタに出力される。なお選択部15からの選択信号によりバイパススイッチが演算器をバイパスするよう指示されていれば演算器に入力された信号は演算器をバイパスしてレジスタに出力される。
レジスタ12の出力は接続設定部16に出力される。なお選択部15からの選択信号によりバイパススイッチがレジスタをバイパスするよう指示されていればレジスタに入力された信号はレジスタをバイパスして接続設定部16に出力される。
接続設定部16は、選択部15の指示に基づいて1番目の処理を行う関数部の出力を次の処理を行う関数部の演算器に出力する。もし最後の処理を行う関数部のレジスタ12からの出力であれば、接続設定部16は、選択部15の指示に基づいてレジスタ12からの信号をデマルチプレクサ18に出力する。
デマルチプレクサ18は、最後の処理を行う関数部からの出力である接続設定部からの出力を、選択部15から出力される選択信号に応じて隣接する複数のプロセッサエレメント1の1つを選択して出力する。
この動きはDRPにおけるコンテキスト切替えと似ている。これはすなわち、本実施形態のプロセッサエレメントではアプリケーションに応じて最適なDRPを都度生成していることに相当する。
上述の有限オートマトンに基づくストアードプログラム方式のコンピュータアーキテクチャを有するMCUでは、アプリケーションに固有のFSMはプロセッサエレメントの外に実装されているメモリ素子上に実装されている。この点で本実施形態は上記のMCUとは異なる。上記のMCUでは外付メモリ素子のアドレッシング機能によってメモリの読み書きをすることによってアプリケーションに応じたFSMをシミュレートするため、そのオーバーヘッドが余分に掛かる。本実施形態のプロセッサエレメント1は、アプリケーションに応じたFSMがプロセッサエレメント1のハードウェア上で直接動作するため、上記のMCUと比較して消費電力が改善される。
なお図1に示す第1の実施形態及び後述の他の実施形態の移動目標探知システムの各構成要素は、機能単位のブロックを示している。各実施形態の移動目標探知システムの各構成要素の一部又は全部は、例えば図11に示すようなコンピュータ60とプログラムとの任意の組み合わせにより実現されてもよい。コンピュータ60は、一例として、以下のような構成を含む。
・CPU(Central Processing Unit)61
・ROM(Read Only Memory)62
・RAM(Random Access Memory)63
・RAM63にロードされるプログラム64
・プログラム64を格納する記憶装置65
・記録媒体66の読み書きを行うドライブ装置67
・通信ネットワーク69と接続する通信インタフェース68
・データの入出力を行う入出力インタフェース70
・各構成要素を接続するバス71
各実施形態の各構成要素は、これらの機能を実現するプログラム64をCPU61が取得して実行することで実現される。例えば、図1のプロセッサエレメント1の例では、演算器11は、プログラム64を取得したCPU61が、プログラム64に基づき関数に基づく演算処理を行うことで機能が実現されてもよい。レジスタ12は、プログラム64を取得したCPU61が、記憶装置65に上記関数の引数を記憶する記憶処理を行うことで機能が実現されてもよい。バイパススイッチ13、14はプログラム64を取得したCPU61が、プログラム64に基づき上記演算処理や上記記憶処理をバイパスすることで機能が実現されてもよい。接続設定部16は、プログラム64を取得したCPU61が、プログラム64に基づき関数を実現する演算処理や記憶処理の順序を切り替えることで機能が実現されてもよい。選択部15は、プログラム64を取得したCPU61が、プログラム64に基づき上記演算処理をバイパスするか否かの切り替え、上記記憶処理をバイパスするか否かの切り替え及び演算処理や記憶処理の順序の切り替えを行うことで機能が実現されてもよい。マルチプレクサ17は、プログラム64を取得したCPU61が、プログラム64に基づき隣接するプロセッサエレメントのいずれかの出力を選択して入力することで機能が実現されてもよい。デマルチプレクサ18は、プログラム64を取得したCPU61が、プログラム64に基づき隣接するプロセッサエレメントのいずれかを出力先として選択することで機能が実現されてもよい。
各実施形態の各構成要素の機能を実現するプログラム64は、例えば、予め記憶装置65やROM62やRAM63に格納されており、必要に応じてCPU61が読み出すように構成されてもよい。
なお、プログラム64は、通信ネットワーク69を介してCPU61に供給されてもよいし、予め記録媒体66に格納されており、ドライブ装置67が当該プログラムを読み出してCPU61に供給してもよい。
次に本実施形態のプログラマブルデバイス上でのプロセッサエレメントの配置及びプロセッサエレメント間の配線について説明する。上述した一般的なMCUやFPGAやDRPには、図11に示すように各論理ブロックがメッシュ状のデータパスによって規則的に上記のMCUやFPGA上に配置され配線されているという制約がある。このような配置及び配線は高位合成ツールが自在な配置配線を行う上での制約となる。
図12は、図11の詳細を示す図である。図12に示すように上記のMCUやFPGAは、論理ブロック、配線接続スイッチ、入出力スイッチ、およびワイヤトラックから構成される。論理ブロックは可変論理であるLUT(Look−Up Table)と順序回路であるフリップフロップから構成され、配線接続スイッチは縦横の配線接続の切り替え、入出力スイッチは論理ブロックと配線の接続、およびワイヤトラックは配線接続スイッチ間の配線に用いられる。
これに対して、本実施形態では、プロセッサエレメント間に図12で示すようなデータパスを固定的に配置せず、プロセッサエレメント間の接続は隣接プロセッサエレメント間とする。本実施形態のプログラマブルデバイス上では、関数として表現された論理ブロックは自在に接続可能である。また本実施形態のプロセッサエレメント1は、バイパスのみの関数も定義可能とすることにより、高位合成ツールに対する制約を回避している。また本実施形態のプロセッサエレメント1は、予め汎用の演算器を用意せず、高位合成ツールにより実装時に確定することにより、演算器のビット幅も任意としている本実施形態のプロセッサエレメント1では、この構成により実装効率を高めることが可能となる。
図2は、本実施形態のプロセッサエレメントの隣接プロセッサとの接続部分の構成の一例を示すブロック図である。プロセッサエレメント1は、図2に示すようにプロセッサエレメント1は、隣接する4つのプロセッサエレメント1と接続するための4つの端子19を備え、4つの端子19はそれぞれマルチプレクサ17の入力端子のいずれかに接続され、またデマルチプレクサ18の出力端子のいずれかに接続されている。隣接する4つのプロセッサエレメント1から出力された信号は4つの端子19を経由してマルチプレクサ17に入力される。またデマルチプレクサ18から出力された信号は4つの端子19のいずれかを経由して対応するプロセッサエレメント1に出力される。
図3は、本実施形態のプロセッサエレメントの接続切り替え機能の概要を示す図である。本実施形態のプロセッサエレメント1は、デマルチプレクサ18の出力を切り替えることにより、図3に示すようにプロセッサエレメント1の出力を、入力として選択した隣接するプロセッサエレメント以外のプロセッサエレメントのうちのどれにするかを選択することができる。なお図3に示していないが、本実施形態のプロセッサエレメント1は、図1のマルチプレクサ17を切り替えることで、プロセッサエレメント1の入力を、隣接するプロセッサエレメントの出力のうちどれにするか選択することができる。さらに本実施系他のプロセッサエレメント1は、プロセッサエレメント1内のバイパススイッチ13a、13b、13n及び14a、14b、14nを切り替えることで、演算器11a、11b、11n及びレジスタ12a、12b、12nをバイパスするか選択することができる。
これらにより、通常のFPGA等に用いられている配置配線スイッチ(Switch Block)、入出力スイッチ(Connection Block)、およびワイヤトラックが不要となり、プログラマブルデバイスのチップ全面を演算リソースで埋め尽くすことも可能となる。
図4は、プロセッサエレメントを接続して構成されたプログラマブルデバイスの構成の例を示す図である。プログラマブルデバイス100には、図4に示すようにプロセッサエレメントが複数、隣接させて配置される。またプログラマブルデバイス100上では、隣接していないプロセッサエレメント同士は直接には接続せず、隣接するプロセッサエレメント同士を接続させる。このような配置としても上述のように本実施形態のプロセッサエレメント1は、デマルチプレクサ18の出力を切り替えることにより、図3に示すようにプロセッサエレメント1の出力を、入力として選択した隣接するプロセッサエレメント以外のプロセッサエレメントのうちのどれにするかを選択することができる。さらにプロセッサエレメント1内のバイパススイッチ13a、13b、13n及び14a、14b、14nを切り替えることで、プロセッサエレメント1は、演算器11a、11b、11n及びレジスタ12a、12b、12nをバイパスするか選択することができる。このような構成により、プロセッサエレメント1の関数部20と選択部15と接続設定部16から構成される複数の論理ブロックを離れたプロセッサエレメント上の論理ブロックと自在に接続してプログラマブルデバイス100を構成することが可能である。また図5は、図4のプログラマブルデバイス100を接続して構成されたプログラマブルデバイス110の構成の例を示す図である。図5に示すように、図4のプログラマブルデバイス100間の接続は隣接するプログラマブルデバイス間のみとしてもよい。
図6は、本実施形態の接続設定部の構成の一例を示すブロック図である。図6に示すように、接続設定部16は、演算器11a、11b、11cに入力する信号を選択するマルチプレクサ161a、161b、161cと、レジスタ12a、12b、12cからの信号の出力先を選択するデマルチプレクサ162a、162b、162cを備えている。また接続設定部16は、接続設定部16に入力された信号を選択するデマルチプレクサ163と、接続設定部16から出力する信号の出力先を選択するマルチプレクサ164を備えている。これらには選択部15から出力される選択信号が入力される。
デマルチプレクサ163の出力には、演算器11a、11b、11cに接続されているマルチプレクサ161a、161b、161cが接続されている。デマルチプレクサ163は、選択部15からの選択信号に基づいてマルチプレクサ161a、161b、161cのいずれかを選択し、接続設定部16に入力された信号を出力する。
マルチプレクサ161a、161b、161cへの入力には、接続されている演算器の関数部以外の、他の関数部のレジスタに接続されるデマルチプレクサと、デマルチプレクサ163が接続されている。マルチプレクサ161a、161b、161cは、選択部15からの選択信号に基づいて、他の関数部のレジスタに接続されるデマルチプレクサ及びデマルチプレクサ163からの信号から、接続されている演算器に入力する信号を選択する。
デマルチプレクサ162a、162b、162cからの出力には、接続されているレジスタの関数部以外の、他の関数部の演算器に接続されたマルチプレクサと、マルチプレクサ164が接続されている。デマルチプレクサ162a、162b、162cは選択部15からの選択信号に基づいて、他の関数部の演算器に接続されたマルチプレクサ及びマルチプレクサ164のいずれかを選択し、接続されているレジスタからの信号を出力する。
またマルチプレクサ164の入力には、レジスタ12a、12b、12cに接続されているデマルチプレクサ162a、162b、162cが接続されている。マルチプレクサ164は、選択部15からの選択信号に基づいて、デマルチプレクサ162a、162b、162cのいずれかから入力された信号を選択して接続設定部16から出力する。
例えば、図6に示す静的コンテキスト10aを実現する場合、デマルチプレクサ163は、選択部15からの選択信号に基づいて接続設定部16に入力された信号の出力先としてマルチプレクサ161aを選択し、マルチプレクサ161aは、選択部15からの選択信号に基づいて、デマルチプレクサ163からの信号を選択する。そしてデマルチプレクサ162aは選択部15からの選択信号に基づいて、接続されているレジスタ12aからの信号の出力先としてマルチプレクサ164を選択し、マルチプレクサ164は、選択部15からの選択信号に基づいて、デマルチプレクサ162aからの信号を選択して接続設定部16から出力する。
また例えば、図6に示す静的コンテキスト10bを実現する場合、デマルチプレクサ163は、選択部15からの選択信号に基づいて接続設定部16に入力された信号の出力先としてマルチプレクサ161bを選択し、マルチプレクサ161bは、選択部15からの選択信号に基づいてデマルチプレクサ163からの信号を選択する。そしてデマルチプレクサ162bは、選択部15からの選択信号に基づいて、接続されているレジスタ12bからの信号の出力先としてマルチプレクサ161cを選択し、マルチプレクサ161cは、選択部15からの選択信号に基づいて、接続される演算器11cに入力する信号としてデマルチプレクサ162bからの信号を選択する。そしてデマルチプレクサ162cは選択部15からの選択信号に基づいて、接続されているレジスタ12cからの信号の出力先としてマルチプレクサ164を選択し、マルチプレクサ164は、選択部15からの選択信号に基づいて、デマルチプレクサ162cからの信号を選択して接続設定部16から出力する。
また例えば、図6に示す静的コンテキスト10cを実現する場合、デマルチプレクサ163は、選択部15からの選択信号に基づいて接続設定部16に入力された信号の出力先としてマルチプレクサ161aを選択する。マルチプレクサ161aは、選択部15からの選択信号に基づいて接続される演算器11aに入力する信号としてデマルチプレクサ163からの信号を選択する。そしてデマルチプレクサ162aは、選択部15からの選択信号に基づいて、接続されているレジスタ12aからの信号の出力先としてマルチプレクサ161bを選択する。マルチプレクサ161bは、選択部15からの選択信号に基づいて、接続される演算器11bに入力する信号としてデマルチプレクサ162aからの信号を選択する。そしてデマルチプレクサ162bは選択部15からの選択信号に基づいて、接続されているレジスタ12bからの信号の出力先としてマルチプレクサ164を選択する。マルチプレクサ164は、選択部15からの選択信号に基づいて、デマルチプレクサ162bからの信号を選択して接続設定部16から出力する。
このように本実施形態によれば、選択部15からの選択信号に基づいて、接続設定部16に入力された信号を少なくとも1つの関数部の演算器に出力して、必要な関数部を任意の順番で接続し、最後の関数部のレジスタからの出力を接続設定部16から出力することが可能となる。また演算器11a、11b、11cは静的コンテキスト間で共有することができる。
以上説明したように、本実施形態の構成によれば、プログラマブルデバイスにおいて論理ブロックの配置や配線の制約が少なく、集積度の向上が可能となる。
次に第2の実施形態について説明する。本実施形態は本発明をFPGAに適用した場合の実施形態である。図7は、第2の実施形態のプロセッサエレメントの構成を示すブロック図である。図7に示すように、本実施形態のプロセッサエレメント2は、ルックアップテーブル(LUT:Look−Up Table)21を備え、LUT21に第1の実施形態と同様な演算器11、レジスタ12、バイパススイッチ13,14、接続設定部16が実装されている。またプロセッサエレメント2は、第1の実施形態と同様に、隣接するプロセッサエレメント1に接続されるマルチプレクサ17及びデマルチプレクサ18を備えている。
本実施形態のプロセッサエレメント2は、LUT21をバイパスする線路22を有し、その線路22とLUT21の出力を選択するマルチプレクサ23を備える。さらに、プロセッサエレメント2は、クロック及びマルチプレクサ23の出力が入力されるフリップフロップ24と、フリップフロップ24をバイパスする線路25を有し、その線路25とフリップフロップ24の出力を選択するマルチプレクサ26を備えている。またLUT21には、マルチプレクサ17、23、26及びデマルチプレクサ18と、関数部20a、20b、20nの演算器及びレジスタのバイパススイッチ、接続設定部16の選択を行う選択部211が備えられている。
本実施形態の構成によれば、FPGAであるプロセッサエレメントにおいて第1の実施形態と同様の効果が得られる。
次に第3の実施形態について説明する。図8は第3の実施形態のプロセッサエレメントの構成を示す図である。図8に示すように、本実施形態のプロセッサエレメント3は、第2の実施形態に加え、高位合成により生成されるALU31及びレジスタ32をさらに備えている。ALU31は、マルチプレクサ17の出力が分岐されて入力され、ALU31の出力がマルチプレクサ33に接続される。マルチプレクサ33には、LUT34の出力と、LUT34をバイパスする線路22と、ALU31の出力が接続される。マルチプレクサ33は、LUT34の選択部341からの指示に基づいて、これらのいずれかを選択してフリップフロップ24及びマルチプレクサ26に出力する。
本実施形態の構成によれば、FPGAとALUを混載したプロセッサエレメントにおいて第1の実施形態と同様の効果が得られる。
次に第4の実施形態について説明する。図9は第4の実施形態のプロセッサエレメントの構成を示す図である。図9に示すように、本実施形態のプロセッサエレメント4は、第2の実施形態に加え、DRPのPEマトリックス41及びコンフィグレーションメモリ42をさらに備えている。PEマトリックス41は、マルチプレクサ17の出力が分岐されて入力され、PEマトリックス41の出力がマルチプレクサ43に接続される。マルチプレクサ43には、LUT44の出力と、LUT44をバイパスする線路22と、PEマトリックス41の出力が接続される。マルチプレクサ43は、LUT44の選択部441からの指示に基づいて、これらのいずれかを選択してフリップフロップ24及びマルチプレクサ26に出力する。
本実施形態の構成によれば、FPGAとDRPを混載したプロセッサエレメントにおいて第1の実施形態と同様の効果が得られる。
次に第5の実施形態について説明する。図10は第5の実施形態のプロセッサエレメントの構成を示す図である。図10に示すように、本実施形態のプロセッサエレメント5は、第2の実施形態に加え、GPGPUのストリーミングマイクロプロセッサ51及びエグゼキューションキュー52をさらに備えている。ストリーミングマイクロプロセッサ51は、マルチプレクサ17の出力が分岐されて入力され、ストリーミングマイクロプロセッサ51の出力がマルチプレクサ53に接続される。マルチプレクサ53には、LUT54の出力と、LUT54をバイパスする線路22と、ストリーミングマイクロプロセッサ51の出力が接続される。マルチプレクサ53は、LUT54の選択部541からの指示に基づいて、これらのいずれかを選択してフリップフロップ24及びマルチプレクサ26に出力する。
本実施形態の構成によれば、FPGAとGPGPUを混載したプロセッサエレメントにおいて第1の実施形態と同様の効果が得られる。
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
1、2、3、4、5 プロセッサエレメント
11、11a、11b、11c、11n 演算器
12、12a、12b、12c、12n レジスタ
13、13a、13b、13n バイパススイッチ
14、14a、14b、14n バイパススイッチ
15 選択部
16 接続設定部
161a、161b、161c、164 マルチプレクサ
162a、162b、162c、163 デマルチプレクサ
17 マルチプレクサ
18 デマルチプレクサ
19 端子
20、20a、20b、20n 関数部
21、34、44、54 LUT
211、341、441、541 選択部
22、25 線路
24 フリップフロップ
23、26、33、43、53 マルチプレクサ
31 ALU
32 レジスタ
41 PEマトリックス
42 コンフィグレーションメモリ
51 ストリーミングマイクロプロセッサ
52 エグゼキューションキュー
60 コンピュータ
61 CPU
62 ROM
63 RAM
64 プログラム
65 記憶装置
66 記録媒体
67 ドライブ装置
68 通信インタフェース
69 通信ネットワーク
70 入出力インタフェース
71 バス
100、110 プログラマブルデバイス

Claims (9)

  1. プログラムに応じて生成されたインストラクションセットを実装した関数に基づく演算処理を行う演算器と、
    前記関数の引数を記憶するレジスタと、
    前記演算器をバイパスするか否かを切り替える第1のバイパススイッチと、
    前記レジスタをバイパスするか否かを切り替える第2のバイパススイッチと、
    前記レジスタと前記演算器の組である関数部の接続を切り替える接続設定部と、
    前記接続設定部への入力を切り替えるマルチプレクサと、
    前記接続設定部からの出力の出力先を切り替えるデマルチプレクサと、
    状態に応じて前記第1のバイパススイッチ、前記第2のバイパススイッチ、前記接続設定部、マルチプレクサ及びデマルチプレクサの切り替えを行う選択部と、
    を有するプロセッサエレメント。
  2. 前記選択部は、高位合成によってアプリケーションに応じて生成される状態遷移コントローラである、請求項1に記載のプロセッサエレメント。
  3. 前記接続設定部は、
    前記選択部から出力される選択信号に基づいて前記演算器に入力する信号を選択するマルチプレクサと、
    前記選択部から出力される選択信号に基づいて前記レジスタからの信号の出力先を選択するデマルチプレクサと、
    前記選択部から出力される選択信号に基づいて前記接続設定部に入力された信号の出力先を選択するデマルチプレクサと、
    前記選択部から出力される選択信号に基づいて前記接続設定部から出力する信号を選択するマルチプレクサと、
    を有する、請求項1又は2に記載のプロセッサエレメント。
  4. 前記演算器と、前記レジスタと、前記第1のバイパススイッチと、前記第2のバイパススイッチと、前記接続設定部と、前記選択部とを、ルックアップテーブルに内蔵する請求項1から3のいずれか1項に記載のプロセッサエレメント。
  5. 前記ルックアップテーブルをバイパスする線路を有し、その線路と前記ルックアップテーブルの出力を選択するマルチプレクサを備える請求項4に記載のプロセッサエレメント。
  6. 高位合成により生成されるALU及びレジスタをさらに備え、前記マルチプレクサは、前記ルックアップテーブルの出力と、前記ルックアップテーブルをバイパスする線路と、前記ALUの出力が接続される、請求項5に記載のプロセッサエレメント。
  7. 請求項1から6のいずれか1項に記載のプロセッサエレメントを複数、隣接させて配置したプログラマブルデバイスにおいて、隣接していないプロセッサエレメント同士は直接には接続せず、隣接するプロセッサエレメント同士を接続させるプログラマブルデバイス。
  8. 関数を、プログラムに応じて生成されたインストラクションセットを有する演算器として実装し、
    前記関数の引数をレジスタとして実装し
    状態に応じて前記演算をバイパスするか否かの切り替え、前記レジスタをバイパスするか否かの切り替え、前記演算と前記レジスタの組である関数の順序の切り替え、前記関数への入力及び前記関数の出力先の切り替えを行う、
    プロセッサエレメントの制御方法。
  9. プロセッサエレメントのコンピュータに、
    関数を、プログラムに応じて生成されたインストラクションセットを有する演算器として実装する処理と、
    前記関数の引数をレジスタとして実装する処理と、
    状態に応じて前記演算をバイパスするか否かの切り替え、前記レジスタをバイパスするか否かの切り替え、前記演算と前記レジスタの組である関数の順序の切り替え、前記関数への入力及び前記関数の出力先の切り替えを行う処理と、
    を実行させるプログラム。
JP2017183690A 2017-09-25 2017-09-25 プロセッサエレメント、プログラマブルデバイス及びプロセッサエレメントの制御方法 Active JP6553694B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2017183690A JP6553694B2 (ja) 2017-09-25 2017-09-25 プロセッサエレメント、プログラマブルデバイス及びプロセッサエレメントの制御方法
US16/641,098 US11249753B2 (en) 2017-09-25 2018-09-18 Processor element, programmable device, and processor element control method
PCT/JP2018/034379 WO2019059153A1 (ja) 2017-09-25 2018-09-18 プロセッサエレメント、プログラマブルデバイス及びプロセッサエレメントの制御方法
EP18859449.3A EP3690666A4 (en) 2017-09-25 2018-09-18 PROCESSOR ELEMENT, PROGRAMMABLE DEVICE, AND PROCESSOR ELEMENT CONTROL PROCESS

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017183690A JP6553694B2 (ja) 2017-09-25 2017-09-25 プロセッサエレメント、プログラマブルデバイス及びプロセッサエレメントの制御方法

Publications (2)

Publication Number Publication Date
JP2019061347A JP2019061347A (ja) 2019-04-18
JP6553694B2 true JP6553694B2 (ja) 2019-07-31

Family

ID=65811181

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017183690A Active JP6553694B2 (ja) 2017-09-25 2017-09-25 プロセッサエレメント、プログラマブルデバイス及びプロセッサエレメントの制御方法

Country Status (4)

Country Link
US (1) US11249753B2 (ja)
EP (1) EP3690666A4 (ja)
JP (1) JP6553694B2 (ja)
WO (1) WO2019059153A1 (ja)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7051309B1 (en) * 1999-02-16 2006-05-23 Crosetto Dario B Implementation of fast data processing with mixed-signal and purely digital 3D-flow processing boars
JP4664311B2 (ja) * 2003-12-29 2011-04-06 ザイリンクス インコーポレイテッド カスケード接続するdspスライスを備えた集積回路
US7831804B2 (en) * 2004-06-22 2010-11-09 St Microelectronics S.R.L. Multidimensional processor architecture
JP4909588B2 (ja) 2005-12-28 2012-04-04 日本電気株式会社 情報処理装置及び再構成デバイスの利用方法
DE102006027181B4 (de) * 2006-06-12 2010-10-14 Universität Augsburg Prozessor mit internem Raster von Ausführungseinheiten
JP5785357B2 (ja) 2009-06-25 2015-09-30 スパンション エルエルシー リコンフィグ演算装置を備えるコンピュータシステムおよびリコンフィグ演算装置
JP5678782B2 (ja) 2011-04-07 2015-03-04 富士通セミコンダクター株式会社 リコンフィグ可能な集積回路装置
JP2014016894A (ja) * 2012-07-10 2014-01-30 Renesas Electronics Corp 並列演算装置、並列演算装置を備えたデータ処理システム、及び、データ処理プログラム
JP6792194B2 (ja) 2016-03-28 2020-11-25 株式会社リコー 波長推定装置、光源装置、画像表示装置、物体装置、波長推定方法及び光源制御方法
US10853073B2 (en) * 2018-06-30 2020-12-01 Intel Corporation Apparatuses, methods, and systems for conditional operations in a configurable spatial accelerator

Also Published As

Publication number Publication date
EP3690666A1 (en) 2020-08-05
US20200257526A1 (en) 2020-08-13
EP3690666A4 (en) 2021-07-07
US11249753B2 (en) 2022-02-15
WO2019059153A1 (ja) 2019-03-28
JP2019061347A (ja) 2019-04-18

Similar Documents

Publication Publication Date Title
US7953956B2 (en) Reconfigurable circuit with a limitation on connection and method of determining functions of logic circuits in the reconfigurable circuit
JP4484756B2 (ja) リコンフィギュラブル回路および処理装置
JPWO2006046711A1 (ja) 再構成可能な論理回路を有するデータ処理装置
JP4423953B2 (ja) 半導体集積回路
US10867090B2 (en) Method and apparatus for implementing an application aware system on a programmable logic device
JP2007272671A (ja) 動作合成装置、デバッグ装置、書き込み装置並びに回路設計支援システム及び方法
JP2005078309A (ja) データ処理システム
JP6553694B2 (ja) プロセッサエレメント、プログラマブルデバイス及びプロセッサエレメントの制御方法
JP2006302132A (ja) 信号処理装置及び再構成可能論理回路装置及び再構成可能順序回路
US8607029B2 (en) Dynamic reconfigurable circuit with a plurality of processing elements, data network, configuration memory, and immediate value network
US8041925B2 (en) Switch coupled function blocks with additional direct coupling and internal data passing from input to output to facilitate more switched inputs to second block
KR100960148B1 (ko) 데이터 프로세싱 회로
JP4468452B2 (ja) グローバルセルオートマトンを組み込むためのリコンフィギュアラブルなアーキテクチャをもつコンピュータ装置
JP4562679B2 (ja) データフローグラフ生成装置
JP5476007B2 (ja) プログラマブルコントローラおよびそれを用いたシステム
JP4787711B2 (ja) データ処理装置および方法、コンピュータプログラム、情報記憶媒体、並びにデータ処理システム
JP4330472B2 (ja) 処理装置
JP4208919B2 (ja) 活性化コードの生成方法
JP3989397B2 (ja) 集積回路装置およびその装置に対するデータ設定装置
JP4562678B2 (ja) データフローグラフ再構成装置、リコンフィギュラブル回路の設定データ生成装置、及び処理装置
JP2005267362A (ja) Simdプロセッサを用いた画像処理方法及び画像処理装置
JP4436734B2 (ja) 処理装置
JP2007179567A (ja) データ処理システム
JP2011134042A (ja) Simd型マイクロプロセッサおよびsimd型マイクロプロセッサのデータ整列方法
JP2010231645A (ja) 演算処理装置

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190110

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190611

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190704

R150 Certificate of patent or registration of utility model

Ref document number: 6553694

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150