JP2021157482A - Scheduling method and scheduling device - Google Patents

Scheduling method and scheduling device Download PDF

Info

Publication number
JP2021157482A
JP2021157482A JP2020056884A JP2020056884A JP2021157482A JP 2021157482 A JP2021157482 A JP 2021157482A JP 2020056884 A JP2020056884 A JP 2020056884A JP 2020056884 A JP2020056884 A JP 2020056884A JP 2021157482 A JP2021157482 A JP 2021157482A
Authority
JP
Japan
Prior art keywords
time
processes
order
fpga
task queue
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
JP2020056884A
Other languages
Japanese (ja)
Other versions
JP7273383B2 (en
Inventor
圭介 黒木
Keisuke Kuroki
圭介 黒木
力 佐々木
Tsutomu Sasaki
力 佐々木
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.)
KDDI Corp
Original Assignee
KDDI Corp
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 KDDI Corp filed Critical KDDI Corp
Priority to JP2020056884A priority Critical patent/JP7273383B2/en
Publication of JP2021157482A publication Critical patent/JP2021157482A/en
Application granted granted Critical
Publication of JP7273383B2 publication Critical patent/JP7273383B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

To provide a scheduling method and a scheduling device that make schedules in consideration of time when circuit information of a process to be performed is set in an FPGA when the FPGA is used in a plurality of processes in a time division manner.SOLUTION: A scheduling method by which an FPGA is used in a time division manner in a plurality of processes of one or more virtual communication apparatuses includes the steps of: confirming processes set in a task queue; acquiring preprocessing time when binary files of the set processes are set in the FPGA; when a plurality of processes are set in the task queue, determining the order of the processes to be executed; setting in the FPGA the binary file of a process whose execution order has arrived according to the determined order, and executing the binary file. The order of processes or the predetermined time when a process is set and executed is determined based on the preprocessing time for each process.SELECTED DRAWING: Figure 3

Description

本発明は、FPGAを時分割で利用するスケジューリング方法、およびスケジューリング装置に関する。 The present invention relates to a scheduling method and a scheduling device that utilize FPGA in a time division manner.

ネットワーク通信機器において、NFV(Network Function Virtualization)などに代表されるように仮想化技術を用いて、通信機器を実現する事例が増えてきている。仮想化の技術には、仮想マシンよりも軽量なコンテナ技術を用いて通信機器を実現する事例も増えてきている。 In network communication equipment, there are an increasing number of cases where communication equipment is realized by using virtualization technology as represented by NFV (Network Function Virtualization). As for virtualization technology, there are an increasing number of cases where communication devices are realized by using container technology, which is lighter than virtual machines.

一方で、仮想化技術は専用に作られたハードウェアではなく、汎用のサーバ上などで動作するため、これまでASIC(Application Specific Integrated Circuit)などで処理されてきた通信機器の機能が汎用CPU(Central Processing Unit)上で処理されることにより、処理速度の低下などの問題も顕在化し、CPUの代わりにGPU(Graphics Processing Unit)やFPGA(Field Programmable Gate Array)などに一部の処理をオフロードし、その問題解決の1つとして利用させる事例も増えてきている。 On the other hand, since virtualization technology operates on a general-purpose server, etc., rather than dedicated hardware, the functions of communication devices that have been processed by ASICs (Application Specific Integrated Circuits), etc., are the functions of general-purpose CPUs (general-purpose CPUs). By processing on the Central Processing Unit), problems such as a decrease in processing speed become apparent, and some processing is offloaded to GPU (Graphics Processing Unit) or FPGA (Field Programmable Gate Array) instead of CPU. However, the number of cases where it is used as one of the solutions to the problem is increasing.

FPGAを様々な機能で利用することを考えた場合、単純にはそれぞれの機能で利用するための回路情報を作成し、その回路情報を設定したFPGAを様々な機能分だけ用意すればよいが、特にコンテナなどで通信機器を構成し、機能(コンテナ)の種類が膨大になった場合に、その手法は費用がかかりすぎる。 When considering the use of FPGA for various functions, it is sufficient to simply create circuit information for use in each function and prepare FPGAs for which the circuit information is set for various functions. In particular, when a communication device is configured with a container or the like and the types of functions (containers) become enormous, the method is too expensive.

一般にはFPGAを複数のプロセス(コンテナ)で共有する場合には、物理的に領域を分割するか、利用時間を分割(時分割)させるかの手法が考えられるが、前者は1つのプロセスで利用する回路規模が大きくなった場合に、やはりコストがかかるのと、後者は例えばCPUのタスクスケジューリング方式などは単純に利用すると問題がでる。 Generally, when FPGA is shared by multiple processes (containers), a method of physically dividing the area or dividing the usage time (time division) can be considered, but the former is used by one process. When the scale of the circuit to be used becomes large, the cost is still high, and the latter has a problem if, for example, the task scheduling method of the CPU is simply used.

特許文献1は、サービスとしてのFPGAへのアクセスを提供するための仕組みが開示されている。共用のFPGA使用のためのプロビジョニング管理などが記述されている。ユーザからFPGAの回路内容である設計パッケージを受け取ると、管理ペイロードを付与し、更に管理ペイロードに適合するユーザキーを付与してコンパイルすることで、ユーザの認証や利用の開始・終了を管理し、サービスとして複数のユーザにFPGAを共有させることができる。 Patent Document 1 discloses a mechanism for providing access to FPGA as a service. It describes provisioning management for using shared FPGA. When a design package, which is the circuit content of the FPGA, is received from the user, a management payload is attached, and a user key that matches the management payload is assigned and compiled to manage user authentication and start / end of use. The FPGA can be shared by a plurality of users as a service.

特表2015−507234号公報Special Table 2015-507234

しかし、複数のプロセスによる共有となると、一つ一つの利用時間が短いため、特許文献1記載の方法は、そのような場合の管理手法としては利用できない。また、CPUのタスクスケジューリングを単純に利用する場合に生じ得る問題とは、例えば、ラウンドロビン方式において論ずることができる。図2(a)はある時点で、タスクキューに入っているプロセスを示している。プロセス時間とは、FPGA上で実行される機能の実行開始から終了までの時間である。例えば、これらのプロセスをタイムクォンタム5のラウンドロビン方式で実行した場合、図2(b)のように実行され、「プロセス−い」は実行がいつまでも終わらないことになる。これは、FPGAはサーバのホスト上に置かれているコンパイルされた回路情報のバイナリファイルをFPGAに設定する時間(例えば、OpenCLで言えば、clCreateProgramWithBinary, clCreateKernelの実行時間)を要するため、プロセス時間のみだけでなく、その前処理の時間を測定し、それを考慮に入れる必要があるためである。 However, when sharing by a plurality of processes, the usage time of each one is short, so that the method described in Patent Document 1 cannot be used as a management method in such a case. Further, the problem that may occur when the task scheduling of the CPU is simply used can be discussed in, for example, the round robin method. FIG. 2A shows a process in the task queue at some point in time. The process time is the time from the start to the end of execution of the function executed on the FPGA. For example, when these processes are executed by the time-quantum 5 round-robin method, they are executed as shown in FIG. 2 (b), and the execution of "process-i" is indefinite. This is because FPGA requires time to set the binary file of compiled circuit information placed on the host of the server to FPGA (for example, execution time of clCreateProgramWithBinary, clCreateKernel in OpenCL), so only the process time. Not only because it is necessary to measure the time of its pretreatment and take it into account.

本発明は、このような事情に鑑みてなされたものであり、複数のプロセスでFPGAを時分割で利用する場合において、実行するプロセスの回路情報をFPGAに設定する時間を考慮してスケジューリングさせるスケジューリング方法、およびスケジューリング装置を提供することを目的とする。 The present invention has been made in view of such circumstances, and when the FPGA is used in a plurality of processes in a time-divided manner, scheduling is performed in consideration of the time for setting the circuit information of the process to be executed in the FPGA. It is an object of the present invention to provide a method and a scheduling device.

(1)上記の目的を達成するため、本発明は、以下のような手段を講じた。すなわち、本発明の方法は、1または複数の仮想通信機器の複数のプロセスでFPGAを時分割で利用するスケジューリング方法であって、タスクキューにセットされている前記プロセスを確認するステップと、セットされている前記プロセスのバイナリファイルが前記FPGAに設定される前処理時間を取得するステップと、前記タスクキューに複数の前記プロセスがセットされている場合、実行する前記プロセスの順序を決定するステップと、前記決定された順序に従い、実行する順序が到来した前記プロセスのバイナリファイルを前記FPGAに設定し実行するステップと、を含み、前記プロセスの順序または前記プロセスを設定し実行する所定の時間は、前記プロセスごとの前処理時間に基づいて決定される。 (1) In order to achieve the above object, the present invention has taken the following measures. That is, the method of the present invention is a scheduling method in which the FPGA is used in a plurality of processes of one or a plurality of virtual communication devices in a time-divided manner, and is set with a step of confirming the process set in the task queue. A step of acquiring the preprocessing time set in the FPGA for the binary file of the process, and a step of determining the order of the processes to be executed when a plurality of the processes are set in the task queue. The order of the processes or the predetermined time for setting and executing the processes includes the steps of setting and executing the binary files of the processes that have arrived in the order of execution according to the determined order in the FPGA. Determined based on pre-processing time for each process.

これにより、複数のプロセスでFPGAを時分割で利用する場合において、実行するプロセスの回路情報をFPGAに設定する時間(前処理時間)を考慮してスケジューリングさせることができる。 As a result, when the FPGA is used in a plurality of processes in a time-division manner, it is possible to schedule the circuit information of the process to be executed in consideration of the time (preprocessing time) for setting the FPGA in the FPGA.

(2)また、本発明の方法は、前記プロセスの順序または前記所定の時間を決定する方法を示すポリシの設定要求を受け付け、設定するステップを有し、前記プロセスの順序または前記所定の時間は、設定された前記ポリシおよび前記プロセスごとの前処理時間に基づいて決定される。 (2) Further, the method of the present invention has a step of accepting and setting a policy setting request indicating a method for determining the order of the processes or the predetermined time, and the order of the processes or the predetermined time is defined as the process. , Determined based on the set policy and pretreatment time for each process.

これにより、設定したポリシごとに異なる観点でプロセスの順序またはプロセスを設定し実行する所定の時間を決定できる。 This makes it possible to determine the order of processes or the predetermined time for setting and executing processes from different viewpoints for each set policy.

(3)また、本発明の方法において、前記所定の時間は、前記プロセスごとの前処理時間とすべての前記プロセスに同一のタイムクォンタムとの和として前記プロセスごとに決定される。 (3) Further, in the method of the present invention, the predetermined time is determined for each process as the sum of the pretreatment time for each process and the same time quantum for all the processes.

このように、前処理時間+タイムクォンタムを割当時間とすることで、前処理時間が長いプロセスがあっても、タイムクォンタムの分だけ実際の処理時間として与えられるので、終了しない処理が発生することはない。また、全てのプロセスでプロセス時間(実際の処理時間)が等しくなるため、実質的な意味での割当時間は公平になる。 In this way, by setting the pre-processing time + time quantum as the allocated time, even if there is a process with a long pre-processing time, the actual processing time is given by the time quantum, so processing that does not end occurs. There is no. Moreover, since the process time (actual processing time) is equal in all processes, the allocation time in a practical sense is fair.

(4)また、本発明の方法は、前記前処理時間を取得するステップにおいて、前記プロセスごとのプロセス時間をさらに取得し、前記プロセスの順序は、前記プロセスごとの前処理時間とプロセス時間との和である初回プロセス時間に基づいて決定される。 (4) Further, in the method of the present invention, in the step of acquiring the pretreatment time, the process time for each process is further acquired, and the order of the processes is the pretreatment time and the process time for each process. Determined based on the sum of the initial process times.

このように、前処理時間とプロセス時間を足し合わせた初回プロセス時間に基づいてプロセスの順序を決定することで、前処理時間を考慮しない方法よりターンアラウンドタイムを小さくできる。 In this way, by determining the process order based on the initial process time, which is the sum of the preprocessing time and the process time, the turnaround time can be reduced as compared with the method in which the preprocessing time is not considered.

(5)また、本発明の方法において、前記タスクキューにセットされている複数の前記プロセスに同一のプロセスが含まれる場合、前記同一のプロセスを連続して実行する場合に限定して、それぞれのプロセスの前記初回プロセス時間を算出する。 (5) Further, in the method of the present invention, when the same process is included in the plurality of processes set in the task queue, each of them is limited to the case where the same process is continuously executed. Calculate the initial process time of the process.

このように、プロセスの順序をプロセスごとの前処理時間とプロセス時間との和である初回プロセス時間に基づいて決定する方法において、タスクキューに同一のプロセスが複数入っていた場合は、同一のプロセスを連続して実行する場合に限定して前処理時間を算出することで、より適切なプロセスの順序を設定できる。 In this way, in the method of determining the order of processes based on the initial process time, which is the sum of the preprocessing time and the process time for each process, if the same process is contained in the task queue more than once, the same process By calculating the preprocessing time only when the above is executed continuously, a more appropriate process order can be set.

(6)また、本発明の方法は、複数の前記プロセスの順序の制約を示す順序情報を取得するステップを有し、前記プロセスの順序は、取得した前記ポリシ、前記プロセスごとの前処理時間、および前記順序情報に基づいて決定される。 (6) Further, the method of the present invention includes a step of acquiring order information indicating a plurality of restrictions on the order of the processes, and the order of the processes includes the acquired policy, the pretreatment time for each process, and the like. And it is determined based on the above-mentioned order information.

これにより、プロセスに順序の制約がある場合も、取得したポリシ、プロセスごとの前処理時間、および順序情報に基づいて適切なプロセスの順序を設定できる。 As a result, even if the process has an order constraint, an appropriate process order can be set based on the acquired policy, the preprocessing time for each process, and the order information.

(7)また、本発明の方法は、複数の前記プロセスの優先度の高さを示す優先度情報を取得するステップを有し、前記プロセスの順序は、取得した前記ポリシ、前記プロセスごとの前処理時間、および前記優先度情報に基づいて決定される。 (7) Further, the method of the present invention includes a step of acquiring priority information indicating the high priority of the plurality of processes, and the order of the processes is the acquired policy and the pre-process for each process. It is determined based on the processing time and the priority information.

これにより、プロセスに優先度がある場合も、取得したポリシ、プロセスごとの前処理時間、および優先度情報に基づいて適切なプロセスの順序を設定できる。 As a result, even if the processes have priorities, the appropriate process order can be set based on the acquired policy, the preprocessing time for each process, and the priority information.

(8)また、本発明の方法において、前記タスクキューにセットされている複数の前記プロセスに前記優先度情報が同一のプロセスが含まれる場合、前記優先度情報が同一のプロセスごとに前記プロセスの順序が決定される。 (8) Further, in the method of the present invention, when a plurality of the processes set in the task queue include a process having the same priority information, the process of the process having the same priority information is included in the process. The order is determined.

これにより、プロセスに優先度があり、さらに同一の優先度を有するプロセスがある場合も、取得したポリシ、プロセスごとの前処理時間、および優先度情報に基づいて適切なプロセスの順序を設定できる。 As a result, even if the processes have priorities and there are processes having the same priority, it is possible to set an appropriate process order based on the acquired policy, the preprocessing time for each process, and the priority information.

(9)また、本発明の方法において、前記タスクキューにセットされている前記プロセスの実行中に、実行中の前記プロセスの前記優先度情報よりも優先度の高い前記優先度情報を有する他のプロセスが前記タスクキューにセットされた場合、実行中の前記プロセスの実行を中断し、前記他のプロセスの実行後に、中断した前記プロセスの実行を再開する。 (9) Further, in the method of the present invention, another other having the priority information having a higher priority than the priority information of the running process during the execution of the process set in the task queue. When a process is set in the task queue, the execution of the running process is interrupted, and after the execution of the other process, the execution of the interrupted process is resumed.

これにより、プロセスの実行中に優先度の高いプロセスを割り込ませることができ、取得したポリシ、プロセスごとの前処理時間、および優先度情報に基づいて適切なプロセスの順序を設定できる。 As a result, a high-priority process can be interrupted during the execution of the process, and an appropriate process order can be set based on the acquired policy, the preprocessing time for each process, and the priority information.

(10)また、本発明の方法は、過去の一定の時間内に実行された前記プロセスの現在の実行される可能性の高さを示す待機順位情報を取得するステップを有し、前記FPGAを利用する前記プロセスが存在しないときに、前記待機順位情報に基づいて選択された前記プロセスのバイナリファイルを前記FPGAにあらかじめ設定する。 (10) Further, the method of the present invention includes a step of acquiring standby order information indicating the current high possibility of execution of the process executed within a certain time in the past, and the FPGA is used. When the process to be used does not exist, the binary file of the process selected based on the standby order information is preset in the FPGA.

これにより、次回設定される可能性の高いプロセスのバイナリファイルをあらかじめFPGAに設定し待機させることができ、予想が的中した場合に前処理時間を短縮できる。 As a result, the binary file of the process that is likely to be set next time can be set in the FPGA in advance and waited, and the preprocessing time can be shortened when the prediction is correct.

(11)また、本発明のスケジューリング装置は、1または複数の仮想通信機器の複数のプロセスでFPGAを時分割で利用させるスケジューリング装置であって、前記プロセスの実行命令を格納するタスクキューと、前記タスクキューにセットされている前記プロセスを確認し、前記タスクキューに複数の前記プロセスがセットされている場合、実行する前記プロセスの順序を決定し、前記決定された順序に従い、実行する順序が到来した前記プロセスのバイナリファイルの前記FPGAへの設定を依頼し、設定されたバイナリファイルを実行するスケジュール部と、前記スケジュール部に依頼された前記プロセスのバイナリファイルを前記FPGAに設定するバイナリ設定部と、セットされている前記プロセスのバイナリファイルが前記FPGAに設定される前処理時間を取得する前処理測定部と、を備え、前記プロセスの順序または前記プロセスを設定し実行する所定の時間は、前記プロセスごとの前処理時間に基づいて決定される。 (11) Further, the scheduling device of the present invention is a scheduling device that uses FPGA in a plurality of processes of one or a plurality of virtual communication devices in a time-divided manner, and includes a task queue for storing execution instructions of the processes and the above. Check the processes set in the task queue, and if a plurality of the processes are set in the task queue, determine the order of the processes to be executed, and the order of execution arrives according to the determined order. A schedule unit that requests the setting of the binary file of the process to the FPGA and executes the set binary file, and a binary setting unit that sets the binary file of the process requested by the schedule unit to the FPGA. The set binary file of the process includes a preprocessing measuring unit for acquiring the preprocessing time set in the FPGA, and the order of the processes or a predetermined time for setting and executing the process is described as described above. Determined based on pre-processing time for each process.

これにより、複数のプロセスでFPGAを時分割で利用する場合において、実行するプロセスの回路情報をFPGAに設定する時間(前処理時間)を考慮してスケジューリングさせることができる。 As a result, when the FPGA is used in a plurality of processes in a time-division manner, it is possible to schedule the circuit information of the process to be executed in consideration of the time (preprocessing time) for setting the FPGA in the FPGA.

本発明によれば、複数のプロセスでFPGAを時分割で利用する場合において、実行するプロセスの回路情報をFPGAに設定する時間を考慮してスケジューリングさせることで、通常、時分割の使用に対応していないFPGAであっても時分割で使用することができ、コストを増加させないでFPGAのリソースを効率よく使用できる。 According to the present invention, when FPGA is used in time division in a plurality of processes, the use of time division is usually supported by scheduling the circuit information of the process to be executed in consideration of the time to be set in FPGA. Even if the FPGA is not used, it can be used in a time division manner, and the FPGA resources can be used efficiently without increasing the cost.

本実施形態に係るスケジューリング方法およびスケジューリング装置の基となる、コンテナ技術を用いた通信機器の仮想化およびコンテナ技術とFPGAとの関係の概念の一例を示す図である。It is a figure which shows an example of the concept of the virtualization of the communication equipment using the container technology, which is the basis of the scheduling method and the scheduling apparatus which concerns on this embodiment, and the relationship between a container technology and an FPGA. 従来方法のプロセスの具体例を示す表、およびそれに対する割当時間を示す概念図である。It is a table which shows the specific example of the process of the conventional method, and is the conceptual diagram which shows the allocation time with respect to it. 第1の実施形態に係るスケジューリング装置の概略構成の一例を示すブロック図である。It is a block diagram which shows an example of the schematic structure of the scheduling apparatus which concerns on 1st Embodiment. (a)、(b)それぞれ、DBに保存される情報の例を示す表である。(A) and (b) are tables showing examples of information stored in the DB, respectively. 第2の実施形態に係るスケジューリング装置の概略構成の一例を示すブロック図である。It is a block diagram which shows an example of the schematic structure of the scheduling apparatus which concerns on 2nd Embodiment. 第2の実施形態に係るスケジューリング装置の動作の一例を示すフローチャートである。It is a flowchart which shows an example of the operation of the scheduling apparatus which concerns on 2nd Embodiment. 第2の実施形態に係るスケジューリング装置の動作の一例を示すフローチャートである。It is a flowchart which shows an example of the operation of the scheduling apparatus which concerns on 2nd Embodiment. (a)、(b)それぞれ、実施例1のプロセスの具体例を示す表、およびそれに対する割当時間を示す概念図である。Each of (a) and (b) is a table showing a specific example of the process of the first embodiment, and a conceptual diagram showing the allocated time for the table. 実施例1のプロセスの具体例を示す表である。It is a table which shows the specific example of the process of Example 1. 図9に示されるプロセスの具体例に対する実施例1の割当時間を示す概念図である。It is a conceptual diagram which shows the allocation time of Example 1 with respect to the specific example of the process shown in FIG. (a)〜(c)それぞれ、第2の実施例のプロセスの具体例を示す表、通常の最短ジョブ優先方式の順序を示す概念図、および本発明の最短ジョブ優先方式の順序を示す概念図である。(A) to (c) are a table showing a specific example of the process of the second embodiment, a conceptual diagram showing the order of the usual shortest job priority method, and a conceptual diagram showing the order of the shortest job priority method of the present invention, respectively. Is. (a)、(b)それぞれ、第3の実施例のプロセスの具体例を示す表、および本発明の最短ジョブ優先方式の順序を示す概念図である。(A) and (b) are a table showing a specific example of the process of the third embodiment, and a conceptual diagram showing the order of the shortest job priority method of the present invention, respectively. (a)、(b)それぞれ、第3の実施例のプロセスの具体例を示す表、および本発明の最短ジョブ優先方式の順序を示す概念図である。(A) and (b) are a table showing a specific example of the process of the third embodiment, and a conceptual diagram showing the order of the shortest job priority method of the present invention, respectively. 実施例3のスケジューリング装置の動作の一例を示すフローチャートである。It is a flowchart which shows an example of the operation of the scheduling apparatus of Example 3. FIG. 第4の実施例のプロセスの具体例を示す表である。It is a table which shows the specific example of the process of 4th Example. 図15に示されるプロセスの具体例に対する第4の実施例の順序と割当時間を示す概念図である。FIG. 5 is a conceptual diagram showing the order and allotted time of the fourth embodiment with respect to the specific example of the process shown in FIG. 図15に示されるプロセスの具体例に対する第4の実施例の順序と割当時間を示す概念図である。FIG. 5 is a conceptual diagram showing the order and allotted time of the fourth embodiment with respect to the specific example of the process shown in FIG. 第4の実施例の変形例のプロセスの具体例を示す表である。It is a table which shows the specific example of the process of the modification of the 4th Example. (a)、(b)それぞれ、第5の実施例のプロセスの具体例を示す表、および順序と割当時間を示す概念図である。(A) and (b) are a table showing a specific example of the process of the fifth embodiment, and a conceptual diagram showing an order and an allotted time, respectively. 第6の実施例のプロセスの具体例を示す表である。It is a table which shows the specific example of the process of 6th Example.

本発明者らは、複数のプロセスでFPGAを時分割で利用する場合において、実行するプロセスの回路情報をFPGAに設定する時間を考慮してスケジューリングさせることで、通常、時分割の使用に対応していないFPGAであっても時分割で使用することができることを見出し、本発明をするに至った。 When the FPGA is used in time division in a plurality of processes, the present inventors usually cope with the use of time division by scheduling the circuit information of the process to be executed in consideration of the time to be set in the FPGA. We have found that even an FPGA that has not been used can be used in a time-division manner, and have come to the present invention.

すなわち、本発明の方法は、1または複数の仮想通信機器の複数のプロセスでFPGAを時分割で利用するスケジューリング方法であって、タスクキューにセットされている前記プロセスを確認するステップと、セットされている前記プロセスのバイナリファイルが前記FPGAに設定される前処理時間を取得するステップと、前記タスクキューに複数の前記プロセスがセットされている場合、実行する前記プロセスの順序を決定するステップと、前記決定された順序に従い、実行する順序が到来した前記プロセスのバイナリファイルを前記FPGAに設定し実行するステップと、を含み、前記プロセスの順序または前記プロセスを設定し実行する所定の時間は、前記プロセスごとの前処理時間に基づいて決定される。 That is, the method of the present invention is a scheduling method in which the FPGA is used in a plurality of processes of one or a plurality of virtual communication devices in a time-divided manner, and is set with a step of confirming the process set in the task queue. A step of acquiring the preprocessing time set in the FPGA for the binary file of the process, and a step of determining the order of the processes to be executed when a plurality of the processes are set in the task queue. The order of the processes or the predetermined time for setting and executing the processes includes the steps of setting and executing the binary files of the processes that have arrived in the order of execution according to the determined order in the FPGA. Determined based on pre-processing time for each process.

これにより、本発明者らは、通常、時分割の使用に対応していないFPGAであっても時分割で使用することができ、コストを増加させないでFPGAのリソースを効率よく使用できることを可能とした。以下、本発明の実施形態について、図面を参照しながら具体的に説明する。説明の理解を容易にするため、各図面において同一の構成要素に対しては同一の参照番号を付し、重複する説明は省略する。 As a result, the present inventors can normally use FPGAs that do not support the use of time division in time division, and can efficiently use the resources of FPGA without increasing the cost. bottom. Hereinafter, embodiments of the present invention will be specifically described with reference to the drawings. In order to facilitate understanding of the description, the same reference number is assigned to the same component in each drawing, and duplicate description is omitted.

[コンテナ技術とFPGAとの関係の概念]
図1は、本実施形態に係るスケジューリング方法およびスケジューリング装置の基となる、コンテナ技術を用いた通信機器の仮想化およびコンテナ技術とFPGAとの関係の概念の一例を示す図である。仮想通信機器は、1つ以上のコンテナで構成されて動作している。それぞれのコンテナは、1つ以上のプロセスの集合として構成されている。仮想通信機器は、例えば、ルータ、ファイアウォール、基地局、モバイルコア等が考えられるが、これに限定されるわけではない。プロセスとは、仮想通信機器の行なう処理を1つまたは複数の機能ごとに分割したものである。例えば、仮想通信機器がルータである場合、パケットをフィルタリングする機能、通信プロトコルを管理する機能等がプロセスとして考えられるが、これに限定されるわけではない。
[Concept of the relationship between container technology and FPGA]
FIG. 1 is a diagram showing an example of the concept of virtualization of communication equipment using the container technology and the relationship between the container technology and the FPGA, which is the basis of the scheduling method and the scheduling device according to the present embodiment. A virtual communication device is composed of one or more containers and operates. Each container is organized as a set of one or more processes. The virtual communication device may be, for example, a router, a firewall, a base station, a mobile core, or the like, but is not limited thereto. A process is a process obtained by dividing a process performed by a virtual communication device into one or a plurality of functions. For example, when the virtual communication device is a router, a function of filtering packets, a function of managing a communication protocol, and the like can be considered as processes, but the process is not limited to this.

個々のプロセスは、ハードウェアリソースを消費することで実行されるが、プロセスごとに消費するリソースには違いがある。例えば、図1の「プロセス−え」はCPUを利用して実行されることを表している。一方、図1の「プロセス−あ」、「プロセス−い」、および「プロセス−う」は、FPGAに設定されるプロセスごとの回路設定であるバイナリファイルを介して、FPGAを利用して実行されることを表している。図1は、「プロセス−あ」、「プロセス−い」、および「プロセス−う」が、それぞれ「バイナリ−A」、「バイナリ−B」、および「バイナリ−C」というFPGAに設定される回路設定と対応していることを表している。 Individual processes are executed by consuming hardware resources, but there are differences in the resources consumed by each process. For example, "process-e" in FIG. 1 indicates that it is executed using a CPU. On the other hand, "process-a", "process-i", and "process-u" in FIG. 1 are executed using the FPGA via a binary file which is a circuit setting for each process set in the FPGA. It represents that. In FIG. 1, circuits in which "process-a", "process-i", and "process-u" are set in FPGAs "binary-A", "binary-B", and "binary-C", respectively. Indicates that it corresponds to the setting.

このように、1つのFPGAは、1つのバイナリファイルが設定された場合、そのバイナリファイルに対応するプロセスの実行に対して使用され、他のバイナリファイルに対応するプロセスの実行に対して同時に使用されることはない。また、そのFPGAが他のバイナリファイルに対応するプロセスの実行に使用される場合、そのバイナリファイルを新たに設定して、その後使用される。すなわち、本発明において、1つのFPGAが異なるプロセスに対して使用される場合、時分割で使用される。なお、FPGAは、それぞれのFPGAごとに管理されるため、複数存在していてもよい。 In this way, one FPGA is used for the execution of the process corresponding to the binary file when one binary file is set, and is used simultaneously for the execution of the process corresponding to the other binary file. There is nothing. Also, when the FPGA is used to execute a process corresponding to another binary file, the binary file is newly set and then used. That is, in the present invention, when one FPGA is used for different processes, it is used in time division. Since each FPGA is managed, a plurality of FPGAs may exist.

[第1の実施形態]
(スケジューリング装置の構成)
図3は、本実施形態に係るスケジューリング装置の概略構成の一例を示すブロック図である。図3では1つのサーバ10内での実装を説明しているが、それぞれの要素が別のサーバで実装されていてもよい。「プロセス−あ」は、ある仮想化されたネットワーク機器のプロセスを示している。FPGA20はサーバ内に実装されたFPGAであり、サーバ10内に1つのFPGAが実装された例で説明を行う。スケジューリング装置100は、タスクキュー110、スケジュール部120、バイナリ設定部130、および前処理測定部140によって構成されている。
[First Embodiment]
(Scheduling device configuration)
FIG. 3 is a block diagram showing an example of a schematic configuration of the scheduling device according to the present embodiment. Although the implementation in one server 10 is described in FIG. 3, each element may be implemented in another server. "Process-A" indicates the process of a virtualized network device. The FPGA 20 is an FPGA mounted in the server, and an example in which one FPGA is mounted in the server 10 will be described. The scheduling device 100 is composed of a task queue 110, a schedule unit 120, a binary setting unit 130, and a preprocessing measurement unit 140.

タスクキュー110は、FPGA20によって処理を行うプロセスの実行命令を格納する場所であり、タスクキュー110に格納された命令をポリシに沿って実行していく。ポリシとは、プロセスの実行順序や実行時間の決め方の基準である。例えば、公平性重視やターンアラウンドタイムの縮小重視などの基準がある。本実施形態では、ポリシはあらかじめ設定されているものとする。 The task queue 110 is a place for storing execution instructions of a process to be processed by the FPGA 20, and executes the instructions stored in the task queue 110 according to the policy. Policy is a standard for determining the execution order and execution time of processes. For example, there are criteria such as emphasizing fairness and emphasizing reduction of turnaround time. In this embodiment, it is assumed that the policy is set in advance.

スケジュール部120は、タスクキュー110にセットされているプロセスを確認する。なお、本実施形態では、スケジュール部120が定期的にタスクキュー110を確認する例で説明しているが、タスクキュー110にプロセスがセットされたタイミングでスケジュールをスタートさせてもよい。 The schedule unit 120 confirms the process set in the task queue 110. In the present embodiment, the schedule unit 120 periodically confirms the task queue 110, but the schedule may be started at the timing when the process is set in the task queue 110.

タスクキュー110に複数のプロセスがセットされている場合、スケジュール部120は、実行するプロセスの順序を決定し、決定された順序に従い、バイナリ設定部130に対し、実行する順序が到来したプロセスのバイナリファイルのFPGA20への設定を依頼する。また、タスクキュー110に1つのプロセスがセットされている場合、スケジュール部120は、バイナリ設定部130に対し、そのプロセスのバイナリファイルのFPGA20への設定を依頼する。また、スケジュール部120は、FPGA20に設定されたバイナリファイルを実行する。 When a plurality of processes are set in the task queue 110, the schedule unit 120 determines the order of the processes to be executed, and according to the determined order, the binary setting unit 130 is notified of the binary of the process to be executed. Request the setting of the file to FPGA20. When one process is set in the task queue 110, the schedule unit 120 requests the binary setting unit 130 to set the binary file of the process in the FPGA 20. Further, the schedule unit 120 executes the binary file set in the FPGA 20.

プロセスの順序またはプロセスを設定し実行する所定の時間(割当時間)は、後述するプロセスごとの前処理時間に基づいて決定される。これにより、通常、時分割の使用に対応していないFPGAであっても時分割で使用することができ、コストを増加させないでFPGAのリソースを効率よく使用できる。 The order of processes or a predetermined time (allocated time) for setting and executing a process is determined based on the preprocessing time for each process described later. As a result, even an FPGA that does not normally support the use of time division can be used in time division, and the resources of the FPGA can be efficiently used without increasing the cost.

バイナリ設定部130は、スケジュール部120に依頼されたプロセスのバイナリファイルをFPGA20に設定する。本発明では、1つのプロセスに対応するFPGAの回路情報は事前にコンパイルされ、バイナリファイルとして管理される。各プロセスに対応するバイナリファイルは、DB50に保存される。バイナリ設定部130は、DB50から必要な情報を取得する。 The binary setting unit 130 sets the binary file of the process requested by the schedule unit 120 in the FPGA 20. In the present invention, the FPGA circuit information corresponding to one process is pre-compiled and managed as a binary file. The binary file corresponding to each process is stored in the DB 50. The binary setting unit 130 acquires necessary information from the DB 50.

前処理測定部140は、タスクキュー110にセットされているプロセスのバイナリファイルがFPGA20に設定される前処理時間を取得する。前処理時間は、あらかじめプロセスごとまたはバイナリファイルごとに設定されている値を取得してもよいが、バイナリファイルがFPGA20に設定されるごとに前処理測定部140が設定時間を測定して、測定した複数の値の平均値を前処理時間とすることが好ましい。これは、FPGAに対するバイナリファイルの設定は、その回路規模によって設定時間が異なるため、実際に設定する度に、どの程度の時間がかかるかを測定した方が、より現実的な前処理時間に基づいてプロセスの順序またはプロセスを設定し実行する所定の時間を決定することができるからである。 The preprocessing measurement unit 140 acquires the preprocessing time when the binary file of the process set in the task queue 110 is set in the FPGA 20. The preprocessing time may be a value set in advance for each process or for each binary file, but each time the binary file is set in the FPGA 20, the preprocessing measurement unit 140 measures the set time to measure it. It is preferable to set the average value of the plurality of values as the pretreatment time. This is because the setting time of the binary file for FPGA differs depending on the circuit scale, so it is more realistic to measure how long it takes each time you actually set it, based on the preprocessing time. This is because the order of processes or the predetermined time for setting and executing processes can be determined.

測定された設定時間はDB(データベース)50に送信され、DB50にはこれまでの測定値、それらの平均値、所定の測定回数分の平均値などのうち少なくとも1つが保持される。測定方法は限定されないが、例えば、スケジューリング装置100が、OpenCLに基づいて構成される場合、バイナリ設定時のclCreateProgramWithBinary,clCreateKernelの実行時間を前処理時間として測定することができる。 The measured set time is transmitted to the DB (database) 50, and the DB 50 holds at least one of the measured values so far, their average value, the average value for a predetermined number of measurements, and the like. The measuring method is not limited, but for example, when the scheduling device 100 is configured based on OpenCL, the execution time of clCreateProgramWithBinary and clCreateKernel at the time of setting the binary can be measured as the preprocessing time.

図4(a)、(b)は、それぞれDB50に保存される情報の例を示す表である。DB50は、プロセスごとのバイナリファイル、前処理測定部140で測定したプロセスごとの前処理時間、プロセスごとのプロセス時間、プロセスごとの前処理時間とプロセス時間を合計した初回処理時間(初回プロセス時間)などの情報が格納されている。また、後述する実施例で使用される複数のプロセスの順序の制約を示す順序情報、複数のプロセスの優先度の高さを示す優先度情報、過去の一定の時間内に実行されたプロセスの現在の実行される可能性の高さを示す待機順位情報などの様々なポリシに対応するために必要な情報が格納されていてもよい。また、DBに保存される情報は、必要に応じて更新される。 4 (a) and 4 (b) are tables showing examples of information stored in the DB 50, respectively. The DB 50 is a binary file for each process, the preprocessing time for each process measured by the preprocessing measurement unit 140, the process time for each process, and the initial processing time (initial process time) which is the sum of the preprocessing time and the process time for each process. Information such as is stored. In addition, order information indicating the order constraint of a plurality of processes used in the examples described later, priority information indicating the high priority of a plurality of processes, and the current state of processes executed within a certain time in the past. Information necessary for responding to various policies such as waiting order information indicating the high possibility of execution may be stored. In addition, the information stored in the DB is updated as needed.

[第2の実施形態]
(スケジューリング装置の構成)
図5は、本実施形態に係るスケジューリング装置の概略構成の一例を示すブロック図である。スケジューリング装置200は、タスクキュー110、スケジュール部120、バイナリ設定部130、前処理測定部140、およびポリシ設計部210によって構成されている。タスクキュー110、スケジュール部120、バイナリ設定部130、および前処理測定部140の機能は、第1の実施形態と同様であるため、説明は省略する。
[Second Embodiment]
(Scheduling device configuration)
FIG. 5 is a block diagram showing an example of a schematic configuration of the scheduling device according to the present embodiment. The scheduling device 200 is composed of a task queue 110, a schedule unit 120, a binary setting unit 130, a preprocessing measurement unit 140, and a policy design unit 210. Since the functions of the task queue 110, the schedule unit 120, the binary setting unit 130, and the preprocessing measurement unit 140 are the same as those in the first embodiment, the description thereof will be omitted.

ポリシ設計部210は、プロセスの順序またはプロセスのバイナリファイルをFPGA20に設定し実行する所定の時間を決定する方法を示すポリシを設定する。ポリシ設計部210は、プロセススケジューリングの際に何を重視するかを、ユーザが設定要求する機能部であり、例えば、公平性重視やターンアラウンドタイムの縮小重視などが設定される。 The policy design unit 210 sets a policy that indicates how to set the process sequence or the binary file of the process in the FPGA 20 to determine a predetermined time to execute. The policy design unit 210 is a functional unit that requires the user to set what to prioritize in process scheduling. For example, emphasis on fairness and emphasis on reduction of turnaround time are set.

スケジューリング装置200は、ポリシ設計部210を備えることで、ユーザが重視するポリシを設定することができ、FPGA20に処理させるプロセスや処理量に応じたポリシをユーザが選択することができる。 By including the policy design unit 210, the scheduling device 200 can set the policy to be emphasized by the user, and the user can select the policy according to the process to be processed by the FPGA 20 and the processing amount.

(動作の一例の説明)
次に、本実施形態に係るスケジューリング装置の動作の一例を、図6および図7のフローチャートを用いて説明する。図6および図7は、本実施形態に係るスケジューリング装置の動作の一例を示すフローチャートである。
(Explanation of an example of operation)
Next, an example of the operation of the scheduling device according to the present embodiment will be described with reference to the flowcharts of FIGS. 6 and 7. 6 and 7 are flowcharts showing an example of the operation of the scheduling device according to the present embodiment.

図6および図7は、スケジューリング装置を構成する各機能部、DB、およびユーザの設定要求を含む。DBからの情報の取得は、各機能部がそれぞれ受け持つ。まず、ユーザがスケジューリング装置にポリシの設定を要求する(ステップS1)。次に、ポリシ設計部は、設定するポリシに応じて考慮する時間を決定する(ステップS2)。考慮する時間(考慮時間)は、少なくとも前処理時間を含む。例えば、設定するポリシに応じて前処理時間、または前処理時間とプロセス時間を合わせた初回プロセス時間のいずれを考慮するかを決定することができる。考慮時間は、前処理時間に基づいて算出されていれば、ポリシごとにどのような時間を考慮時間としてもよい。次にポリシ設計部は、スケジュール部にポリシの設定(セット)を通知する(ステップS3)。 6 and 7 include setting requests of each functional unit, DB, and user constituting the scheduling device. Each functional unit is in charge of acquiring information from the DB. First, the user requests the scheduling device to set the policy (step S1). Next, the policy design unit determines the time to be considered according to the policy to be set (step S2). The time to be considered (considered time) includes at least the pretreatment time. For example, it is possible to determine whether to consider the preprocessing time or the initial process time including the preprocessing time and the process time according to the policy to be set. The consideration time may be any time for each policy as long as it is calculated based on the pretreatment time. Next, the policy design unit notifies the schedule unit of the policy setting (set) (step S3).

次に、スケジュール部はポリシの設定(セット)を受領し(ステップS4)、考慮時間を決定する(ステップS5)。その間、タスクキューにはプロセスがセットされる(ステップS6)。そして、タスクキューを確認し(ステップS7)、プロセスがセットされている場合(ステップS8−YES)、DBに考慮時間の値の確認をする(ステップS9)。DBは、考慮時間の値の確認メッセージを受領し(ステップS10)、値を返信する(ステップS11)。そして、スケジュール部は、考慮時間の値に基づいて、スケジュールの決定をする(ステップS12)。なお、考慮時間の値とは、少なくともセットされたプロセスに対応するバイナリファイルの前処理時間を含む。また、スケジュールの決定は、少なくともプロセスの実行する順序またはプロセスを設定し実行する所定の時間を決定することを含む。 Next, the schedule unit receives the policy setting (set) (step S4) and determines the consideration time (step S5). Meanwhile, the process is set in the task queue (step S6). Then, the task queue is confirmed (step S7), and when the process is set (step S8-YES), the value of the consideration time is confirmed in the DB (step S9). The DB receives the confirmation message of the value of the consideration time (step S10), and returns the value (step S11). Then, the schedule unit determines the schedule based on the value of the consideration time (step S12). The value of the consideration time includes at least the preprocessing time of the binary file corresponding to the set process. In addition, determining the schedule includes at least setting the order in which the processes are executed or determining the predetermined time for executing the processes.

また、タスクキューを確認し(ステップS7)、プロセスがセットされていない場合(ステップS8−NO)、ステップS7に戻り、再度タスクキューの確認をする。 Further, the task queue is confirmed (step S7), and if the process is not set (step S8-NO), the process returns to step S7 and the task queue is confirmed again.

スケジュールの決定の後、スケジュール部は、回路情報を変更するかどうかを判断し、変更する場合(ステップS13−YES)、バイナリ設定部に該当プロセスの回路の設定を指示する(ステップS14)。回路情報を変更するかどうかの判断は、実行しようとしているプロセスのバイナリファイルがFPGAに設定されているかどうかを確認し判断することであり、直接FPGAを確認してもよいが、前回の処理を確認するか、バイナリ設定部に問い合わせることが好ましい。また、該当プロセスの回路の設定とは、該当プロセスに対応するバイナリファイルの設定である。 After determining the schedule, the schedule unit determines whether or not to change the circuit information, and when changing (step S13-YES), instructs the binary setting unit to set the circuit of the corresponding process (step S14). The decision whether to change the circuit information is to check and judge whether the binary file of the process to be executed is set in the FPGA. You may check the FPGA directly, but the previous process is performed. It is preferable to check or contact the binary settings section. The circuit setting of the corresponding process is the setting of the binary file corresponding to the corresponding process.

バイナリ設定部は、該当プロセスの回路の設定の指示を受領(ステップS15)し、DBにプロセスの該当バイナリ(バイナリファイル)の確認をする(ステップS16)。DBは、バイナリ確認メッセージを受領(ステップS17)し、バイナリ設定部にバイナリ情報(バイナリファイル)の返信をする(ステップS18)。バイナリ設定部は、FPGAにバイナリを設定し(ステップS19)、前処理測定部にバイナリ設定時間の測定を依頼する(ステップS20)。 The binary setting unit receives the instruction for setting the circuit of the corresponding process (step S15), and confirms the corresponding binary (binary file) of the process in the DB (step S16). The DB receives the binary confirmation message (step S17) and returns the binary information (binary file) to the binary setting unit (step S18). The binary setting unit sets the binary in the FPGA (step S19), and requests the preprocessing measurement unit to measure the binary setting time (step S20).

前処理測定部は、バイナリ設定時間の測定依頼メッセージを受領し(ステップS21)、測定を開始する。そして、測定が完了(ステップS22)したら、DBに測定値を通知する(ステップS23)。DBは、測定値を受領し(ステップS24)、前処理時間の平均値の算出と格納をする(ステップS25)。 The preprocessing measurement unit receives the measurement request message for the binary set time (step S21), and starts the measurement. Then, when the measurement is completed (step S22), the measured value is notified to the DB (step S23). The DB receives the measured value (step S24), calculates and stores the average value of the preprocessing time (step S25).

一方、バイナリ設定部は、バイナリ設定完了(ステップS26)後、スケジュール部に該当プロセスの回路設定完了を通知する(ステップS27)。スケジュール部は、該当プロセスの回路設定完了通知を受領し(ステップS28)、該当プロセスの実行をする(ステップS29)。実行後、全てのプロセスが完了したかを判断し、完了した場合(ステップS30−YES)、終了する。終了後、ポリシの変更をしない場合、ステップS7に戻ってタスクキューの確認をするように動作してもよい。 On the other hand, after the binary setting is completed (step S26), the binary setting unit notifies the schedule unit of the completion of the circuit setting of the corresponding process (step S27). The schedule unit receives the circuit setting completion notification of the corresponding process (step S28), and executes the corresponding process (step S29). After execution, it is determined whether all the processes have been completed, and if so, the process ends (step S30-YES). If the policy is not changed after the end, the process may be performed to return to step S7 and check the task queue.

また、スケジュール部は、全てのプロセスが完了したかを判断し、完了していない場合(ステップS30−NO)、ステップS13に戻り、回路情報を変更するかを判断する。 Further, the schedule unit determines whether all the processes have been completed, and if not completed (step S30-NO), returns to step S13 and determines whether to change the circuit information.

また、スケジュール部は、ステップS13で回路情報を変更するかどうかを判断し、変更しない場合(ステップS13−NO)、該当プロセスの実行をする(ステップS29)。 Further, the schedule unit determines whether or not to change the circuit information in step S13, and if it does not change (step S13-NO), executes the corresponding process (step S29).

本実施形態に係るスケジューリング装置は、このようにして、動作することができる。なお、第1の実施形態に係るスケジューリング装置も、ポリシ設計部がないだけで、それ以外は同様の動作をすることができる。なお、上記の動作説明は、動作の一例を説明したものであり、本発明は、これに限定されるわけではない。 The scheduling device according to the present embodiment can operate in this way. The scheduling device according to the first embodiment can also perform the same operation except that it does not have a policy design unit. The above description of the operation is an example of the operation, and the present invention is not limited thereto.

第1の実施形態および第2の実施形態の上記の説明では、説明が理解されやすいように、スケジューリング装置がハードウェアで実装されている例で説明したが、上記のフローチャートの説明で理解されるように、本発明は、スケジューリング装置の一部または全部がソフトウェアで実装されることが可能である。また、本発明は、1のソフトウェアとしてだけではなく、1または複数のサーバ上に実装された複数の機能の要素間で実行される処理方法として実装されることが可能である。以下の実施例も同様である。 In the above description of the first embodiment and the second embodiment, the scheduling device is implemented in hardware for easy understanding, but it is understood by the description of the above flowchart. As such, the present invention allows some or all of the scheduling devices to be implemented in software. Further, the present invention can be implemented not only as one software but also as a processing method executed between elements of a plurality of functions implemented on one or a plurality of servers. The same applies to the following examples.

[実施例]
次に実施例を説明する。以下の実施例では、プロセス間の公平性を重視して各プロセスにFPGAを割り当てる時間を決定する、いわゆるラウンドロビン方式と、ターンアラウンドタイムを小さくする、いわゆる最短ジョブ優先方式に基づいた方法を採用した場合の実施例を説明するが、本発明は、これに限定されるわけではない。各プロセスで利用する回路データのバイナリファイルを、時分割でFPGAに設定する際に、FPGAへの設定時間(前処理時間)を考慮したスケジューリングをする方法は、本発明に含まれる。
[Example]
Next, an embodiment will be described. In the following examples, a method based on the so-called round robin method, in which the time for allocating FPGA to each process is determined with an emphasis on fairness between processes, and the so-called shortest job priority method, in which the turnaround time is reduced, are adopted. However, the present invention is not limited to this. The present invention includes a method of scheduling a binary file of circuit data used in each process in consideration of the setting time (preprocessing time) in the FPGA when setting the binary file in the FPGA by time division.

(実施例1)
まず、公平性を重視する方法について説明する。ポリシ設計部に公平性重視が設定された場合は、スケジューリング装置は、プロセス間の割当時間を実質的に公平に割り当てることを重視することとする。この場合、スケジュール部は全プロセスに共通のタイムクウォンタムにプロセスごとの前処理時間を足したものを各プロセスに割り当てる時間とする。具体的な例として、図8(a)のプロセスをスケジュールする場合、および図9のプロセスをスケジュールする場合で説明する。図8(a)、(b)は、それぞれ、本実施例のプロセスの具体例を示す表および割当時間を示す概念図である。図9は、本実施例のプロセスの具体例を示す表である。図10は、図9に示されるプロセスの具体例に対する割当時間を示す概念図である。
(Example 1)
First, a method of emphasizing fairness will be described. When the policy design department is set to emphasize fairness, the scheduling device shall place importance on allocating the allocated time between processes substantially fairly. In this case, the schedule section sets the time to be allocated to each process by adding the preprocessing time for each process to the time quantum common to all processes. As a specific example, the case of scheduling the process of FIG. 8A and the case of scheduling the process of FIG. 9 will be described. 8 (a) and 8 (b) are a table showing a specific example of the process of this embodiment and a conceptual diagram showing an allotted time, respectively. FIG. 9 is a table showing a specific example of the process of this embodiment. FIG. 10 is a conceptual diagram showing the allocation time for the specific example of the process shown in FIG.

例えば、タイムクウォンタムを5として図8(a)のプロセスをスケジュールする場合、「プロセス−あ」には前処理時間2+タイムクォンタム5で割当時間7、「プロセス−い」には前処理時間5+タイムクォンタム5で割当時間10、「プロセス−う」には前処理時間4+タイムクォンタム5で割当時間9を割り当てることをスケジュールし、図8(b)のように実行する。 For example, when the process of FIG. 8 (a) is scheduled with the time quantum as 5, the preprocessing time 2 + time quantum 5 is allocated time 7 for "process-a", and the preprocessing time 5 + time is set for "process-i". It is scheduled to allocate the allocation time 10 in the quantum 5 and the allocation time 9 in the preprocessing time 4 + the time quantum 5 in the “process”, and execute as shown in FIG. 8 (b).

また、プロセス時間が上記より長い例として、図9のプロセスをスケジュールする場合で説明する。例えば、タイムクウォンタムを上記と同様に5として、図9のプロセスをスケジュールする場合、「プロセス−あ」には前処理時間2+タイムクォンタム5で割当時間7、「プロセス−い」には前処理時間5+タイムクォンタム5で割当時間10、「プロセス−う」には前処理時間4+タイムクォンタム5で割当時間9を割り当てることをスケジュールし、図10のように実行する。 Further, as an example in which the process time is longer than the above, the case of scheduling the process of FIG. 9 will be described. For example, when the process of FIG. 9 is scheduled with the time quantum set to 5 in the same manner as above, the preprocessing time is 2 for "process-a" + the allocated time is 7 for time quantum 5, and the preprocessing time is set for "process-i". It is scheduled to allocate the allocation time 10 with 5 + time quantum 5 and the allocation time 9 with the preprocessing time 4 + time quantum 5 for "process-u", and execute as shown in FIG.

このように、前処理時間+タイムクォンタムを割当時間とすることで、前処理時間が長いプロセスがあっても、タイムクォンタムの分だけ実際の処理時間として与えられるので、図2(a)、(b)に示される例のように、終了しない処理が発生することはない。また、全てのプロセスでタイムクォンタム(実際の処理時間)が等しくなるため、実質的な意味での割当時間は公平になる。 By setting the preprocessing time + time quantum as the allocated time in this way, even if there is a process with a long preprocessing time, the actual processing time is given by the time quantum. As in the example shown in b), a process that does not end does not occur. In addition, since the time quantum (actual processing time) is equal in all processes, the allocated time in a practical sense is fair.

(実施例2)
次に、ターンアラウンドタイムを小さくする方法を説明する。ターンアラウンドタイムを小さくする代表的なスケジューリング方式として最短ジョブ優先方式がある。通常、最短ジョブ優先方式ではプロセス時間が最短であるものが優先して実行されるが、本発明では前処理時間とプロセス時間を足し合わせた初回プロセス時間が最短であるものが優先して実行される。
(Example 2)
Next, a method of reducing the turnaround time will be described. There is a shortest job priority method as a typical scheduling method that reduces the turnaround time. Normally, in the shortest job priority method, the one with the shortest process time is preferentially executed, but in the present invention, the one with the shortest initial process time, which is the sum of the preprocessing time and the process time, is preferentially executed. NS.

具体的な例として、図11(a)のプロセスをスケジュールする場合で説明する。図11(a)〜(c)は、それぞれ、本実施例のプロセスの具体例を示す表、通常の最短ジョブ優先方式の順序を示す概念図、および本発明の最短ジョブ優先方式の順序を示す概念図である。通常の最短ジョブ優先方式は、プロセス時間が最短であるものが優先して実行されるため、図11(a)のプロセスでは、図11(b)に示されるように、「プロセス−い」、「プロセス−う」、「プロセス−あ」の順序で実行される。この場合のターンアラウンドタイムは、(7+13+18)/3≒12.67となる。これに対し、本発明の最短ジョブ優先方式は、前処理時間とプロセス時間を足し合わせた初回プロセス時間が最短であるものが優先して実行される。そのため、図11(a)のプロセスでは、「プロセス−あ」、「プロセス−う」、「プロセス−い」の順序で実行される。この場合のターンアラウンドタイムは、(5+11+18)/3≒11.33となる。 As a specific example, the case of scheduling the process of FIG. 11A will be described. 11A to 11C show a table showing a specific example of the process of the present embodiment, a conceptual diagram showing the order of the usual shortest job priority method, and the order of the shortest job priority method of the present invention, respectively. It is a conceptual diagram. In the normal shortest job priority method, the one with the shortest process time is executed with priority. Therefore, in the process of FIG. 11 (a), as shown in FIG. 11 (b), "process-i", It is executed in the order of "process-u" and "process-a". The turnaround time in this case is (7 + 13 + 18) / 3≈12.67. On the other hand, in the shortest job priority method of the present invention, the one with the shortest initial process time, which is the sum of the preprocessing time and the process time, is preferentially executed. Therefore, in the process of FIG. 11A, the process is executed in the order of "process-a", "process-u", and "process-i". The turnaround time in this case is (5 + 11 + 18) / 3≈11.33.

このように、前処理時間とプロセス時間を足し合わせた初回プロセス時間が最短であるものを優先して実行することで、前処理時間を考慮しない方法よりターンアラウンドタイムを小さくできる。 In this way, by preferentially executing the process that has the shortest initial process time, which is the sum of the preprocessing time and the process time, the turnaround time can be reduced as compared with the method that does not consider the preprocessing time.

(実施例3)
次に、ターンアラウンドタイムを小さくする方法において、タスクキューに同一のプロセスが複数入っていた場合の方法を説明する。タスクキューにセットされている複数の前記プロセスに同一のプロセスが含まれる場合、同一のプロセスを連続して実行する場合に限定して、それぞれのプロセスの初回プロセス時間を算出することが好ましい。言い換えると、タスクキューに同一のプロセスが複数入っていた場合には、各プロセスの順番の組み合わせから、同一プロセスが連続しないものを除き、その他の組み合わせの、各プロセスが終了する時間をそれぞれ足し合わせ、その合計値が一番小さいパターンでスケジュールする。
(Example 3)
Next, in the method of reducing the turnaround time, a method when a plurality of the same processes are contained in the task queue will be described. When the same process is included in the plurality of processes set in the task queue, it is preferable to calculate the initial process time of each process only when the same process is executed consecutively. In other words, if there are multiple identical processes in the task queue, the time for each process to finish in other combinations is added, except for those in which the same process is not continuous, from the combination of the order of each process. , Schedule with the pattern with the smallest total value.

具体的な例として、図12(a)のプロセスをスケジュールする場合、および図13(a)のプロセスをスケジュールする場合で説明する。図12(a)、(b)は、それぞれ、本実施例のプロセスの具体例を示す表、および本発明の最短ジョブ優先方式の順序を示す概念図である。タスクキューに「プロセス−あ、い、い、う」がセットされているとする。このとき、2つの「プロセス−い」を連続して実行した場合のそれぞれのプロセスの初回プロセス時間を算出する。そうすると、「プロセス−あ」の初回プロセス時間は5、1つ目の「プロセス−い」の初回プロセス時間は7、2つ目の「プロセス−い」の初回プロセス時間は9、「プロセス−う」の初回プロセス時間は6となる。ただし、2つの「プロセス−い」は連続して実行される。このときの考えられる順番は、「いいあう」、「いいうあ」、「あいいう」、「ういいあ」、「うあいい」、「あういい」の6通りであるが、このうちターンアラウンドタイムが最小となる順番は、図11に示した「いいあう」であり、その値は12.5である。 As a specific example, the case of scheduling the process of FIG. 12 (a) and the case of scheduling the process of FIG. 13 (a) will be described. 12 (a) and 12 (b) are a table showing a specific example of the process of the present embodiment and a conceptual diagram showing the order of the shortest job priority method of the present invention, respectively. Suppose that "Process-A, I, I, U" is set in the task queue. At this time, the initial process time of each process when two "processes" are executed in succession is calculated. Then, the initial process time of "process-a" is 5, the initial process time of the first "process-i" is 7, the initial process time of the second "process-i" is 9, and "process-u". The initial process time is 6. However, the two "processes" are executed in succession. At this time, there are six possible orders: "good", "good", "good", "good", "good", and "good". The order in which the around time is minimized is "good match" shown in FIG. 11, and the value is 12.5.

一方、連続するプロセスは、最初に実行されるほうがターンアラウンドタイムが小さくなるとは限らない。図13(a)に示されるプロセスは、図12(a)の「プロセス−い」の前処理時間を10に変更したプロセスである。図13(a)に示されるプロセスをスケジュールする場合、考えられる順番は上記と同様に、「いいあう」、「いいうあ」、「あいいう」、「ういいあ」、「うあいい」、「あういい」の6通りであるが、このうちターンアラウンドタイムが最小となる順番は、図13(b)に示した「あういい」である。 On the other hand, continuous processes do not always have a smaller turnaround time when executed first. The process shown in FIG. 13 (a) is a process in which the preprocessing time of “process-i” in FIG. 12 (a) is changed to 10. When scheduling the process shown in FIG. 13 (a), the possible order is "good", "good", "good", "good", "good" in the same manner as above. , "Aui", of which the order in which the turnaround time is minimized is "Aui" shown in FIG. 13 (b).

(実施例3の動作の一例)
実施例3の動作の一例を図14のフローチャートを用いて説明する。図14は、実施例3のスケジューリング装置の動作の一例を示すフローチャートである。まず、タスクキューを確認する(ステップT1)。次に、タスクキューに同一プロセスが存在するかどうか確認し、同一プロセスが存在しない場合(ステップT2−NO)、初回プロセス時間が短い順に並び替え(ステップT3)、その順番でプロセスを実行し(ステップT8)、全てのプロセスが実行されたら終了する。
(Example of operation of Example 3)
An example of the operation of the third embodiment will be described with reference to the flowchart of FIG. FIG. 14 is a flowchart showing an example of the operation of the scheduling device of the third embodiment. First, the task queue is confirmed (step T1). Next, check whether the same process exists in the task queue, and if the same process does not exist (step T2-NO), sort in ascending order of initial process time (step T3), and execute the processes in that order (step T3). Step T8), when all the processes are executed, the process ends.

一方、タスクキューに同一プロセスが存在するかどうか確認し、同一プロセスが存在する場合(ステップT2−YES)、プロセスの順番のパターンを算出する(ステップT4)。次に、算出した順番のパターンから同一プロセスが連続しないものを除き(ステップT5)、算出された順番のパターンにおいて、それぞれのプロセス終了時間の合計値を算出する(ステップT6)。そして、算出した合計値の小さい順に並び替え(ステップT7)、その順番でプロセスを実行し(ステップT8)、全てのプロセスが実行されたら終了する。 On the other hand, it is confirmed whether or not the same process exists in the task queue, and if the same process exists (step T2-YES), the process order pattern is calculated (step T4). Next, the total value of each process end time is calculated in the calculated order patterns except that the same process is not continuous from the calculated order patterns (step T6). Then, the calculated total values are sorted in ascending order (step T7), the processes are executed in that order (step T8), and the process ends when all the processes are executed.

このように、ターンアラウンドタイムを小さくする方法において、タスクキューに同一のプロセスが複数入っていた場合も、前処理時間を考慮することで、ターンアラウンドタイムを小さくすることができる。 In this way, in the method of reducing the turnaround time, even if a plurality of the same processes are included in the task queue, the turnaround time can be reduced by considering the preprocessing time.

(実施例4)
FPGAの時分割を適用する際、プロセス間に順序の制約や優先度を考慮する場合においても、前処理時間などの考慮が活用できる。例えば、図15のように優先値(優先度情報)を設けることで、プロセス間の順序制約や優先度などを表現することができる。図15の例では、優先値が大きいほど優先することを示し、「プロセス−あ」および「プロセス−う」は、「プロセス−い」の後に実行することを示している。例えば、これをラウンドロビン、タイムクォンタム5で実行した場合、図16のように、タイムクォンタムに前処理時間を加算したものがそれぞれに割り当てられつつ、「プロセス−い」を先に実行することになる。
(Example 4)
When applying FPGA time division, consideration such as preprocessing time can be utilized even when considering order constraints and priorities between processes. For example, by providing priority values (priority information) as shown in FIG. 15, it is possible to express order constraints and priorities between processes. In the example of FIG. 15, it is shown that the higher the priority value is, the higher the priority is, and that "process-a" and "process-u" are executed after "process-i". For example, when this is executed in round robin and time quantum 5, as shown in FIG. 16, the time quantum plus the preprocessing time is assigned to each, and "process-i" is executed first. Become.

また、タスクキュー内のプロセスが図15の場合で、且つ最短ジョブ優先を行う場合は図17のように実行される。 Further, when the process in the task queue is shown in FIG. 15 and the shortest job priority is given, the process is executed as shown in FIG.

このように、プロセスに優先度がある場合のプロセスの順序は、設定されたポリシ、プロセスごとの前処理時間、および優先度情報に基づいて決定される。これにより、プロセスに優先度がある場合も、取得したポリシ、プロセスごとの前処理時間、および優先度情報に基づいて適切なプロセスの順序を設定できる。 In this way, when a process has a priority, the order of the processes is determined based on the set policy, the preprocessing time for each process, and the priority information. As a result, even if the processes have priorities, the appropriate process order can be set based on the acquired policy, the preprocessing time for each process, and the priority information.

また、タスクキューにセットされている複数のプロセスに優先度情報が同一のプロセスが含まれる場合、優先度情報が同一のプロセスごとにプロセスの順序が決定されることが好ましい。これにより、プロセスに優先度があり、さらに同一の優先度を有するプロセスがある場合も、取得したポリシ、プロセスごとの前処理時間、および優先度情報に基づいて適切なプロセスの順序を設定できる。 Further, when a plurality of processes set in the task queue include processes having the same priority information, it is preferable that the process order is determined for each process having the same priority information. As a result, even if the processes have priorities and there are processes having the same priority, it is possible to set an appropriate process order based on the acquired policy, the preprocessing time for each process, and the priority information.

(実施例4変形例)
なお、図15に示される優先値の場合、全てのプロセス間で同一の値を含め優先度の差異があり、これを用いて順序の制約を表すこともできるが、一部のプロセス間にのみ順序の制約を示す順序情報を設けてもよい。例えば、図18に示されるプロセスは、順序情報の数字の順序でプロセスが実行される必要があることを表し、「プロセス−あ」は「プロセス−い」の後に実行することを示し、「プロセス−う」は「プロセス−い」の前、「プロセス−い」と「プロセス−あ」の間、「プロセス−あ」の後の、どの段階で実行してもよいことを示している。
(Example 4 modified example)
In the case of the priority value shown in FIG. 15, there is a difference in priority including the same value among all processes, and this can be used to express an order constraint, but only between some processes. Order information indicating order restrictions may be provided. For example, the process shown in FIG. 18 indicates that the process needs to be executed in the numerical order of the order information, "process-a" indicates that it is executed after "process-i", and "process". "U" indicates that it may be executed at any stage before "process-i", between "process-i" and "process-a", and after "process-a".

このように、順序情報がある場合のプロセスの順序は、設定されたポリシ、プロセスごとの前処理時間、および順序情報に基づいて決定される。これにより、プロセスに順序の制約がある場合も、取得したポリシ、プロセスごとの前処理時間、および順序情報に基づいて適切なプロセスの順序を設定できる。 In this way, the order of the processes when there is order information is determined based on the set policy, the preprocessing time for each process, and the order information. As a result, even if the process has an order constraint, an appropriate process order can be set based on the acquired policy, the preprocessing time for each process, and the order information.

(実施例5)
プリエンプション(優先度の高いものがタスクキューに新たに到着した際に、実行中のプロセスを停止して、優先度の高いプロセスを実行すること)方式が選択される場合においても、FPGAの時分割適用には、前処理時間等の考慮が必要になる。例えば、最短ジョブ優先方式が選択され、さらに図19(a)のように「プロセス−い」が遅れて到着し、プリエンプションが行われる場合は図19(b)のように実行される。但し、本実施例は図6、7のフローチャートとは少し異なることに注意が必要である。図6、7のフローチャートに従うと、到着時間0の「プロセス−あ、う」を実行した後で、タスクキューの確認に行くので、「プロセス−い」の到着に気が付けない。
(Example 5)
FPGA time division even when the preemption method (stopping the running process and executing the high priority process when a new high priority arrives in the task queue) is selected. For application, it is necessary to consider the pretreatment time and the like. For example, when the shortest job priority method is selected, the "process-i" arrives with a delay as shown in FIG. 19A, and preemption is performed, the process is executed as shown in FIG. 19B. However, it should be noted that this embodiment is slightly different from the flowcharts of FIGS. 6 and 7. According to the flowcharts of FIGS. 6 and 7, after executing "process-a, u" with an arrival time of 0, the task queue is confirmed, so that the arrival of "process-i" is not noticed.

よって、図19(b)のように実行するには、タスクキューの定期確認を、プロセス実行とは独立して、実施するか、優先度の高いプロセスがタスクキューに入ったことを(タスクキューなど)別の機構がスケジュール部に知らせる必要がある。 Therefore, in order to execute as shown in FIG. 19B, periodical confirmation of the task queue is performed independently of the process execution, or a process having a high priority has entered the task queue (task queue). Etc.) Another mechanism needs to inform the schedule department.

(実施例6)
次に、FPGAを利用するプロセスが存在しない時間に、FPGAにいずれかの回路情報(バイナリファイル)を設定して待機しておくことで、プロセスの処理時間を短縮する方法を説明する。次に実行される、FPGAを利用するプロセスの回路情報をFPGAに設定し待機しておけば、前処理時間を削減することができる。
(Example 6)
Next, a method of shortening the process processing time by setting one of the circuit information (binary files) in the FPGA and waiting for the time when the process using the FPGA does not exist will be described. The preprocessing time can be reduced by setting the circuit information of the process that uses the FPGA to be executed next in the FPGA and waiting.

そこで新たに、DBに図20のような待機順位情報を設ける。これは、過去の一定の時間当たりでどのプロセスが何回呼ばれたかという情報を保持し、更にそれに前処理時間を乗じた値を重みとして保持している。この重みが大きいということは頻繁に利用される、またはボトルネックとなる前処理時間が大きいことを意味し、この順位が1位のものをFPGAの待機時間に設定する。また、この方式はFPGAが複数ある場合にも有用であり、例えば、FPGAが2枚ある場合には、1枚目に1位のバイナリを設定し、2枚目に2位のバイナリを設定して待機することで、より効率的にターンアラウンドタイムを小さくすることができる。なお、この方法は、ターンアラウンドタイムを小さくする方法において効果的に使用されるが、ラウンドロビンで実行される場合も、少なくとも初回の前処理時間が短縮される意味において効果を有する。 Therefore, the standby order information as shown in FIG. 20 is newly provided in the DB. This holds information about which process was called how many times in a certain time in the past, and holds a value obtained by multiplying it by the preprocessing time as a weight. When this weight is large, it means that the preprocessing time which is frequently used or becomes a bottleneck is large, and the one having the highest rank is set as the standby time of FPGA. This method is also useful when there are a plurality of FPGAs. For example, when there are two FPGAs, the first binary is set on the first and the second binary is set on the second. By waiting, the turnaround time can be reduced more efficiently. Although this method is effectively used in a method of reducing the turnaround time, it is also effective in the sense that at least the initial pretreatment time is shortened when it is executed in round robin.

以上説明したように、本発明のスケジューリング方法、およびスケジューリング装置は、複数のプロセスでFPGAを時分割で利用する場合において、実行するプロセスの回路情報をFPGAに設定する時間を考慮してスケジューリングさせることで、通常、時分割の使用に対応していないFPGAであっても時分割で使用することができ、コストを増加させないでFPGAのリソースを効率よく使用できる。 As described above, in the scheduling method and the scheduling device of the present invention, when the FPGA is used in a plurality of processes in a time-division manner, the scheduling is performed in consideration of the time for setting the circuit information of the process to be executed in the FPGA. Therefore, even an FPGA that does not normally support the use of time division can be used in time division, and the resources of the FPGA can be efficiently used without increasing the cost.

10 サーバ
20 FPGA
50 DB
100、200 スケジューリング装置
110 タスクキュー
120 スケジュール部
130 バイナリ設定部
140 前処理測定部
210 ポリシ設計部
10 server 20 FPGA
50 DB
100, 200 Scheduling device 110 Task queue 120 Schedule unit 130 Binary setting unit 140 Preprocessing measurement unit 210 Policy design unit

Claims (11)

1または複数の仮想通信機器の複数のプロセスでFPGAを時分割で利用するスケジューリング方法であって、
タスクキューにセットされている前記プロセスを確認するステップと、
セットされている前記プロセスのバイナリファイルが前記FPGAに設定される前処理時間を取得するステップと、
前記タスクキューに複数の前記プロセスがセットされている場合、実行する前記プロセスの順序を決定するステップと、
前記決定された順序に従い、実行する順序が到来した前記プロセスのバイナリファイルを前記FPGAに設定し実行するステップと、を含み、
前記プロセスの順序または前記プロセスを設定し実行する所定の時間は、前記プロセスごとの前処理時間に基づいて決定されることを特徴とする方法。
It is a scheduling method that uses FPGA in time division in multiple processes of one or more virtual communication devices.
A step to check the process set in the task queue and
The step of acquiring the preprocessing time when the set binary file of the process is set in the FPGA, and
When a plurality of the processes are set in the task queue, a step of determining the order of the processes to be executed and a step of determining the order of the processes to be executed.
Including the step of setting and executing the binary file of the process which has arrived in the order of execution according to the determined order in the FPGA.
A method characterized in that the order of the processes or a predetermined time for setting and executing the processes is determined based on the preprocessing time for each process.
前記プロセスの順序または前記所定の時間を決定する方法を示すポリシの設定要求を受け付け、設定するステップを有し、
前記プロセスの順序または前記所定の時間は、設定された前記ポリシおよび前記プロセスごとの前処理時間に基づいて決定されることを特徴とする請求項1記載の方法。
It has a step of accepting and setting a policy setting request indicating how to determine the order of the processes or the predetermined time.
The method according to claim 1, wherein the order of the processes or the predetermined time is determined based on the set policy and the pretreatment time for each process.
前記所定の時間は、前記プロセスごとの前処理時間とすべての前記プロセスに同一のタイムクォンタムとの和として前記プロセスごとに決定されることを特徴とする請求項1記載の方法。 The method according to claim 1, wherein the predetermined time is determined for each process as the sum of the pretreatment time for each process and the same time quantum for all the processes. 前記前処理時間を取得するステップにおいて、前記プロセスごとのプロセス時間をさらに取得し、
前記プロセスの順序は、前記プロセスごとの前処理時間とプロセス時間との和である初回プロセス時間に基づいて決定されることを特徴とする請求項1記載の方法。
In the step of acquiring the preprocessing time, the process time for each process is further acquired.
The method according to claim 1, wherein the order of the processes is determined based on the initial process time, which is the sum of the preprocessing time and the process time for each process.
前記タスクキューにセットされている複数の前記プロセスに同一のプロセスが含まれる場合、前記同一のプロセスを連続して実行する場合に限定して、それぞれのプロセスの前記初回プロセス時間を算出することを特徴とする請求項4記載の方法。 When the same process is included in a plurality of the processes set in the task queue, the initial process time of each process is calculated only when the same process is executed consecutively. The method according to claim 4, which is characterized. 複数の前記プロセスの順序の制約を示す順序情報を取得するステップを有し、
前記プロセスの順序は、設定された前記ポリシ、前記プロセスごとの前処理時間、および前記順序情報に基づいて決定されることを特徴とする請求項2記載の方法。
It has a step of acquiring order information indicating the order constraint of a plurality of the processes.
The method according to claim 2, wherein the order of the processes is determined based on the set policy, the pretreatment time for each process, and the order information.
複数の前記プロセスの優先度の高さを示す優先度情報を取得するステップを有し、
前記プロセスの順序は、設定された前記ポリシ、前記プロセスごとの前処理時間、および前記優先度情報に基づいて決定されることを特徴とする請求項2記載の方法。
It has a step of acquiring priority information indicating the high priority of a plurality of the processes.
The method according to claim 2, wherein the order of the processes is determined based on the set policy, the pretreatment time for each process, and the priority information.
前記タスクキューにセットされている複数の前記プロセスに前記優先度情報が同一のプロセスが含まれる場合、前記優先度情報が同一のプロセスごとに前記プロセスの順序が決定されることを特徴とする請求項7記載の方法。 When a plurality of the processes set in the task queue include processes having the same priority information, the claim is characterized in that the order of the processes is determined for each process having the same priority information. Item 7. The method according to item 7. 前記タスクキューにセットされている前記プロセスの実行中に、実行中の前記プロセスの前記優先度情報よりも優先度の高い前記優先度情報を有する他のプロセスが前記タスクキューにセットされた場合、実行中の前記プロセスの実行を中断し、前記他のプロセスの実行後に、中断した前記プロセスの実行を再開することを特徴とする請求項7または請求項8記載の方法。 When another process having the priority information having a higher priority than the priority information of the running process is set in the task queue during the execution of the process set in the task queue. The method according to claim 7 or 8, wherein the execution of the process being executed is interrupted, and after the execution of the other process, the execution of the interrupted process is resumed. 過去の一定の時間内に実行された前記プロセスの現在の実行される可能性の高さを示す待機順位情報を取得するステップを有し、
前記FPGAを利用する前記プロセスが存在しないときに、前記待機順位情報に基づいて選択された前記プロセスのバイナリファイルを前記FPGAにあらかじめ設定することを特徴とする請求項1から請求項9のいずれかに記載の方法。
It has a step of acquiring waiting order information indicating the current likelihood of execution of the process executed within a certain time in the past.
Any of claims 1 to 9, wherein a binary file of the process selected based on the standby order information is preset in the FPGA when the process using the FPGA does not exist. The method described in.
1または複数の仮想通信機器の複数のプロセスでFPGAを時分割で利用させるスケジューリング装置であって、
前記プロセスの実行命令を格納するタスクキューと、
前記タスクキューにセットされている前記プロセスを確認し、前記タスクキューに複数の前記プロセスがセットされている場合、実行する前記プロセスの順序を決定し、前記決定された順序に従い、実行する順序が到来した前記プロセスのバイナリファイルの前記FPGAへの設定を依頼し、設定されたバイナリファイルを実行するスケジュール部と、
前記スケジュール部に依頼された前記プロセスのバイナリファイルを前記FPGAに設定するバイナリ設定部と、
セットされている前記プロセスのバイナリファイルが前記FPGAに設定される前処理時間を取得する前処理測定部と、を備え、
前記プロセスの順序または前記プロセスを設定し実行する所定の時間は、前記プロセスごとの前処理時間に基づいて決定されることを特徴とするスケジューリング装置。
A scheduling device that allows FPGAs to be used in time division in multiple processes of one or more virtual communication devices.
A task queue that stores the execution instructions of the process,
The process set in the task queue is confirmed, and when a plurality of the processes are set in the task queue, the order of the processes to be executed is determined, and the order of execution is determined according to the determined order. A schedule unit that requests the setting of the incoming binary file of the process to the FPGA and executes the set binary file, and
A binary setting unit that sets the binary file of the process requested by the schedule unit in the FPGA, and
The binary file of the set process is provided with a preprocessing measurement unit for acquiring the preprocessing time set in the FPGA.
A scheduling apparatus characterized in that the order of the processes or a predetermined time for setting and executing the processes is determined based on the preprocessing time for each process.
JP2020056884A 2020-03-26 2020-03-26 Scheduling method and scheduling device Active JP7273383B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020056884A JP7273383B2 (en) 2020-03-26 2020-03-26 Scheduling method and scheduling device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020056884A JP7273383B2 (en) 2020-03-26 2020-03-26 Scheduling method and scheduling device

Publications (2)

Publication Number Publication Date
JP2021157482A true JP2021157482A (en) 2021-10-07
JP7273383B2 JP7273383B2 (en) 2023-05-15

Family

ID=77918439

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020056884A Active JP7273383B2 (en) 2020-03-26 2020-03-26 Scheduling method and scheduling device

Country Status (1)

Country Link
JP (1) JP7273383B2 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08137703A (en) * 1994-11-08 1996-05-31 Matsushita Electric Ind Co Ltd Task switching device
WO2007029421A1 (en) * 2005-09-05 2007-03-15 Nec Corporation Information processing device
JP2008152470A (en) * 2006-12-15 2008-07-03 Hitachi Ltd Data processing system and semiconductor integrated circuit
JP2016164752A (en) * 2015-03-06 2016-09-08 富士ゼロックス株式会社 Information processor
JP2017021488A (en) * 2015-07-08 2017-01-26 富士通株式会社 Control apparatus, control method, and program
JP2017117204A (en) * 2015-12-24 2017-06-29 富士通株式会社 Processor, reconfigurable circuit control method, and program

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08137703A (en) * 1994-11-08 1996-05-31 Matsushita Electric Ind Co Ltd Task switching device
WO2007029421A1 (en) * 2005-09-05 2007-03-15 Nec Corporation Information processing device
JP2008152470A (en) * 2006-12-15 2008-07-03 Hitachi Ltd Data processing system and semiconductor integrated circuit
JP2016164752A (en) * 2015-03-06 2016-09-08 富士ゼロックス株式会社 Information processor
JP2017021488A (en) * 2015-07-08 2017-01-26 富士通株式会社 Control apparatus, control method, and program
JP2017117204A (en) * 2015-12-24 2017-06-29 富士通株式会社 Processor, reconfigurable circuit control method, and program

Also Published As

Publication number Publication date
JP7273383B2 (en) 2023-05-15

Similar Documents

Publication Publication Date Title
US11934864B1 (en) System and method for controlled sharing of consumable resources in a computer cluster
US10628236B2 (en) System and method for inter-datacenter communication
US6763520B1 (en) Fair assignment of processing resources to queued requests
CN113454614A (en) System and method for resource partitioning in distributed computing
CN109564528B (en) System and method for computing resource allocation in distributed computing
US11102143B2 (en) System and method for optimizing resource utilization in a clustered or cloud environment
US20090100435A1 (en) Hierarchical reservation resource scheduling infrastructure
Rajavel et al. Achieving service level agreement in cloud environment using job prioritization in hierarchical scheduling
US20230037293A1 (en) Systems and methods of hybrid centralized distributive scheduling on shared physical hosts
CN110764887A (en) Task rescheduling method and system, and related equipment and device
CN116010064A (en) DAG job scheduling and cluster management method, system and device
Walraven et al. Adaptive performance isolation middleware for multi-tenant saas
Yao et al. Admission control in YARN clusters based on dynamic resource reservation
Hamzeh et al. A new approach to calculate resource limits with fairness in kubernetes
JP2021157482A (en) Scheduling method and scheduling device
CN113760549B (en) Pod deployment method and device
Peng et al. BQueue: A coarse-grained bucket QoS scheduler
JP2013206041A (en) Communication system and load distribution processing apparatus
CN114706663A (en) Computing resource scheduling method, medium and computing device
Yang et al. AutoAdmin: automatic and dynamic resource reservation admission control in Hadoop YARN clusters
Kurdi et al. An algorithm for handling starvation and resource rejection in public clouds
CA2316643C (en) Fair assignment of processing resources to queued requests
Alwaeli et al. Task Scheduling Algorithms in Cloud Computing
Kumar et al. Resource allocation for heterogeneous cloud computing using weighted fair-share queues
Chawla et al. A load balancing based improved task scheduling algorithm in cloud computing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220202

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230324

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230417

R150 Certificate of patent or registration of utility model

Ref document number: 7273383

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150