JP2017117204A - プロセッサ、再構成可能回路の制御方法及びプログラム - Google Patents

プロセッサ、再構成可能回路の制御方法及びプログラム Download PDF

Info

Publication number
JP2017117204A
JP2017117204A JP2015251934A JP2015251934A JP2017117204A JP 2017117204 A JP2017117204 A JP 2017117204A JP 2015251934 A JP2015251934 A JP 2015251934A JP 2015251934 A JP2015251934 A JP 2015251934A JP 2017117204 A JP2017117204 A JP 2017117204A
Authority
JP
Japan
Prior art keywords
task
circuit
processor
tasks
reconfigurable circuit
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.)
Granted
Application number
JP2015251934A
Other languages
English (en)
Other versions
JP6669961B2 (ja
Inventor
都市 雅彦
Masahiko Toshi
雅彦 都市
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 Ltd
Original Assignee
Fujitsu 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 Ltd filed Critical Fujitsu Ltd
Priority to JP2015251934A priority Critical patent/JP6669961B2/ja
Priority to US15/290,071 priority patent/US10162795B2/en
Publication of JP2017117204A publication Critical patent/JP2017117204A/ja
Application granted granted Critical
Publication of JP6669961B2 publication Critical patent/JP6669961B2/ja
Expired - Fee Related 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/7871Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
    • G06F15/7875Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS for multiple contexts
    • 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/7871Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】再構成可能回路の使用効率を向上させることができるプロセッサ、再構成可能回路の制御方法及びプログラムを提供することを課題とする。【解決手段】プロセッサは、コンピュータのタスクを実現する回路を動的に再構成可能な再構成可能回路を制御するプロセッサであって、複数のタスクを実現する回路をそれぞれ前記再構成可能回路に再構成する際に、前記複数のタスクをそれぞれ実現する回路の前記再構成可能回路にかかるコストに基づいて、前記複数のタスクのタイムシェアリングの割り当て時間又は前記複数のタスクの優先処理順位を決定する決定部を有する。【選択図】図5

Description

本発明は、プロセッサ、再構成可能回路の制御方法及びプログラムに関する。
再構成デバイスとコンフィグレーションコードメモリと再構成デバイスコントローラとを有する情報処理装置が知られている(特許文献1参照)。再構成デバイスは、コンフィグレーションコードにしたがって所望のタスクを実行するための回路を変更可能に実現する。コンフィグレーションコードメモリには、再構成デバイスで実行するタスク毎に、それぞれ異なる特徴を持つ複数の回路を実現するためのコンフィグレーションコードが格納される。再構成デバイスコントローラは、異なる特徴を持つ複数の回路のなかからシステムの動作状態に応じて再構成デバイスに実行させる適切な回路を選択する、再構成デバイスに対するコンフィグレーションコードのロードを制御する。
また、再構成可能処理装置と監視手段と再構成手段とを有するデータ処理装置が知られている(特許文献2参照)。再構成可能処理装置は、互いにデータを別入力してデータ処理を行う複数のデータ処理部が論理仕様の再構成によって設けられる。監視手段は、データ処理部におけるデータ処理の終了を監視する。再構成手段は、監視手段の監視結果に基づいて、データ処理中のデータ処理部の論理仕様は再構成せず、処理を終了した1又は2以上のデータ処理部の論理仕様を再構成して、次のデータ処理を行う1又は2以上の新たなデータ処理部を設ける。
特開2007−179358号公報 特開2009−129163号公報
再構成可能回路に十分な空き領域がない場合には、再構成可能回路に新たな回路を再構成することができない。その場合、十分な空き領域ができるまで、次の処理が待たされ、再構成可能回路の使用効率が低下してしまう場合がある。
1つの側面では、本発明の目的は、再構成可能回路の使用効率を向上させることができるプロセッサ、再構成可能回路の制御方法及びプログラムを提供することである。
プロセッサは、コンピュータのタスクを実現する回路を動的に再構成可能な再構成可能回路を制御するプロセッサであって、複数のタスクを実現する回路をそれぞれ前記再構成可能回路に再構成する際に、前記複数のタスクをそれぞれ実現する回路の前記再構成可能回路にかかるコストに基づいて、前記複数のタスクのタイムシェアリングの割り当て時間又は前記複数のタスクの優先処理順位を決定する決定部を有する。
再構成可能回路の使用効率を向上させることができる。
図1(A)〜(C)は、第1の実施形態による処理装置の構成例を示す図である。 図2(A)は再構成可能回路の構成例を示す図であり、図2(B)は再構成可能回路のレイアウト例を示す図である。 図3は、メインメモリの一部の構成例を示す図である。 図4は、プロセッサが実行するアプリケーションの開始処理を示すフローチャートである。 図5は、プロセッサが行うタスク優先度の計算処理を示すフローチャートである。 図6(A)は図5のステップS504の処理の詳細を示すフローチャートであり、図6(B)は使用状況テーブルの例を示す図である。 図7(A)は第2の実施形態によるプロセッサの処理を示すフローチャートであり、図7(B)は使用状況テーブルの例を示す図である。 図8(A)は第3の実施形態によるプロセッサの処理を示すフローチャートであり、図8(B)は使用状況テーブルの例を示す図であり、図8(C)は重みを示す図である。 図9は、第4の実施形態によるプロセッサの処理を示すフローチャートである。
(第1の実施形態)
図1(A)は、第1の実施形態による処理装置100の構成例を示す図である。処理装置100は、例えばサーバ装置であり、プロセッサ101と、入出力(I/O)ブリッジ回路102と、メモリインターフェース回路103と、メインメモリ104と、再構成可能回路(リコンフィギュラブル回路)105とを有する。再構成可能回路105は、入出力インターフェース回路111と、メモリコントローラ112と、回路を動的に再構成可能な複数のブロック113とを有する。
メインメモリ104は、例えばDDR(Double-Data-Rate)規格のSDRAM(Synchronous Dynamic Random Access Memory)である。メインメモリ104は、プログラム及びデータを記憶し、メモリインターフェース103を介してプロセッサ101及びメモリコントローラ112に接続される。入出力インターフェース回路111は、例えばPCIe回路である。プロセッサ101は、入出力ブリッジ回路102を介して、入出力インターフェース回路111に接続される。
プロセッサ101は、例えば中央処理ユニット(CPU)等のコンピュータであり、メインメモリ104内のプログラムを実行することにより、タスクを実行する。入出力ブリッジ回路102は、プロセッサ101と再構成可能回路105との間の接続を制御する。再構成可能回路105は、例えばFPGA(field-programmable gate array)であり、プロセッサ101のタスクを実現する回路を動的に再構成可能である。なお、再構成可能回路105は、FPGA以外の再構成可能回路でもよい。プロセッサ101は、タスクの処理速度を高速化するため、再構成可能回路105内の回路をアクセラレータとして使用する。再構成可能回路105内の回路は、ハードウェアであるため、プロセッサ101のプログラム処理に比べて、高速処理が可能である。
メインメモリ104には、図1(B)のアプリケーション121及び図1(C)のオペレーティングシステム(OS)/ドライバ122が記憶されている。アプリケーション121及びOS/ドライバ122は、プロセッサ101が実行するプログラムである。プロセッサ101は、OS/ドライバ122及びアプリケーション121をメインメモリ104から読み出して実行する。具体的には、プロセッサ101は、アプリケーション121を実行することにより、例えば、タスクA、タスクB及びタスクCを実現する回路をそれぞれ再構成可能回路105内のブロック113に再構成する。また、プロセッサ101は、OS/ドライバ122を実行することにより、タスクスケジュールテーブル123及び使用状況テーブル124を管理する。
使用状況テーブル124は、ブロックIDと使用タスクとの対応関係を示す。ブロックIDは、再構成可能回路105内の複数のブロック113の各々の識別番号である。使用タスクは、各ブロックIDが示すブロック113を使用しているタスクを示す。例えば、ブロックIDが「0」及び「1」のブロック113は、タスクAにより使用されている。また、ブロックIDが「2」のブロック113は、空きであり、いずれのタスクにも使用されていない。また、ブロックIDが「3」のブロック113は、タスクBにより使用されている。
タスクスケジュールテーブル123は、タスクと固定優先度131と変動優先度132とリソース優先度133との関係を示す。例えば、タスクAは、固定優先度131が「10」であり、変動優先度132が「8」であり、リソース優先度133が「8」である。タスクBは、固定優先度131が「15」であり、変動優先度132が「6」であり、リソース優先度133が「2」である。タスクCは、固定優先度131が「10」であり、変動優先度132が「4」であり、リソース優先度133が「1」である。プロセッサ101は、使用状況テーブル124を参照し、各タスクが使用するブロック113の数に応じて、タスクスケジュールテーブル123のリソース優先度133を決定する。
例えば、プロセッサ101は、タスクAを実現する回路を再構成可能回路105に再構成するために8個のブロック113を使用した場合には、タスクスケジュールテーブル123のタスクAのリソース優先度133を「8」に設定する。また、プロセッサ101は、タスクBを実現する回路を再構成可能回路105に再構成するために2個のブロック113を使用した場合には、タスクスケジュールテーブル123のタスクBのリソース優先度133を「2」に設定する。また、プロセッサ101は、タスクCを実現する回路を再構成可能回路105に再構成するために1個のブロック113を使用した場合には、タスクスケジュールテーブル123のタスクCのリソース優先度133を「1」に設定する。
図2(A)は再構成可能回路105の構成例を示す図であり、図2(B)は再構成可能回路105のレイアウト例を示す図である。入出力インターフェース回路111は、複数のブロック113に接続され、各タスクに応じた命令等を入出力する。メモリコントローラ112は、複数のブロック113に接続され、メインメモリ104に対してデータを入出力する。複数のブロック113の各々は、タスクに応じた回路を再構成可能であり、例えば、メモリ201、デジタルシグナルプロセッサ(DSP)202及びロジック回路203を再構成することができる。
図3は、メインメモリ104の一部の構成例を示す図である。メインメモリ104は、アクティブポインタ301、エクスパイアポインタ302と、アクティブキュー303と、エクスパイアキュー304と、待ちキュー300を記憶する。アクティブポインタ301は、アクティブキュー303の先頭アドレスを示す。エクスパイアポインタ302は、エクスパイアキュー304の先頭アドレスを示す。プロセッサ101は、アクティブポインタ301を参照することによりアクティブキュー303にアクセスし、エクスパイアポインタ302を参照することによりエクスパイアキュー304にアクセスする。
以下、プロセッサ101が実行するOS/ドライバ122の処理を説明する。プロセッサ101は、アプリケーション121を実行することにより、複数のタスクを待ちキュー300に格納する。そして、プロセッサ101は、再構成可能回路105内に十分なブロック113の空きがある場合には、待ちキュー300内のタスクを実現する回路を再構成可能回路105内のブロック113に再構成し、待ちキュー300内のその再構成したタスクをアクティブキュー303に移動させる。次に、プロセッサ101は、アクティブキュー303内の複数のタスクに対して、固定優先度131と変動優先度132とリソース優先度133の合計値に応じた優先処理順位の順番で、固定優先度131とリソース優先度133の合計値に応じた割り当て時間で、タイムシェアリング処理を行う。固定優先度131は、各タスクに指定される固定値である。変動優先度132は、各タスクの待ち時間が長くなるほど大きくなる変動値である。プロセッサ101は、図1(C)のタスクスケジュールテーブル123の複数のタスクの中で、固定優先度131と変動優先度132とリソース優先度133の合計値が大きい方から順番の優先処理順位で、タスクを実現するブロック113の回路の動作開始を指示する。
例えば、図1(C)のタスクスケジュールテーブル123の場合、優先処理順位は、タスクAが第1位、タスクBが第2位、タスクCが第3位である。割り当て時間は、タスクAが1番目に長く、タスクBが2番目に長く、タスクCが3番目に長い。
まず、プロセッサ101は、優先処理順位が第1位であるタスクAのブロック113の回路を、タスクAの割り当て時間だけ動作させ、その動作が終了すると、アクティブキュー303内のタスクAをエクスパイアキュー304に移動させる。次に、プロセッサ101は、優先処理順位が第2位であるタスクBのブロック113の回路を、タスクBの割り当て時間だけ動作させ、その動作が終了すると、アクティブキュー303内のタスクBをエクスパイアキュー304に移動させる。次に、プロセッサ101は、優先処理順位が第3位であるタスクCのブロック113の回路を、タスクCの割り当て時間だけ動作させ、その動作が終了すると、アクティブキュー303内のタスクCをエクスパイアキュー304に移動させる。
次に、プロセッサ101は、アクティブキュー303が空になると、エクスパイアキュー304内のすべてのタスクA、タスクB及びタスクCをアクティブキュー303に移動させる。その後、上記と同様に、プロセッサ101は、優先処理順位が第1位であるタスクAのブロック113の回路を、タスクAの割り当て時間だけ動作させ、その動作が終了すると、アクティブキュー303内のタスクAをエクスパイアキュー304に移動させる。次に、プロセッサ101は、優先処理順位が第2位であるタスクBのブロック113の回路を、タスクBの割り当て時間だけ動作させ、その動作が終了すると、アクティブキュー303内のタスクBをエクスパイアキュー304に移動させる。次に、プロセッサ101は、優先処理順位が第3位であるタスクCのブロック113の回路を、タスクCの割り当て時間だけ動作させ、その動作が終了すると、アクティブキュー303内のタスクCをエクスパイアキュー304に移動させる。上記の処理を繰り返すことにより、プロセッサ101は、複数のタスクA、タスクB及びタスクCのタイムシェアリング処理を行う。各タスクの処理が完了すると、各タスクはアクティブキュー303及びエクスパイアキュー304から削除される。
リソース優先度133は、各タスクが使用するブロック113の数が多いほど、大きくなる。すなわち、リソース優先度133は、各タスクが使用するブロック113の合計面積が大きいほど、大きくなる。各タスクの優先処理順位は、各タスクのリソース優先度133が大きいほど優先される。各タスクの割り当て時間は、各タスクのリソース優先度133が大きいほど長くなる。したがって、複数のタスクの中で、使用するブロック113の数が多いタスクほど、又は、使用するブロック113の合計面積が大きいタスクほど、そのタスクが使用するブロック113の動作を早期に終了させ、その大面積の使用ブロック113を空き状態にすることができる。これにより、次のタスクの待機時間を短縮し、再構成可能回路105の使用効率を向上させることができる。
図4は、プロセッサ101が実行するアプリケーション121の開始処理を示すフローチャートである。以下、再構成可能回路105の制御方法を説明する。ステップS401では、プロセッサ101は、アプリケーション121によるタスクが再構成可能回路105をアクセラレータとして使用するか否かを判定する。そして、プロセッサ101は、再構成可能回路105を使用する場合には、ステップS402に処理を進め、再構成可能回路105を使用しない場合には、処理を終了する。
ステップS402では、プロセッサ101は、待ちキュー300内のタスクを実現する回路を再構成可能回路105内のブロック113に再構成するために十分なブロック113の空きがあるか否かを判定する。そして、プロセッサ101は、その十分なブロック113の空きができるまで待機し、その十分なブロック113の空きができた場合には、ステップS403に処理を進める。
ステップS403では、プロセッサ101は、待ちキュー300内のタスクを実現する回路を再構成可能回路105内のブロック113に再構成するように制御する。そして、プロセッサ101は、待ちキュー300内のタスクをアクティブキュー303に移動する。
次に、ステップS404では、プロセッサ101は、上記の再構成に応じて、図1(C)の使用状況テーブル124を更新する。具体的には、プロセッサ101は、使用状況テーブル124に、各ブロックIDのブロック113を使用しているタスクを記録する。
図5は、プロセッサ101が行うタスク優先度の計算処理を示すフローチャートである。各タスクのタスク優先度の初期値は0である。ステップS501では、プロセッサ101は、各タスクに指定される固定優先度131をタスクスケジュールテーブル123に記録し、各タスクのタスク優先度に対して、各タスクの固定優先度131をそれぞれ加算する。
次に、ステップS502では、プロセッサ101は、各タスクの待ち時間に応じた各タスクの変動優先度132をタスクスケジュールテーブル123に記録し、各タスクのタスク優先度に対して、各タスクの変動優先度132をそれぞれ加算する。
次に、ステップS503では、プロセッサ101は、各タスクが再構成可能回路105をアクセラレータとして使用するか否かを判定する。そして、プロセッサ101は、再構成可能回路105を使用する場合には、ステップS504に処理を進め、再構成可能回路105を使用しない場合には、ステップS505に処理を進める。
ステップS504では、プロセッサ101は、使用状況テーブル124を基に、各タスクのリソース優先度133をタスクスケジュールテーブル123に記録し、各タスクのタスク優先度に対して、各タスクのリソース優先度133をそれぞれ加算する。例えば、プロセッサ101は、使用状況テーブル124を参照し、各タスクが使用するブロック113の数に応じて、各タスクのリソース優先度133をタスクスケジュールテーブル123に記録する。このステップS504の詳細は、後に図6(A)を参照しながら説明する。その後、プロセッサ101は、ステップS505に処理を進める。
ステップS505では、プロセッサ101は、決定部の処理により、各タスクのタスク優先度に応じて、各タスクの優先処理順位を決定する。各タスクのタスク優先度が大きいほど、各タスクの優先処理順位が早くなる。また、プロセッサ101は、決定部の処理により、各タスクの固定優先度131及びリソース優先度133の合計値に応じて、各タスクのタイムシェアリングの割り当て時間を決定する。各タスクの固定優先度131及びリソース優先度133の合計値が大きいほど、各タスクのタイムシェアリングの割り当て時間が長くなる。
その後、プロセッサ101は、アクティブキュー303内の複数のタスクに対して、その決定した優先処理順位の順番で、その決定した割り当て時間で、タイムシェアリング処理を行う。
図6(A)は、図5のステップS504の処理の詳細を示すフローチャートである。図6(B)は、図4のステップS404で、プロセッサ101が更新した使用状況テーブル124の例を示す図である。使用状況テーブル124は、各ブロックIDのブロック113を使用しているタスクを示す。
ステップS601では、プロセッサ101は、使用状況テーブル124を参照し、各タスクが使用しているブロック113の数をカウントする。次に、ステップS602では、プロセッサ101は、上記の各タスクの使用ブロック数に対して補正係数を乗算することにより、各タスクのリソース優先度133を算出する。上記の補正係数は、固定優先度131及び変動優先度132に対するリソース優先度133の重み係数である。次に、ステップS603では、プロセッサ101は、各タスクのタスク優先度に対して、各タスクのリソース優先度133を加算する。
なお、プロセッサ101は、上記の優先処理順位なしで、各タスクの割り当て時間で、複数のタスクをタイムシェアリング処理してもよい。また、プロセッサ101は、タイムシェアリング処理に限定されず、タイムシェアリングの割り当て時間なしで、上記の優先処理順位の順番で、複数のタスクを実行してもよい。
以上のように、プロセッサ101は、プロセッサ101のタスクを実現する回路を動的に再構成可能な再構成可能回路105を制御する。また、プロセッサ101は、複数のタスクを実現する回路をそれぞれ再構成可能回路105に再構成する際に、複数のタスクをそれぞれ実現する回路の再構成可能回路105にかかるコストに基づいて、複数のタスクのタイムシェアリングの割り当て時間又は複数のタスクの優先処理順位を決定する。上記の再構成可能回路105にかかるコストは、複数のタスクをそれぞれ実現する回路の再構成可能回路105内のブロック113の使用面積、又は複数のタスクをそれぞれ実現する回路の再構成可能回路105内の使用するブロック113の数である。本実施形態によれば、コストが高い回路の動作を早期に終了させることができるので、次のタスクの待機時間を短縮し、再構成可能回路105の使用効率を向上させることができる。
(第2の実施形態)
図7(A)は、第2の実施形態によるプロセッサ101の処理を示すフローチャートであり、図5のステップS504の処理の詳細を示すフローチャートである。以下、第2の実施形態が第1の実施形態と異なる点を説明する。図7(B)は、図4のステップS404で、プロセッサ101が更新した使用状況テーブル124の例を示す図である。使用状況テーブル124は、各ブロックIDのブロック113を使用しているタスクと、各ブロックIDのブロック113の重みを示す。各ブロックIDのブロック113の重みは、再構成可能回路105内のブロック113の位置に応じて決まる。例えば、各ブロック113は、入出力インターフェース回路111に対して、通信距離が短いほど通信時間が短い。したがって、各ブロック113の重みは、各ブロック113から入出力インターフェース回路111までの通信距離が短いほど、大きくなる。また、各ブロック113の重みは、各ブロック113からメモリコントローラ112までの通信距離が短いほど、大きくしてもよい。
ステップS701では、プロセッサ101は、使用状況テーブル124を参照し、各タスクが使用しているブロック113の重みを読み出す。次に、ステップS702では、プロセッサ101は、上記の各タスクが使用しているブロック113の重みの総和に対して補正係数を乗算することにより、各タスクのリソース優先度133を算出する。次に、ステップS703では、プロセッサ101は、各タスクのタスク優先度に対して、各タスクのリソース優先度133を加算する。
以上のように、プロセッサ101は、プロセッサ101のタスクを実現する回路を動的に再構成可能な再構成可能回路105を制御する。また、プロセッサ101は、複数のタスクを実現する回路をそれぞれ再構成可能回路105に再構成する際に、複数のタスクをそれぞれ実現する回路の再構成可能回路105にかかるコストに基づいて、複数のタスクのタイムシェアリングの割り当て時間又は複数のタスクの優先処理順位を決定する。上記の再構成可能回路105にかかるコストは、複数のタスクをそれぞれ実現する回路の再構成可能回路105内の位置である。本実施形態によれば、コストが高い回路の動作を早期に終了させることができるので、次のタスクの待機時間を短縮し、再構成可能回路105の使用効率を向上させることができる。
(第3の実施形態)
図8(A)は、第3の実施形態によるプロセッサ101の処理を示すフローチャートであり、図5のステップS504の処理の詳細を示すフローチャートである。以下、第3の実施形態が第1の実施形態と異なる点を説明する。図2(A)のように、各ブロック113は、リソースとして、メモリ201とDSP202とロジック回路203を有する。図8(B)は、図4のステップS404で、プロセッサ101が更新した使用状況テーブル124の例を示す図である。使用状況テーブル124は、各ブロックIDのブロック113を使用しているタスクと、各ブロックIDのブロック113内のロジック回路203の数、メモリ201の数、及びDSP202の数を示す。複数のブロック113は、それぞれ、ロジック回路203の数、メモリ201の数、及びDSP202の数が異なる。メインメモリ104は、図8(C)に示すように、ロジック回路203の重みw1、メモリ201の重みw2、及びDSP202の重みw3を記憶する。このように、本実施形態では、ブロック113が保有するリソースに重みを付与し、動作を早期に終了させたいリソースの重みを大きくする。
ステップS801では、プロセッサ101は、使用状況テーブル124を参照し、各タスクが使用しているブロック113のリソース数を読み出す。具体的には、プロセッサ101は、タスク毎に、各タスクが使用しているブロック113のロジック回路203の数の総和と、メモリ201の数の総和と、DSP202の数の総和を読み出す。次に、ステップS802では、プロセッサ101は、タスク毎に、上記の各タスクが使用しているブロック113のロジック回路203の数の総和にロジック回路203の重みw1を乗算し、上記の各タスクが使用しているブロック113のメモリ201の数の総和にメモリ201の重みw2を乗算し、上記の各タスクが使用しているブロック113のDSP202の数の総和にDSP202の重みw3を乗算し、それらの乗算結果を加算する。そして、プロセッサ101は、タスク毎に、その加算結果に対して補正係数を乗算することにより、各タスクのリソース優先度133を算出する。次に、ステップS803では、プロセッサ101は、各タスクのタスク優先度に対して、各タスクのリソース優先度133を加算する。
以上のように、プロセッサ101は、プロセッサ101のタスクを実現する回路を動的に再構成可能な再構成可能回路105を制御する。また、プロセッサ101は、複数のタスクを実現する回路をそれぞれ再構成可能回路105に再構成する際に、複数のタスクをそれぞれ実現する回路の再構成可能回路105にかかるコストに基づいて、複数のタスクのタイムシェアリングの割り当て時間又は複数のタスクの優先処理順位を決定する。上記の再構成可能回路105にかかるコストは、複数のタスクをそれぞれ実現する回路が使用するリソースの種類である。本実施形態によれば、コストが高い回路の動作を早期に終了させることができるので、次のタスクの待機時間を短縮し、再構成可能回路105の使用効率を向上させることができる。
(第4の実施形態)
図9は、第4の実施形態によるプロセッサ101の処理を示すフローチャートである。図9のフローチャートは、図4のフローチャートに対して、ステップS903及びS905の処理を追加したものである。以下、第4の実施形態が第2及び第3の実施形態と異なる点を説明する。本実施形態では、再構成可能回路105にブロック113の空きがないために待ちキュー300で待機しているタスクがある場合、その待機しているタスクが使用したいリソースの重みが大きくなるように、重みを動的に変更する。
ステップS901では、プロセッサ101は、アプリケーション121によるタスクが再構成可能回路105をアクセラレータとして使用するか否かを判定する。そして、プロセッサ101は、再構成可能回路105を使用する場合には、ステップS902に処理を進め、再構成可能回路105を使用しない場合には、処理を終了する。
ステップS902では、プロセッサ101は、待ちキュー300内のタスクを実現する回路を再構成可能回路105内のブロック113に再構成するために十分なブロック113の空きがあるか否かを判定する。そして、プロセッサ101は、その十分なブロック113の空きがない場合には、ステップS903に処理を進め、その十分なブロック113の空きがある場合には、ステップS904に処理を進める。
ステップS903では、プロセッサ101は、待ちキュー300で待機しているタスクが使用したいリソースの重みを変更する。例えば、待機しているタスクがメモリを使用するタスクであり、再構成可能回路105内に十分なメモリ201の空きがない場合には、プロセッサ101は、図8(C)のメモリの重みw2が大きくなるように変更する。また、待機しているタスクが入出力インターフェース回路111の通信量が多いタスクである場合には、プロセッサ101は、入出力インターフェース回路111に近いブロック113の重みが大きくなるように、図7(B)の重みを変更する。また、また、待機しているタスクがメモリコントローラ112によるアクセス数が多いタスクである場合には、プロセッサ101は、メモリコントローラ112に近いブロック113の重みが大きくなるように、図7(B)の重みを変更する。なお、プロセッサ101は、エクスパイアキュー304で待機しているタスクが使用したいリソースの重みを変更してもよい。
その後、プロセッサ101は、ステップS902に処理を戻す。上記のように、リソースの重みを変更することにより、待機しているタスクが必要とするリソースの処理を早期に終了させ、そのリソースを空き状態にすることができるので、タスクの待機時間を短縮することができる。
ステップS904では、プロセッサ101は、待ちキュー300内のタスクを実現する回路を再構成可能回路105内のブロック113に再構成するように制御する。そして、プロセッサ101は、待ちキュー300内のタスクをアクティブキュー303に移動する。
次に、ステップS905では、プロセッサ101は、ステップS903で変更したリソースの重みを元の値に戻す。
次に、ステップS906では、プロセッサ101は、上記の再構成に応じて、使用状況テーブル124を更新する。具体的には、プロセッサ101は、使用状況テーブル124に、各ブロックIDのブロック113を使用しているタスクを記録する。
以上のように、本実施形態によれば、プロセッサ101は、待機しているタスクに応じて、再構成可能回路105にかかるコストの重みを動的に変化させる。これにより、待機しているタスクが必要とするリソースの処理を早期に終了させ、そのタスクの待機時間を短縮させることができる。
本実施形態は、プロセッサ(コンピュータ)101がプログラムを実行することによって実現することができる。また、上記のプログラムを記録したコンピュータ読み取り可能な記録媒体及び上記のプログラム等のコンピュータプログラムプロダクトも本発明の実施形態として適用することができる。記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
100 処理装置
101 プロセッサ
102 入出力ブリッジ回路
103 メモリインターフェース回路
104 メインメモリ
105 再構成可能回路
111 入出力インターフェース回路
112 メモリコントローラ
113 ブロック

Claims (8)

  1. コンピュータのタスクを実現する回路を動的に再構成可能な再構成可能回路を制御するプロセッサであって、
    複数のタスクを実現する回路をそれぞれ前記再構成可能回路に再構成する際に、前記複数のタスクをそれぞれ実現する回路の前記再構成可能回路にかかるコストに基づいて、前記複数のタスクのタイムシェアリングの割り当て時間又は前記複数のタスクの優先処理順位を決定する決定部を有することを特徴とするプロセッサ。
  2. 前記再構成可能回路にかかるコストは、前記複数のタスクをそれぞれ実現する回路の前記再構成可能回路内の使用面積であることを特徴とする請求項1記載のプロセッサ。
  3. 前記再構成可能回路は、回路を再構成可能な複数のブロックを有し、
    前記再構成可能回路にかかるコストは、前記複数のタスクをそれぞれ実現する回路の前記再構成可能回路内の使用ブロック数であることを特徴とする請求項1又は2記載のプロセッサ。
  4. 前記再構成可能回路にかかるコストは、前記複数のタスクをそれぞれ実現する回路の前記再構成可能回路内の位置であることを特徴とする請求項1記載のプロセッサ。
  5. 前記再構成可能回路にかかるコストは、前記複数のタスクをそれぞれ実現する回路が使用するリソースの種類であることを特徴とする請求項1記載のプロセッサ。
  6. さらに、待機しているタスクに応じて、前記再構成可能回路にかかるコストの重みを変化させる処理をコンピュータに実行させる請求項1、4及び5のいずれか1項に記載のプロセッサ。
  7. プロセッサのタスクを実現する回路を動的に再構成可能な再構成可能回路を制御する制御方法であって、
    前記プロセッサにより、複数のタスクを実現する回路をそれぞれ前記再構成可能回路に再構成する際に、前記複数のタスクをそれぞれ実現する回路の前記再構成可能回路にかかるコストに基づいて、前記複数のタスクのタイムシェアリングの割り当て時間又は前記複数のタスクの優先処理順位を決定する、
    ことを特徴とする再構成可能回路の制御方法。
  8. プロセッサのタスクを実現する回路を動的に再構成可能な再構成可能回路を制御するプログラムであって、
    複数のタスクを実現する回路をそれぞれ前記再構成可能回路に再構成する際に、前記複数のタスクをそれぞれ実現する回路の前記再構成可能回路にかかるコストに基づいて、前記複数のタスクのタイムシェアリングの割り当て時間又は前記複数のタスクの優先処理順位を決定する処理をコンピュータに実行させることを特徴とするプログラム。
JP2015251934A 2015-12-24 2015-12-24 プロセッサ、再構成可能回路の制御方法及びプログラム Expired - Fee Related JP6669961B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015251934A JP6669961B2 (ja) 2015-12-24 2015-12-24 プロセッサ、再構成可能回路の制御方法及びプログラム
US15/290,071 US10162795B2 (en) 2015-12-24 2016-10-11 Processor for changing weight of costs needed in reconfigurable circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015251934A JP6669961B2 (ja) 2015-12-24 2015-12-24 プロセッサ、再構成可能回路の制御方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2017117204A true JP2017117204A (ja) 2017-06-29
JP6669961B2 JP6669961B2 (ja) 2020-03-18

Family

ID=59087100

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015251934A Expired - Fee Related JP6669961B2 (ja) 2015-12-24 2015-12-24 プロセッサ、再構成可能回路の制御方法及びプログラム

Country Status (2)

Country Link
US (1) US10162795B2 (ja)
JP (1) JP6669961B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021157482A (ja) * 2020-03-26 2021-10-07 Kddi株式会社 スケジューリング方法、およびスケジューリング装置

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11188497B2 (en) 2018-11-21 2021-11-30 SambaNova Systems, Inc. Configuration unload of a reconfigurable data processor
US10831507B2 (en) 2018-11-21 2020-11-10 SambaNova Systems, Inc. Configuration load of a reconfigurable data processor
US10698853B1 (en) 2019-01-03 2020-06-30 SambaNova Systems, Inc. Virtualization of a reconfigurable data processor
US11386038B2 (en) 2019-05-09 2022-07-12 SambaNova Systems, Inc. Control flow barrier and reconfigurable data processor
US11055141B2 (en) 2019-07-08 2021-07-06 SambaNova Systems, Inc. Quiesce reconfigurable data processor
US11809908B2 (en) 2020-07-07 2023-11-07 SambaNova Systems, Inc. Runtime virtualization of reconfigurable data flow resources
US11782729B2 (en) 2020-08-18 2023-10-10 SambaNova Systems, Inc. Runtime patching of configuration files
US11327771B1 (en) 2021-07-16 2022-05-10 SambaNova Systems, Inc. Defect repair circuits for a reconfigurable data processor
US11409540B1 (en) 2021-07-16 2022-08-09 SambaNova Systems, Inc. Routing circuits for defect repair for a reconfigurable data processor
US11556494B1 (en) 2021-07-16 2023-01-17 SambaNova Systems, Inc. Defect repair for a reconfigurable data processor for homogeneous subarrays
US11487694B1 (en) 2021-12-17 2022-11-01 SambaNova Systems, Inc. Hot-plug events in a pool of reconfigurable data flow resources

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005505030A (ja) * 2001-09-14 2005-02-17 インテル コーポレイション 複数のハードウェア構成を有する再構成可能なハードウェア・アーキテクチャにおけるスケジューリング方法
JP2010079726A (ja) * 2008-09-26 2010-04-08 Fujitsu Ltd 動的再構成支援プログラム、動的再構成支援装置および動的再構成支援方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001202236A (ja) * 2000-01-20 2001-07-27 Fuji Xerox Co Ltd プログラマブル論理回路装置によるデータ処理方法、プログラマブル論理回路装置、情報処理システム、プログラマブル論理回路装置への回路再構成方法
JP4909588B2 (ja) 2005-12-28 2012-04-04 日本電気株式会社 情報処理装置及び再構成デバイスの利用方法
US20080201713A1 (en) * 2007-02-16 2008-08-21 Pivotal Labs, Inc. Project Management System
JP5277615B2 (ja) 2007-11-22 2013-08-28 富士ゼロックス株式会社 データ処理装置及びデータ処理プログラム
US8745626B1 (en) * 2012-12-17 2014-06-03 Throughputer, Inc. Scheduling application instances to configurable processing cores based on application requirements and resource specification
KR101893982B1 (ko) * 2012-04-09 2018-10-05 삼성전자 주식회사 분산 처리 시스템, 분산 처리 시스템의 스케줄러 노드 및 스케줄 방법, 및 이를 위한 프로그램 생성 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005505030A (ja) * 2001-09-14 2005-02-17 インテル コーポレイション 複数のハードウェア構成を有する再構成可能なハードウェア・アーキテクチャにおけるスケジューリング方法
JP2010079726A (ja) * 2008-09-26 2010-04-08 Fujitsu Ltd 動的再構成支援プログラム、動的再構成支援装置および動的再構成支援方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021157482A (ja) * 2020-03-26 2021-10-07 Kddi株式会社 スケジューリング方法、およびスケジューリング装置
JP7273383B2 (ja) 2020-03-26 2023-05-15 Kddi株式会社 スケジューリング方法、およびスケジューリング装置

Also Published As

Publication number Publication date
JP6669961B2 (ja) 2020-03-18
US10162795B2 (en) 2018-12-25
US20170185564A1 (en) 2017-06-29

Similar Documents

Publication Publication Date Title
JP6669961B2 (ja) プロセッサ、再構成可能回路の制御方法及びプログラム
US9965322B2 (en) Scheduling tasks in a distributed processing system with both reconfigurable and configurable processors
KR102281739B1 (ko) 리소스 스케줄링 방법, 스케줄링 서버, 클라우드 컴퓨팅 시스템, 및 저장 매체
US20200201763A1 (en) Memory hierarchy-aware processing
US10831536B2 (en) Task scheduling using improved weighted round robin techniques
JP6966432B2 (ja) クラウドファイル処理方法および装置
US10409350B2 (en) Instruction optimization using voltage-based functional performance variation
CN107391508B (zh) 数据加载方法和系统
TW201805809A (zh) 用於異構並行結構的細細微性功率最佳化
JP2012181578A (ja) 更新制御装置及びプログラム
US10671429B2 (en) Circuit assignment within reconfigurable device based on predicted shortest processing completion time
US20180232143A1 (en) Burst buffer dynamic logical volume sizing in high performance computing environment
KR102238600B1 (ko) 스케쥴러 컴퓨팅 장치, 그것을 포함하는 분산 컴퓨팅 시스템의 데이터 노드 및 그것의 방법
KR20210098508A (ko) 칩 동작 주파수의 설정
US9766946B2 (en) Selecting processor micro-threading mode
JP6228318B2 (ja) 計算機及び計算機システム
JP6368452B2 (ja) 非同期のデバイスによって実行されるタスクのスケジューリングの向上
US20190045010A1 (en) Method and system for optimizing cloud storage services
US20220083390A1 (en) Computing device and method
WO2015047289A1 (en) Infrastructure migration tool
JP5780331B1 (ja) 情報処理装置及び情報処理プログラム
JP6870390B2 (ja) 仮想基盤にもとづくシステムにおけるリソース割当方法、接続管理サーバおよび接続管理プログラム
JP6339978B2 (ja) リソース割当管理装置およびリソース割当管理方法
US11182314B1 (en) Low latency neural network model loading
JP7080698B2 (ja) 情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180912

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190722

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190730

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190924

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191203

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200115

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200210

R150 Certificate of patent or registration of utility model

Ref document number: 6669961

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees