JP6515771B2 - 並列処理装置及び並列処理方法 - Google Patents

並列処理装置及び並列処理方法 Download PDF

Info

Publication number
JP6515771B2
JP6515771B2 JP2015199148A JP2015199148A JP6515771B2 JP 6515771 B2 JP6515771 B2 JP 6515771B2 JP 2015199148 A JP2015199148 A JP 2015199148A JP 2015199148 A JP2015199148 A JP 2015199148A JP 6515771 B2 JP6515771 B2 JP 6515771B2
Authority
JP
Japan
Prior art keywords
fpga circuit
processor
processing
circuit
fpga
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
JP2015199148A
Other languages
English (en)
Other versions
JP2017072973A (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.)
Fujitsu Connected Technologies Ltd
Original Assignee
Fujitsu Connected 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 Fujitsu Connected Technologies Ltd filed Critical Fujitsu Connected Technologies Ltd
Priority to JP2015199148A priority Critical patent/JP6515771B2/ja
Priority to US15/250,902 priority patent/US10073810B2/en
Publication of JP2017072973A publication Critical patent/JP2017072973A/ja
Application granted granted Critical
Publication of JP6515771B2 publication Critical patent/JP6515771B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F15/7885Runtime interface, e.g. data exchange, runtime control
    • G06F15/7889Reconfigurable logic implemented as a co-processor

Description

本発明は、並列処理装置及び並列処理方法に関する。
近年の演算処理装置(CPU:Central Processing Unit)は、複数のCPU(またはCPUコア、プロセッサ)が、マルチメディアデータなどの大きなデータを並列処理することで、処理性能を向上させている。従来のCPUやメモリの動作周波数を増大させることは、消費電力が増大しチップの発熱量が増大するため、好ましくない。
そして、さらなる性能改善方式として、ハードウエア回路を再構成可能なリコンフィギュラブル回路(Reconfigurable Circuit)の一つであるFPGA回路(Field Programmable Gate Array Circuit)に、実行中のプロセスの一部の処理を実行させることが提案されている。FPGA回路は、回路定義データ(またはコンフィグレーションデータ)に基づいて処理に適した演算回路を構築する。また、FPGA回路は複数の演算回路を有するので、コンフィグレーションデータによって複数の演算回路を構築し、演算処理を並列に行うこともできる。そして、将来的には、演算処理装置が、複数のプロセッサ(またはCPU,CPUコア)に加えて、FPGA回路を内蔵し、プロセッサが実行中のプロセスの一部の処理をFPGA回路に処理させることが予測される。
以下の特許文献1には、リコンフィギュラブル回路を利用するものではないが、複数のプロセッサが周辺ハードウエアにタスクを依頼することが記載されている。
特開2006−260377号公報 特開2006−119802号公報 特開2007−148746号公報
しかしながら、マルチプロセッサは、複数のプロセッサが複数のプロセスをラウンドロビン方式で交互にそして並列して処理し、さらに割込発生時に実行中のプロセスの実行を停止し、より高い優先度の割込プロセスを実行する。そのため、プロセッサが実行中のプロセスの一部の処理をFPAG回路に依頼した後で且つ未だFPGA回路の処理が完了する前に、そのプロセスの実行が他のプロセッサに移動する場合が想定される。
この場合、他のプロセッサは、FPGA回路の処理が完了すると、元のプロセスを起動してその動作環境を再構築し、元のプロセスの実行を再開する。動作環境の再構築は、例えば、プロセッサの内部レジスタのコンテキストデータの再設定などである。そのため、元のプロセスを起動するためのオーバーヘッド時間が、FPGA回路での処理時間よりも大きくなる場合があり、演算処理回路の処理能力を低下させる。FPGA回路での処理時間が短いことに加えてFPGA回路に処理させる回数が増大すると、より大きな処理能力の低下を招く。
そこで、実施の形態の第1の側面の目的は、処理能力の低下を抑制した並列処理装置及び並列処理方法を提供することにある。
本実施の形態の第1の側面は、それぞれのプロセスをそれぞれ実行し、前記プロセスの一部をFPGA回路に処理させる複数のプロセッサを有し、
前記複数のプロセッサのうち第1のプロセッサは、実行中の第1のプロセスの一部の処理を前記FPGA回路に依頼して前記FPGA回路の処理完了待ち状態に推移し、第2のプロセスの実行に推移する場合、移動先プロセッサ情報を前記FPGA回路に送ると共に、前記移動先プロセッサに前記FPGA回路での前記一部の処理完了後の前記第1のプロセス継続処理のための環境設定情報を送り、
前記移動先プロセッサは、前記FPGA回路が前記一部の処理を実行中に、前記環境設定情報の設定を行い、前記FPGA回路からの処理完了通知に応答して前記第1のプロセスの処理を継続する、並列処理装置である。
第1の側面によれば、処理能力の低下を抑制することができる。
並列処理装置の一例を示す図である。 マルチプロセッサによるラウンドロビン方式での複数プロセスの並列処理を示す図である。 マルチプロセッサによる割込処理を説明する図である。 マルチプロセッサのあるプロセッサが、実行中のプロセスの一部の処理をFPGA回路に依頼した場合の動作例を示す図である。 第1の実施の形態における並列処理装置(または演算処理装置)の構成例を示す図である。 FPGA回路の詳細構成を示す図である。 プロセスの移動元のプロセッサの動作を示すフローチャート図である。 プロセスの移動先のプロセッサの動作を示すフローチャート図である。 FPGA回路の動作を示すフローチャート図である。 演算処理装置の第1の動作を示すシーケンス図である。 演算処理装置の第2の動作を示すシーケンス図である。 演算処理装置の第3の動作を示すシーケンス図である。 並列処理装置(演算処理装置)の適用例である携帯端末の構成を示す図である。 第2の実施の形態における並列処理装置(演算処理装置)の構成例を示す図である。
図1は、並列処理装置の一例を示す図である。並列処理装置1は、複数のCPU(またはCPUコア、プロセッサ、以下代表してプロセッサと称する。)を有する演算処理装置であり、システムLSIチップである。以下、並列処理装置を演算処理装置と称する。
この演算処理装置1は、4つのプロセッサ10_1〜10_4を有するプロセッサ群10と、内部メモリ12と、バスBUSと、周辺回路群16とを有する。周辺回路群16には、例えば、DRAMなどで構成される高速アクセス可能なメインメモリ20と、フラッシュメモリやハードディスクなどの大容量で不揮発性の補助メモリ22などが接続される。演算処理装置1は、リコンフィギュラブル回路の一つであるFPGA回路14を内部に有する。FPGA回路14は、チップの外側に設けられても良く、その場合も、周辺回路群16を介してプロセッサに接続される。
補助メモリ22内には、図示しないOS(Operating System)や複数のアプリケーションプログラム、その他データなどが格納されている。そして、OSやアプリケーションプログラムは、メインメモリ内に展開され、各プロセッサにより実行される。
演算処理装置1内の複数のプロセッサ10_1〜10_4は、複数のアプリケーションプログラムのプロセスを順番に、そして並列に実行する。複数のプロセッサそれぞれは、複数のプロセスのうち任意のプロセスを所定期間だけ実行し、所定期間経過後は異なるプロセスを実行する。これにより、複数のプロセッサは、複数のプロセスをラウンドロビン方式で順次実行する。この複数のプロセッサによるラウンドロビン方式による複数プロセスの処理は、各プロセッサがプロセスと共に実行するOSが制御する。
さらに、複数のプロセッサそれぞれは、あるプロセス実行中に割込が発生すると、OSの割込ハンドラの制御により、実行中のプロセスを一旦停止し、優先度が高い割込処理の実行を開始する。そして、割込ハンドラは、アイドル状態(または空き状態)の他のプロセッサを検索し、検出された他のプロセッサに元のプロセスを実行させる。
また、複数のプロセッサそれぞれは、実行中のプロセスの一部の処理をFPGA回路に依頼する。そのために、プロセッサは、FPGA回路にコンフィグレーションデータを設定し、一部の処理を実行できる演算回路をFPGA回路内に構築する。そして、プロセッサは、処理対象の入力データをFPGA回路に出力し、FPGA回路内に構築された演算回路が、入力データを演算し、演算結果を依頼元のプロセッサに返信する。
図2は、マルチプロセッサによるラウンドロビン方式での複数プロセスの並列処理を示す図である。ここでは、5つのプロセスPR_0〜PR_4が処理対象であり、それを4つのプロセッサCPU_1〜CPU_4が順番に交代して並列処理する。
まず、プロセッサCPU_1はプロセスPR_0を実行する。CPU_1は、まず、OSを実行して、プロセスPR_0を起動し、プロセッサ内の各種レジスタ、メモリ制御のためのレジスタなどに初期値データを設定する動作環境設定を行う。その後、CPU_1はプロセスPR_0の実行を開始する。プロセッサCPU_2〜CPU_4も同様に、プロセスPR_1、PR_2、PR_3を起動してそれらの動作環境を設定し、各プロセスを実行する。
各プロセッサCPU_1〜CPU_4は、所定期間T1、各プロセスを実行すると、そのプロセスの実行を中断し、プロセッサ内のレジスタのコンテキストデータなどの環境設定情報を内部メモリやメインメモリまたは補助メモリなどに退避し、実行待ち状態にある他のプロセスの起動、実行に遷移する。図2の例では、プロセッサCPU_1は、プロセスPR_0の実行を中断し、他のプロセスPR_4を起動して動作環境設定後、プロセスPR_4の実行を開始している。同様に、プロセッサCPU_2は、プロセスPR_1の実行を中断し、コンテキストデータをメモリに退避し、他のプロセスPR_0を起動、実行する。プロセッサCPU_3は、プロセスPR_2の実行を中断し、他のプロセスPR_1を起動、実行し、プロセッサCPU_4は、プロセスPR_3の実行を中断し、他のプロセスPR_2を起動、実行する。
このように、ラウンドロビン方式で複数のプロセスを並列処理するために、各プロセッサは、所定期間T1毎に、実行対象のプロセスが変更される。そのため、各プロセッサのOSが、各プロセスの実行時間を監視し、所定期間毎に、プロセスの実行を中断して環境設定情報を退避し、実行待ち状態のプロセスから選択した別のプロセスを起動、実行する。また、例えば、実行を中断されたプロセスは、他にアイドル状態のプロセッサがあればそこで起動、実行されるが、他にアイドル状態のプロセッサがない場合は、実行待ち状態のプロセスに加えられる。
図3は、マルチプロセッサによる割込処理を説明する図である。ここでは、プロセッサCPU_2がプロセスPR_0を実行中に割込が発生し、プロセスPR_0より高い優先度のプロセスPR_1が起動、実行する例である。図3において、プロセッサCPU_2がプロセスPR_0の動作環境設定後プロセスPR_0実行中に、プロセッサCPU_2に割込が発生している(S1)。これに応答して、プロセッサCPU_2のOSは、プロセスPR_0の実行を中断しそのコンテキストデータなどをメモリに退避する(S2)。
そして、プロセッサCPU_2のOSは、アイドル中の他のプロセッサを探索し、プロセッサCPU_3がアイドル中であることを検出し、プロセッサCPU_3にプロセッサ間メッセージの一つであるプロセス起動メッセージを、プロセッサCPU_3に送信する(S3)。プロセス起動メッセージには、メッセージ種別情報に加えて、起動対象プロセスPR_0の識別情報と、そのプロセスPR_0の実行中断時に退避したデータの格納先アドレスなどが含まれる。これに応答して、プロセッサCPU_3は、プロセスPR_0の起動処理で退避データを設定して動作環境を構築し、プロセスPR_0の実行を再開する。
アイドル中の他のプロセッサが検出できない場合、中断したプロセスPR_0は、実行待ち状態のプロセス群の待ち行列内に加えられ、やがていずれかのプロセッサにより起動、実行される。
一方、プロセッサCPU_2のOSは、割込処理であるプロセスPR_1を起動する(S4)。起動処理により、プロセッサCPU_2のOSは、プロセスPR_1のコンテキストデータなどをレジスタに設定して動作環境を設定し、プロセスPR_1の実行を開始する。
図4は、マルチプロセッサのあるプロセッサが、実行中のプロセスの一部の処理をFPGA回路に依頼した場合の動作例を示す図である。図4の例では、プロセッサCPU_2がプロセスPR_0を実行中に、プロセスPR_0の一部の処理をFPGA回路に依頼する(S10)。この一部の処理の実行依頼には演算回路構築のためのコンフィグレーションデータが添付される。その結果、FPGA回路は依頼された処理に対応した演算回路を構築してプロセスPR_0の一部の処理を実行する。一方、プロセッサCPU_2では、プロセスPR_0のFPGA処理完了待ち状態になる。
ところが、その後、プロセッサCPU_2に割込が発生し、プロセスPR_0が中断し、優先度が高い別のプロセスPR_1が起動し実行される(S11)。やがて、FPGA回路がプロセスPR_0から依頼された処理を完了し、依頼元のプロセッサCPU_2に処理完了通知を割り込み信号として送信する(S12)。
この時点で、プロセッサCPU_2のOSは、アイドル状態のプロセッサCPU_3を検出し(S13)、プロセッサCPU_3にプロセスPR_0を起動するメッセージを送信する(S14)。これに応答して、プロセッサCPU_3はプロセスPR_0を起動して実行するための動作環境を設定し、FPGA回路による処理に続くプロセスPR_0の処理の実行を再開する(S15)。また、例えば、プロセッサCPU_2は、プロセスPR_1の実行を再開する(S16)。
上記の動作例では、FPGA回路での処理を呼び出した元のプロセスPR_0は、FPGA回路での処理完了時に、元のプロセッサCPU_2ではなく、その時点でアイドル状態の別のプロセッサCPU_3で起動される。その場合、プロセッサCPU_3は、プロセスPR_0を起動してその実行を再開するための動作環境を設定する処理を行う。この動作環境設定処理するためのオーバーヘッド時間が、FPGA回路での処理時間より長くなると、演算処理装置の処理能力の低下を招く。特に、FPGA回路の起動回数が頻繁に発生すると、このオーバーヘッド時間による処理能力の低下は大きくなる。また、携帯端末が演算処理装置を搭載する場合は、動作周波数が低いためオーバーヘッド時間はより長くなる。
さらに、FPGA回路の処理完了後に、アイドル状態のプロセッサがない場合、FPGA回路を呼び出した元のプロセスPR_0は実行待ち状態になり、実行再開まで一定の時間待たされるため、オーバーヘッド時間は更に長くなり、処理能力の低下は更に大きくなる。一般に、FPGA回路は、汎用性を高めるために、簡単で汎用性の高い演算処理を行う回路を内蔵している。したがって、上記のオーバーヘッド時間に対してFPGA回路の処理時間が短くなる傾向があり、処理能力の低下は避けられない。
[第1の実施の形態]
図5は、第1の実施の形態における並列処理装置(または演算処理装置)の構成例を示す図である。図5の演算処理装置1は、図1と同様に、複数のプロセッサ10_1〜10_4を有するシステムLSIチップである。
この演算処理装置1は、4つのプロセッサ10_1〜10_4を有するプロセッサ群10と、内部メモリ12と、バスBUSと、周辺回路群16とを有する。周辺回路群16には、高速アクセス可能なメインメモリ20と、大容量で不揮発性の補助メモリ22などが接続される。演算処理装置1は、リコンフィギュラブル回路の一つであるFPGA回路14を内部に有する。但し、FPGA回路14は、チップの外側に設けられても良く、その場合は、周辺回路群16を介してプロセッサに接続される。
補助メモリ22内には、図示しないOS(Operating System)や複数のアプリケーションプログラム、その他データなどが格納されている。そして、OSやアプリケーションプログラムは、メインメモリ内に展開され、各プロセッサにより実行される。
OSによるマルチプロセッサへのプロセス割当制御の方法は、図1の例と同様であり、複数のプロセッサに複数のプロセスをラウンドロビン方式で順番に且つ並行して実行させる。また、OSは、プロセッサに割込が発生すると、実行中のプロセスを中断し、実行中のプロセスの優先度を引き下げて、割込したプロセスを起動、実行する。そして、OSは、中断されるプロセスについて、アイドル状態のプロセッサがあれば、そのプロセッサに起動、実行させ、アイドル状態のプロセッサがなければ、待機中のプロセスに加えて、次に実行されるまで待機させる。
また、本実施の形態のOSは、プロセッサが実行中のプロセスの一部の処理をFPGA回路に依頼すると、一定時間だけそのプロセスをFPGA回路の処理完了待機状態に制御する。短時間である処理完了待機状態中にFPGA回路の処理が完了すれば、OSはプロセスの実行を再開する。この場合、プロセスの起動処理(環境設定処理)が不要であるため、プロセッサは即座にプロセスの実行を再開する。
しかし、FPGA回路の処理が完了しないまま処理完了待機状態の一定時間が経過すると、アイドル状態の他のプロセッサを検索し、検出した他のプロセッサに待機状態のプロセスの起動を依頼する。これに応答して、検出された他のプロセッサは、FPGA回路が処理実行中にプロセスを起動し、プロセス実行のための動作環境の設定処理を行う。したがって、その後FPGA回路が処理完了したとき、その処理完了通知に応答して、他のプロセッサは、プロセスの起動処理済みであるため、即座にプロセスの実行を再開する。その結果、図4で説明したオーバーヘッド時間はなくなるかまたは短くなる。
図5に示したFPGA回路14は、コンフィグレーションデータに基づいて演算回路を構築する演算回路141と、FPGA回路14と各プロセッサ10_1〜10_4との間にそれぞれ設けられた4本の処理完了通知信号線15_1〜15_4と、処理完了通知信号を割込信号として出力する処理完了通知信号送信回路142とを有する。送信回路142は、演算回路141が出力する処理完了通知信号Itrを、処理完了通知信号線15_1〜15_4のいずれかを介してプロセッサに送信する。
さらに、FPGA回路14は、選択レジスタ143と、FPGA回路に処理を依頼した依頼元のプロセッサのIDが格納されるプロセッサIDレジスタ145と、FPGA回路を呼び出したプロセスのIDが格納されるプロセスIDレジスタ144とを有する。選択レジスタ143は、依頼元プロセッサに対応する選択ビットを格納し、処理完了通知信号送信回路142は、選択レジスタ143内の選択ビットに基づいて依頼元のプロセッサに対応する処理完了通知信号線15を選択し、処理完了通知信号Itrを出力する。
図6は、FPGA回路の詳細構成を示す図である。リコンフィギュラブル回路の一つであるFPGA回路14は、演算回路141と、プロセッサIDレジスタ145と、プロセスIDレジスタ144と、処理完了通知信号送信回路142とを有する。
処理完了通知信号送信回路142は、図示されるとおり、処理完了通知信号Itrが出力される信号線を、処理完了通知信号線15のいずれかに接続するスイッチ群SWを有し、選択レジスタ143内の選択ビットによりスイッチ群SWの各スイッチが制御される。
演算回路141は、バスBUSと接続されたバススイッチ30と、演算回路の再構築と処理実行及び処理完了を制御するシーケンス制御回路31とを有する。さらに、演算回路141は、CPUからバスBUSを経由して供給されるコンフィグレーションデータを格納するコンフィグレーションメモリ32を有する。また、演算回路141は、複数の演算器やカウンタ及びRAMや汎用メモリを有する演算部35、及び、演算部35内の演算器やカウンタなどを相互に接続するネットワーク回路34を有するリコンフィグ演算部33を有する。
プロセスを実行中のプロセッサは、プロセス内のFPGA回路に処理を依頼する命令コードを実行して、バスBUSを介して、コンフィグレーションデータと処理データとを有する処理実行依頼信号をFPGA回路に送信する。FPGA回路は、図6に示すとおり、バススイッチ30を介してコンフィグレーションデータをシーケンス制御回路31に入力し、シーケンス制御回路31はそのコンフィグレーションデータをコンフィグレーションメモリ32に記憶する。また、FPGA回路は、バススイッチ30を介して処理入力データをリコンフィグ演算部33に供給する。
シーケンス制御回路31のシーケンス制御により、リコンフィグ演算部33は、コンフィグレーションデータに基づいて依頼処理を実行する演算回路を構築し、処理データをリコンフィグされた演算回路に入力し処理する。
また、シーケンス制御回路31は、処理実行依頼信号に含まれる依頼元のプロセッサのIDとFPGAを呼び出した呼び出し元プロセスのIDとを、プロセッサIDレジスタ145と、プロセスIDレジスタ144とに格納する。また、シーケンス制御回路31は、処理実行依頼信号に含まれる割込通知先CPU情報に基づいて、選択レジスタ143に選択ビットを設定する。そして、シーケンス制御回路は、リコンフィグ演算部33による処理が完了した時に処理完了通知信号Itrを生成し、処理完了通知信号送信回路142は、選択レジスタ143内の選択ビットに対応して導通状態に制御された1つのスイッチSWを介して、選択された処理完了通知信号線15に処理完了通知信号Itrを出力する。
図7は、プロセスの移動元のプロセッサの動作を示すフローチャート図である。図7では、一例として移動元のプロセッサCPU_2の動作を示す。プロセッサCPU_2では、OSがプロセスPR_0を起動する(S20)。OSによるプロセスの起動処理には、プロセスを実行するための環境設定情報を設定する処理が含まれる。環境設定情報の設定には、プロセッサ内のレジスタの初期値やその他の設定値などのコンテキストデータの設定や、プロセスの命令コードをプリフェッチしてプロセッサCPU_2内の命令キャッシュメモリに格納することなどが含まれる。
次に、プロセスPR_0の起動処理後、プロセッサCPU_2はプロセスPR_0を実行する(S21)。プロセスPR_0の処理が完了するとプロセッサによる処理は終了する。一方、プロセスの実行中に、FPGA回路へ処理を依頼する命令コードがあると、プロセッサCPU_2は、FPGA回路にコンフィグレーションデータと共に処理実行依頼信号を送信する(S22)。処理実行依頼信号には、依頼する処理に対応する演算回路の定義データであるコンフィグレーションデータと、FPGA回路内のリコンフィグレートされた演算器に入力する処理データと、依頼元のプロセッサIDと、呼び出し元のプロセスIDが含まれる。処理実行依頼信号には、更に、前述の選択レジスタ143に選択ビットを設定するための割込通知先CPU情報が含まれてもよい。FPGA回路は、後述するとおり、コンフィグレーションデータに基づいて処理を実行する演算回路を構築する。
そして、プロセッサCPU_2のプロセスPR_0は、FPGA回路の処理完了待ち状態になる(S23)。但し、プロセスPR_0はプロセッサCPU_2を占有した状態を継続する。処理完了待ち状態は、予め決められた一定時間継続する。
この処理完了待ち状態の間に、FPGA回路による処理が完了すると(S24のYES)、プロセッサCPU_2は、FPGA回路から処理完了通知信号を受信し、処理完了待ち状態であったプロセスPR_0の実行を再開する(S25)。この場合、プロセッサCPU_2はプロセスPR_0の環境設定状態であるので、即座に、プロセスPR_0の実行を再開することができる。また、処理完了信号を受信したプロセッサは、FPGA回路内のレジスタのプロセッサIDとプロセスIDを取得し、プロセッサCPU_2自身がプロセッサIDと一致することを確認し、プロセスIDが処理完了待ち状態のプロセスPR_0と一致することを確認してもよい。
一方、処理完了待ち状態の間に、FPGA回路による処理が完了せず(S24のNO)、一定時間経過するか(S26のYES)、または割込信号により優先度が高いプロセスの割込が発生すると(S26のYES)、プロセッサCPU_2のOSは、割込ハンドラを実行する。OSの割り込みハンドラは、プロセスPR_0のコンテキストデータをメモリに退避し(S27)、アイドル状態の他のプロセッサを検索する(S28)。もしアイドル状態の他のプロセッサ(例えばCPU_3)が見つかれば、プロセッサCPU_2は、他のプロセッサCPU_3にプロセスPR_0の起動を依頼するプロセス起動メッセージを送信する(S29)。このプロセス起動メッセージには、退避したコンテキストデータなどの環境設定情報のアドレスや処理結果などが含まれる。このプロセス起動メッセージに応答して、他のプロセッサCPU_3は、プロセスPR_0の起動処理を実行する。もしアイドル状態の他のプロセッサが見つからなければ、プロセッサCPU_2は、中断したプロセスPR_0を起動待ちプロセス群に加えて、アイドル状態の他のプロセッサが見つかるまで待機させる。
さらに、プロセッサCPU_2のOSは、先に処理を依頼したFPGA回路に、プロセスPR_0の移動先のプロセッサID(CPU_ID)と、呼び出し元のプロセスID(PR_ID)と、割込通知先CPU情報を送信する(S36)。これに応答して、FPGA回路はそれらの情報をレジスタに設定する。
ここで、もし、他のプロセッサCPU_3で起動中に、FPGAの処理が完了した場合、プロセッサCPU_2は、FPGAから処理完了通知信号を受信する。つまり、プロセスCPU_2によるFPGAへの移動先プロセッサIDや割込通知先CPU情報の通知と、FPGAによる処理完了通知信号の送出とがほぼ同時に発生し、FPGAによる移動先のプロセッサIDや割込通知先CPU情報の設定より先にFPGAが処理完了通知を送出した場合、FPGAからの処理完了通知信号は、移動元のプロセッサCPU_2に通知される。そこで、移動元のプロセッサCPU_2は、処理完了通知信号を受信すると、移動先のプロセッサCPU_3に処理完了メッセージを送信する(S31)。つまり、プロセッサCPU_2は処理完了通知を移動先プロセッサCPU_3に転送する。
そして、プロセッサCPU_2は、割込による優先度が高いプロセスがある場合、そのプロセスを起動する(S32)。
図8は、プロセスの移動先のプロセッサの動作を示すフローチャート図である。図8では、図7で説明したプロセスPR_0がプロセッサCPU_2からプロセッサCPU_3に移動したときの動作を示す。移動先のプロセッサCPU_3は、プロセッサCPU_2からプロセスPR_0の起動メッセージを受信すると、起動メッセージに含まれる環境設定情報の退避先のアドレスにしたがい、メモリから環境設定情報を読み出し(S40)、プロセスPR_0を起動して動作環境をプロセッサ内に設定する(S41)。これにより、プロセスPR_0の動作環境がプロセッサCPU_3内に復元される。
しかし、プロセスPR_0はFPGAの処理完了待ち状態であったので、プロセッサCPU_3は、FPGA処理完了待ち状態に遷移する(S42)。そして、FPGA回路から処理完了通知を受信するか、移動元のプロセッサCPU_2から処理完了メッセージを受信すると(S43)、プロセッサCPU_3はプロセスPR_0の実行を再開する。
また、FPGAの処理完了通知を受信する前に、優先度の高いプロセスの割込が発生すると、プロセッサCPU_3は、図7のプロセッサCPU_2と同様に、プロセスPR_0のコンテキスト(環境設定情報)をメモリに退避し、空きプロセッサを検索し、見つかればその移動先プロセッサにプロセスを移動し、FPGAに移動先プロセッサ情報を通知する(S46)。そして、割込した優先度の高いプロセスを起動する(S47)。
図9は、FPGA回路の動作を示すフローチャート図である。FPGAは、プロセッサからコンフィグレーションデータと処理実行依頼を受信すると(S50)、演算処理を実行開始する(S51)。処理実行依頼には処理データが添付されていて、FPGAはコンフィグレーションデータにより処理に対応した演算回路を構築し、演算回路が処理データを入力して演算処理を実行する。
そして、FPGAは、演算処理実行中に(S52)、処理完了通知先の変更が発生すると(S53)、変更後の割り込み通知先CPU情報をレジスタに設定する(S54)。図6に示したとおり、シーケンス制御回路31は、処理完了通知先CPUが変更されると、割り込み通知先CPU情報に従って選択レジスタ143に設定する選択ビットを出力し、ストローブビットSTBに「1」を設定する。このSTB=1により所定のクロックタイミングで選択レジスタ143は選択ビットをラッチし、STB=0に変更する。さらに、FPGAのシーケンス制御回路は、演算処理が完了すると(S55)、処理完了通知信号Itrを生成し、送信回路142がこの処理完了通知信号を通知先プロセッサに割り込み信号として送出する(S56)。
次に、図7、8、9のフローチャートに基づいて、演算処理装置の3種類の動作について説明する。
図10は、演算処理装置の第1の動作を示すシーケンス図である。プロセッサCPU_2は、プロセスPR_0を起動して環境設定情報を設定し(S20)、プロセスPR_0を実行する(S21)。プロセスPR_0中にFPGAによる処理命令があると、プロセッサCPU_2は、FPGAに処理実行依頼を出力する(S22)。この処理実行依頼には、コンフィグレーションデータと、処理データと、依頼元プロセッサID(CPU_ID)と、呼び出し元プロセスID(PR_ID)と、割り込み通知先CPU情報(CPU_2)とが添付される。また、プロセッサCPU_2は、プロセスPR_0をFPGAの処理完了待ち状態にする(S23)。
この処理実行依頼に応答して、FPGA回路は、演算回路を構築し、依頼元プロセッサID(CPU_ID)と、呼び出し元プロセスID(PR_ID)と、割り込み通知先CPU情報(CPU_2)をレジスタに設定し、演算回路が処理データを入力して演算する(S50,51,52)。そして、FPGA回路は、処理が完了すると、処理完了通知を処理完了通知信号線15を介してプロセッサCPU_2に送信する(S56)。これに応答して、プロセッサCPU_2はプロセスPR_0の実行を再開する(S24,25)。
図11は、演算処理装置の第2の動作を示すシーケンス図である。第2の動作は、プロセッサCPU_2がFPGAの処理実行待ち状態中に割込が発生し、プロセスPR_0をプロセッサCPU_3に移動する例である。FPGAの処理実行待ち状態中に処理が完了せずラウンドロビン方式の制御でプロセスPR_0を中断させて、他のプロセスを起動し、プロセスPR_0をプロセッサCPU_3に移動する場合も同様である。
最初は、図10と同様に、プロセッサCPU_2は、プロセスPR_0を起動して環境設定情報を設定し(S20)、プロセスPR_0を実行し(S21)、FPGAに処理実行依頼を出力する(S22)。そして、プロセッサCPU_2は、プロセスPR_0をFPGAの処理完了待ち状態にする(S23)。また、FPGA回路は、演算回路を構築し、依頼元プロセッサID(CPU_ID)などをレジスタに設定し、演算回路が処理データを入力して演算する(S50,51,52)。
次に、プロセッサCPU_2は、FPGAの処理完了待ち状態中に割込が発生する(S26)。これに応答して、プロセッサCPU_2のOSは、プロセスPR_0の処理完了待ち状態を終了して環境設定情報をメモリに退避し(S27)、アイドル状態のプロセッサを探索する(S28)。
もしアイドル状態のプロセッサCPU_3が見つかれば、プロセッサCPU_2のOSは、プロセスPR_0の起動メッセージをプロセッサCPU_3に送信し(S29)、これに応答してプロセッサCPU_3は、FPGAによる処理実行中にプロセスPR_0を起動して環境設定情報を設定する(S40,41)。そして、プロセッサCPU_3では、プロセスPR_0がFPGAの処理完了待ち状態になる(S42)。
また、プロセッサCPU_2のOSは、FPGAに移動先プロセッサ情報(CPU_ID,CPU_3)とプロセス情報(PR_ID,PR_0)と移動先CPU情報とを通知する(S30)。そして、FPGAはこれらの情報をレジスタに設定する(S53,54)。
最後に、FPGA回路は処理を完了し、処理完了通知を移動先のプロセッサCPU_3に送信する(S56)。これに応答して、プロセッサCPU_3は、処理待ち状態を終了し、プロセスPR_0の実行を再開する(S44)。移動先のプロセッサCPU_3は、FPGAが処理中にプロセスPR_0を起動してその環境設定情報を設定済みであるので、FPGAから処理完了通知を受信すると、即座にプロセスPR_0の実行を再開できる。これにより、プロセッサの移動に伴ってオーバーヘッド時間が長くなることを抑制できる。
図12は、演算処理装置の第3の動作を示すシーケンス図である。第3の動作では、図11の第2の動作において、プロセッサCPU_2がFPGAの処理完了待ち状態で割込が発生した時に、プロセッサCPU_2によるFPGAへの移動先プロセッサ情報等の通知(S30)と、FPGAによるプロセッサCPU_2への処理完了の通知(S56)が、ほぼ同時に発生している。
そのため、移動元のプロセッサCPU_2のOSは、移動先プロセッサCPU_3に処理完了メッセージを送信する(S31)。これに応答して、移動先プロセッサCPU_3はプロセスPR_0の実行を再開する(S44)。
[第2の実施の形態]
図13は、並列処理装置(演算処理装置)の適用例である携帯端末の構成を示す図である。携帯端末は、スマートホンやパッド端末などのスマートでバスである。携帯端末は、無線制御回路41とアプリ実行部44とを有するシステムLSIチップ40と、アンテナ51および無線回路50と、ディスプレイ24と、タッチパネル25とを有する。さらに、ブルーツースやWiFi用のLSI23と、DRAMなど高速アクセスのメインメモリ20と、フラッシュメモリやハードディスクなど大容量の不揮発性の補助メモリ22とを有する。
無線制御回路41は、ベースバンド信号の各種処理を行うベースバンド回路43と、各種信号処理を行う信号処理プロセッサ42とを有する。
アプリ実行部44は、本実施の形態の並列処理装置(演算処理装置)であり、複数のCPUまたはCPUコア(プロセッサ)と、FPGA回路と、周辺回路群とを有する。複数のプロセッサが並列して複数のアプリケーションそれぞれのプロセスを実行する。
図14は、第2の実施の形態における並列処理装置(演算処理装置)の構成例を示す図である。図14の構成で図5と異なる構成は、複数のプロセッサの構成と、周辺回路群16にディスプレイ24とタッチパネル25が接続されていることである。
図14において、複数のプロセッサは、4個のプロセッサCPU_1〜CPU_4を有する第1のプロセッサ群20と、4個のプロセッサCPU_5〜CPU_8を有する第2のプロセッサ群21とで構成される。プロセッサの数は一例である。携帯端末のプロセスには、待機状態でのプロセスと、実行中でのプロセスとがある。待機状態でのプロセスは定期的に通信を行うなど処理量が少なく、したがって、第1のプロセッサ群20には低周波数のクロックが供給される。また、実行中のプロセスは処理量が多く、第2のプロセッサ群21は高周波数のクロックが供給される。
FPGA回路と8つのプロセッサそれぞれとの間に、処理完了通知信号線15が設けられている。FPGA回路の処理完了通知信号送信回路142は、処理完了通知信号を、処理依頼元のプロセッサに、そのプロセッサに対応する信号線15を介して送信する。
周辺回路群16は、通信LSI23、メインメモリ20、補助メモリ22、ディスプレイ24、タッチパネル25それぞれに接続されるドライバ回路、入出力回路などを有する。
第2の実施の形態における演算処理装置では、第1の実施の形態と同様に、複数のプロセッサが複数のプロセスを並列に処理する。また、プロセッサは、プロセス内のFPGA回路による処理を要求する命令コードを実行して、FPGA回路に処理を依頼する。複数のプロセッサへのプロセスの割当方法や、FPGA回路への処理依頼方法や、FPGA回路が処理中にプロセスが異なるプロセッサに移動した際の制御方法などは、第1の実施の形態と同様である。
以上のとおり、本実施の形態によれば、複数のプロセッサが複数のプロセスを並列処理する並列処理装置において、FPGA回路がプロセスの処理の一部を実行中に、そのプロセスが他のプロセッサに移動した場合、FPGAが処理中に、移動先の他のプロセッサでプロセスを起動して動作環境設定情報を設定する。それにより、FPGAが処理完了したとき、移動先の他のプロセッサが、即座にプロセスの実行を再開できる。したがって、オーバーヘッド時間を短縮できる。
以上の実施の形態をまとめると、次の付記のとおりである。
(付記1)
それぞれのプロセスをそれぞれ実行し、前記プロセスの一部をFPGA回路に処理させる複数のプロセッサを有し、
前記複数のプロセッサのうち第1のプロセッサは、実行中の第1のプロセスの一部の処理を前記FPGA回路に依頼して前記FPGA回路の処理完了待ち状態に推移し、第2のプロセスの実行に推移する場合、移動先プロセッサ情報を前記FPGA回路に送ると共に、前記移動先プロセッサに前記FPGA回路での前記一部の処理完了後の前記第1のプロセス継続処理のための環境設定情報を送り、
前記移動先プロセッサは、前記FPGA回路が前記一部の処理を実行中に、前記環境設定情報の設定を行い、前記FPGA回路からの処理完了通知に応答して前記第1のプロセスの処理を継続する、並列処理装置。
(付記2)
さらに、少なくとも一つの前記複数のプロセッサが実行するプロセスの一部を処理する前記FPGA回路を有する、付記1に記載の並列処理装置。
(付記3)
前記FPGA回路は、前記移動先プロセッサ情報の移動先プロセッサに、前記処理完了通知を送る、付記2に記載の並列処理装置。
(付記4)
さらに、前記FPGA回路と前記複数のプロセッサそれぞれとの間に、前記処理完了通知を送信する複数の処理完了通知信号線を有し、
前記FPGA回路は、前記処理完了通知を前記複数の処理完了通知信号線のいずれかを介して送信する、付記2に記載の並列処理装置。
(付記5)
前記複数のプロセッサは、実行中のプロセスの一部の処理を前記FPGA回路に依頼する場合、依頼元プロセッサの情報を前記FPGA回路に送り、
前記複数のプロセッサは、第2のプロセスの実行に推移する場合、前記FPGA回路からの処理完了通知を前記移動先プロセッサに転送する、付記4に記載の並列処理装置。
(付記6)
前記複数のプロセッサは、前記第1のプロセスの一部の処理を前記FPGA回路に依頼する場合、依頼元プロセッサの情報を前記FPGA回路に送り、前記FPGA回路の処理完了待ち状態を第1の所定期間継続する、付記1に記載の並列処理装置。
(付記7)
前記複数のプロセッサは、前記第1の所定期間継続中は、前記第2のプロセスの実行には推移しない、付記6に記載の並列処理装置。
(付記8)
前記環境設定情報は、前記第1のプロセッサ内のレジスタに設定されたレジスタ設定データを有する、付記1に記載の並列処理装置。
(付記9)
前記複数のプロセッサのそれぞれは、複数のプロセスのうち一つのプロセスを第2の所定期間実行した後、他のプロセスを前記所定の実行時間の間実行することを繰り返す、付記1に記載の並列処理装置。
(付記10)
前記複数のプロセッサのそれぞれは、任意のプロセスを実行中に割込信号を受信すると、実行中のプロセスより優先度が高い他のプロセスを起動及び実行し、実行中のプロセスの実行を停止する、付記1に記載の並列処理装置。
(付記11)
前記移動先プロセッサは、前記環境設定情報の設定を完了後、前記FPGA回路の処理完了待ち状態に推移する、付記1に記載の並列処理装置。
(付記12)
前記第1のプロセッサは、前記第2のプロセスの実行に推移する場合、前記第1のプロセスの情報を前記FPGA回路に送る、付記1に記載の並列処理装置。
(付記13)
それぞれのプロセスをそれぞれ実行し、前記プロセスの一部をFPGA回路に処理させる複数のプロセッサを有する並列処理装置の並列処理方法であって、
前記複数のプロセッサのうち第1のプロセッサが、実行中の第1のプロセスの一部の処理を前記FPGA回路に依頼して前記FPGA回路の処理完了待ち状態に推移し、第2のプロセスの実行に推移する場合、移動先プロセッサ情報を前記FPGA回路に送ると共に、前記移動先プロセッサに前記FPGA回路での前記一部の処理完了後の前記第1のプロセス継続処理のための環境設定情報を送る工程と、
前記移動先プロセッサが、前記FPGA回路が前記一部の処理を実行中に、前記環境設定情報の設定を行い、前記FPGA回路からの処理完了通知に応答して前記第1のプロセスの処理を継続する工程とを有する、並列処理方法。
1:システムLSIチップ、並列処理装置
10:プロセッサ、CPU、CPUコア
14:FPGA回路
BUS:CPUバス

Claims (10)

  1. それぞれのプロセスをそれぞれ実行し、前記プロセスの一部をFPGA回路に処理させる複数のプロセッサを有し、
    前記複数のプロセッサのうち第1のプロセッサは、実行中の第1のプロセスの一部の処理を前記FPGA回路に依頼して前記FPGA回路の処理完了待ち状態に推移し、第2のプロセスの実行に推移する場合、移動先プロセッサ情報を前記FPGA回路に送ると共に、前記移動先プロセッサに前記FPGA回路での前記一部の処理完了後の前記第1のプロセス継続処理のための環境設定情報を送り、
    前記移動先プロセッサは、前記FPGA回路が前記一部の処理を実行中に、前記環境設定情報の設定を行い、前記FPGA回路からの処理完了通知に応答して前記第1のプロセスの処理を継続する、並列処理装置。
  2. さらに、少なくとも一つの前記複数のプロセッサが実行するプロセスの一部を処理する前記FPGA回路を有する、請求項1に記載の並列処理装置。
  3. 前記FPGA回路は、前記移動先プロセッサ情報の移動先プロセッサに、前記処理完了通知を送る、請求項2に記載の並列処理装置。
  4. さらに、前記FPGA回路と前記複数のプロセッサそれぞれとの間に、前記処理完了通知を送信する複数の処理完了通知信号線を有し、
    前記FPGA回路は、前記処理完了通知を前記複数の処理完了通知信号線のいずれかを介して送信する、請求項2に記載の並列処理装置。
  5. 前記複数のプロセッサは、実行中のプロセスの一部の処理を前記FPGA回路に依頼する場合、依頼元プロセッサの情報を前記FPGA回路に送り、
    前記複数のプロセッサは、第2のプロセスの実行に推移する場合、前記FPGA回路からの処理完了通知を前記移動先プロセッサに転送する、請求項4に記載の並列処理装置。
  6. 前記複数のプロセッサは、前記第1のプロセスの一部の処理を前記FPGA回路に依頼する場合、依頼元プロセッサの情報を前記FPGA回路に送り、前記FPGA回路の処理完了待ち状態を第1の所定期間継続する、請求項1に記載の並列処理装置。
  7. 前記環境設定情報は、前記第1のプロセッサ内のレジスタに設定されたレジスタ設定データを有する、請求項1に記載の並列処理装置。
  8. 前記複数のプロセッサのそれぞれは、任意のプロセスを実行中に割込信号を受信すると、実行中のプロセスより優先度が高い他のプロセスを起動及び実行し、実行中のプロセスの実行を停止する、請求項1に記載の並列処理装置。
  9. 前記移動先プロセッサは、前記環境設定情報の設定を完了後、前記FPGA回路の処理完了待ち状態に推移する、請求項1に記載の並列処理装置。
  10. それぞれのプロセスをそれぞれ実行し、前記プロセスの一部をFPGA回路に処理させる複数のプロセッサを有する並列処理装置の並列処理方法であって、
    前記複数のプロセッサのうち第1のプロセッサが、実行中の第1のプロセスの一部の処理を前記FPGA回路に依頼して前記FPGA回路の処理完了待ち状態に推移し、第2のプロセスの実行に推移する場合、移動先プロセッサ情報を前記FPGA回路に送ると共に、前記移動先プロセッサに前記FPGA回路での前記一部の処理完了後の前記第1のプロセス継続処理のための環境設定情報を送る工程と、
    前記移動先プロセッサが、前記FPGA回路が前記一部の処理を実行中に、前記環境設定情報の設定を行い、前記FPGA回路からの処理完了通知に応答して前記第1のプロセスの処理を継続する工程とを有する、並列処理方法。
JP2015199148A 2015-10-07 2015-10-07 並列処理装置及び並列処理方法 Active JP6515771B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015199148A JP6515771B2 (ja) 2015-10-07 2015-10-07 並列処理装置及び並列処理方法
US15/250,902 US10073810B2 (en) 2015-10-07 2016-08-29 Parallel processing device and parallel processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015199148A JP6515771B2 (ja) 2015-10-07 2015-10-07 並列処理装置及び並列処理方法

Publications (2)

Publication Number Publication Date
JP2017072973A JP2017072973A (ja) 2017-04-13
JP6515771B2 true JP6515771B2 (ja) 2019-05-22

Family

ID=58499545

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015199148A Active JP6515771B2 (ja) 2015-10-07 2015-10-07 並列処理装置及び並列処理方法

Country Status (2)

Country Link
US (1) US10073810B2 (ja)
JP (1) JP6515771B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10423550B2 (en) * 2017-10-25 2019-09-24 International Business Machines Corporation Managing efficient selection of a particular processor thread for handling an interrupt
WO2023223555A1 (ja) * 2022-05-20 2023-11-23 日本電信電話株式会社 アクセラレータオフロード装置およびアクセラレータオフロード方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6950927B1 (en) * 2001-04-13 2005-09-27 The United States Of America As Represented By The Secretary Of The Navy System and method for instruction-level parallelism in a programmable multiple network processor environment
JP2006119802A (ja) 2004-10-20 2006-05-11 Hitachi Ltd マルチプロセッサシステム
JP2006260377A (ja) 2005-03-18 2006-09-28 Seiko Epson Corp 並列処理装置および情報処理方法
JP4247228B2 (ja) 2005-11-28 2009-04-02 株式会社日立製作所 ヘテロマルチプロセッサシステムおよびそのos構成方法
US8689223B2 (en) * 2008-11-18 2014-04-01 International Business Machines Corporation Mechanisms to detect priority inversion
US8468539B2 (en) * 2009-09-03 2013-06-18 International Business Machines Corporation Tracking and detecting thread dependencies using speculative versioning cache
WO2012127589A1 (ja) * 2011-03-18 2012-09-27 富士通株式会社 マルチコアプロセッサシステム、および分岐予測方法
US9298438B2 (en) * 2012-06-20 2016-03-29 Microsoft Technology Licensing, Llc Profiling application code to identify code portions for FPGA implementation
US8977637B2 (en) * 2012-08-30 2015-03-10 International Business Machines Corporation Facilitating field programmable gate array accelerations of database functions
US9292569B2 (en) * 2012-10-02 2016-03-22 Oracle International Corporation Semi-join acceleration
WO2014120157A1 (en) * 2013-01-30 2014-08-07 Empire Technology Development Llc Dynamic reconfiguration of programmable hardware
JP2014165803A (ja) 2013-02-27 2014-09-08 Ricoh Co Ltd 再構成可能デバイス、及びそれを備えた画像形成装置
US9286225B2 (en) * 2013-03-15 2016-03-15 Saratoga Speed, Inc. Flash-based storage system including reconfigurable circuitry
US20150036942A1 (en) * 2013-07-31 2015-02-05 Lsi Corporation Object recognition and tracking using a classifier comprising cascaded stages of multiple decision trees
US9785444B2 (en) * 2013-08-16 2017-10-10 Analog Devices Global Hardware accelerator configuration by a translation of configuration data
US9817670B2 (en) * 2013-12-13 2017-11-14 International Business Machines Corporation Framework to provide time bound execution of co-processor commands
JP6246603B2 (ja) * 2014-01-21 2017-12-13 ルネサスエレクトロニクス株式会社 タスクスケジューラ機構、オペレーティングシステム及びマルチプロセッサシステム
GB2537760A (en) * 2014-02-17 2016-10-26 Hitachi Ltd Computer, and resource scheduling method using hypervisor
WO2015132942A1 (ja) * 2014-03-07 2015-09-11 株式会社日立製作所 計算機
US10127275B2 (en) * 2014-07-11 2018-11-13 International Business Machines Corporation Mapping query operations in database systems to hardware based query accelerators
US20160124899A1 (en) * 2014-11-04 2016-05-05 Easic Corporation Multi-chip packaged function including a programmable device and a fixed function die and use for application acceleration
US9952987B2 (en) * 2014-11-25 2018-04-24 Intel Corporation Posted interrupt architecture
JP6509616B2 (ja) * 2015-04-10 2019-05-08 株式会社東芝 センサデータ収集装置

Also Published As

Publication number Publication date
US10073810B2 (en) 2018-09-11
JP2017072973A (ja) 2017-04-13
US20170102954A1 (en) 2017-04-13

Similar Documents

Publication Publication Date Title
KR101798369B1 (ko) 휴대용 디바이스에서 동기적 태스크 디스패치를 위한 시스템 및 방법
US8321693B2 (en) Parallel processing method and system, for instance for supporting embedded cluster platforms, computer program product therefor
CN109983440B (zh) 数据处理
US10255122B2 (en) Function callback mechanism between a Central Processing Unit (CPU) and an auxiliary processor
KR20070058995A (ko) 태스크를 동적으로 스케줄링할 수 있는 전용 신호 프로세서코어를 포함하는 프로세서 장치 및 그 태스크 제어 방법
US9043806B2 (en) Information processing device and task switching method
JPWO2009157178A1 (ja) 仮想計算機制御装置、仮想計算機制御プログラム及び仮想計算機制御回路
US10289787B2 (en) Control program and control method for programmable logic device and information processing apparatus including the same
JP2007133456A (ja) 半導体装置
WO2011117987A1 (ja) マルチコアシステムおよび起動方法
US8495345B2 (en) Computing apparatus and method of handling interrupt
JP6515771B2 (ja) 並列処理装置及び並列処理方法
US10216679B2 (en) Semiconductor device and control method thereof
JP6368452B2 (ja) 非同期のデバイスによって実行されるタスクのスケジューリングの向上
WO2022022185A1 (zh) 内核重启方法
CN112231018B (zh) 用于卸载数据的方法、计算设备和计算机可读存储介质
JP2018536917A (ja) 実行のクリティカルパスから離れたタスクシグナリング
WO2006011189A1 (ja) 並列計算機
JP2010211506A (ja) 不均一メモリアクセス機構を備えるコンピュータ、コントローラ、及びデータ移動方法
JP2008158699A (ja) プロセッサ
KR100946561B1 (ko) 오토노머스 멀티-마이크로컨트롤러 시스템 및 그의 제어방법
JPH09218859A (ja) マルチプロセッサ制御システム
CN115796251A (zh) 计算装置及其卷积数据的共享机制
JP2001084151A (ja) 中央処理装置

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20180405

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20180409

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180706

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20180725

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181019

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190227

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: 20190319

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190401

R150 Certificate of patent or registration of utility model

Ref document number: 6515771

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533