JP5631022B2 - Processing device, processing allocation method, and program - Google Patents
Processing device, processing allocation method, and program Download PDFInfo
- Publication number
- JP5631022B2 JP5631022B2 JP2010049315A JP2010049315A JP5631022B2 JP 5631022 B2 JP5631022 B2 JP 5631022B2 JP 2010049315 A JP2010049315 A JP 2010049315A JP 2010049315 A JP2010049315 A JP 2010049315A JP 5631022 B2 JP5631022 B2 JP 5631022B2
- Authority
- JP
- Japan
- Prior art keywords
- processing
- task
- executed
- processing means
- cpu
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
複数の処理を時分割で実行することが可能な処理装置に関するものである。 The present invention relates to a processing apparatus capable of executing a plurality of processes in a time division manner.
従来、タスクと呼ばれるプログラムの実行単位を並列に実行して、複数の機能を提供するデータ処理装置がある(例えば特許文献1、特許文献2)。CPUが一つである場合には、CPUが時分割で複数のタスクを実行するため、タスクの数が増大するのに従い、単位時間あたりにCPUで実行されるタスクの数は減少する。その結果、一つのタスクで行われる処理にかかる時間は長くなる。
Conventionally, there is a data processing device that executes a program execution unit called a task in parallel and provides a plurality of functions (for example,
複数のCPUあるいは単一パッケージに複数のCPUコアを実装したマルチコアプロセッサを用いて、複数のタスクを物理的に並列に実行することにより、単位時間あたりに実行されるタスクの数を増やす方法がある。 There is a method of increasing the number of tasks executed per unit time by executing a plurality of tasks physically in parallel using a multi-core processor in which a plurality of CPU cores are mounted on a plurality of CPUs or a single package. .
しかしながら、この方法でも、CPUの数を超える多数のタスクが存在する場合には、CPUが一つである場合と同様に、複数のCPUのそれぞれが時分割で複数のタスクを実行する。そのため、一つのタスクで行われる処理にかかる時間が長くなってしまうことがある。 However, even in this method, when there are a large number of tasks exceeding the number of CPUs, each of the plurality of CPUs executes a plurality of tasks in a time-sharing manner, as in the case of one CPU. For this reason, the time required for processing performed in one task may be increased.
データ処理装置の種類によっては、特定のタスクで行われる処理については、それにかかかる時間が長くなるのを避けたい場合がある。例えば、印刷ジョブに基づいて印刷を実行する印刷装置では、印刷ジョブから画像データを生成する処理に時間がかかってしまうと、印刷出力に時間がかかってしまう。従って、印刷ジョブから画像データを生成する処理にかかる時間が長くならないよう、多数のタスクが存在する場合でも、印刷ジョブから画像データを生成するタスクにはより多くの時間CPUを使えるようにしたい。 Depending on the type of data processing apparatus, there is a case where it is desired to avoid a long time for processing performed in a specific task. For example, in a printing apparatus that executes printing based on a print job, if it takes time to generate image data from the print job, it takes time to print out. Therefore, in order to prevent the time required for the process of generating image data from the print job from increasing, it is desired to use the CPU for a longer time for the task of generating image data from the print job, even when there are many tasks.
本発明はこのような課題を解決するため、その他の処理の実行を完全に停止してしまうことなく、特定の処理をより多く実行できるようにすることを目的とする。 In order to solve such a problem, an object of the present invention is to allow more specific processes to be executed without completely stopping the execution of other processes.
本発明に係わる処理装置は、複数の処理を時分割で実行することが可能な第1の処理手段と、複数の処理を時分割で実行することが可能な第2の処理手段と、実行すべき処理を前記第1の処理手段と前記第2の処理手段のそれぞれに割り当てる割り当て手段とを有し、実行すべき処理が予め決められた特定の処理である場合、前記割り当て手段は、前記第1の処理手段にすでに割り当てられている処理を前記第2の処理手段に割り当て直し、前記特定の処理を前記第1の処理手段に割り当て、前記特定の処理が終了するまで前記特定の処理ではない処理を前記第1の処理手段に新たに割り当てるのを制限することを特徴とする。 A processing apparatus according to the present invention executes a first processing means capable of executing a plurality of processes in a time division, a second processing means capable of executing a plurality of processes in a time division, and And assigning means for allocating the processing to be performed to each of the first processing means and the second processing means, and when the processing to be executed is a predetermined specific process, already a process that is assigned to a processing unit and assigned directly to the second processing means, allocating the specific processing to the first processing means, in the specific process until the particular processing is completed It is characterized by restricting newly assigning no processing to the first processing means .
また、本発明に係わる割り当て方法は、複数の処理を時分割で実行することが可能な第1の処理手段と複数の処理を時分割で実行することが可能な第2の処理手段とのそれぞれに実行すべき処理を割り当てる割り当て方法であって、実行すべき処理が予め決められた特定の処理である場合、前記第1の処理手段にすでに割り当てられている処理を前記第2の処理手段に割り当て直す第1の割り当てステップと、実行すべき処理が前記特定の処理である場合、前記特定の処理を前記第1の処理手段に割り当てる第2の割り当てステップとを有し、前記特定の処理が終了するまで前記特定の処理ではない処理を前記第1の処理手段に新たに割り当てるのを制限することを特徴とする。 The allocation method according to the present invention includes a first processing unit capable of executing a plurality of processes in time division and a second processing unit capable of executing a plurality of processes in time division. If the process to be executed is a predetermined specific process, the process already assigned to the first processing means is assigned to the second processing means. If the first allocating step to reassign, to be executed process is the particular process, have a second allocation step of allocating the specific processing to the first processing means, the specific processing It is characterized in that it is limited to newly assign a process that is not the specific process to the first processing means until the process is completed .
また、本発明に係わるプログラムは、複数の処理を時分割で実行することが可能な第1の処理手段と複数の処理を時分割で実行することが可能な第2の処理手段とのそれぞれに実行すべき処理を割り当てる、コンピュータにより読み取り可能なプログラムであって、実行すべき処理が予め決められた特定の処理である場合、前記第1の処理手段にすでに割り当てられている処理を前記第2の処理手段に割り当て直す第1の割り当てステップと、実行すべき処理が前記特定の処理である場合、前記特定の処理を前記第1の処理手段に割り当てる第2の割り当てステップとを前記コンピュータに実行させ、前記特定の処理が終了するまで前記特定の処理ではない処理を前記第1の処理手段に新たに割り当てるのを制限することを特徴とする。 The program according to the present invention includes a first processing unit capable of executing a plurality of processes in time division and a second processing unit capable of executing a plurality of processes in time division. If the process to be executed is a computer-readable program that assigns a process to be executed and the process to be executed is a predetermined specific process, the process already assigned to the first processing means is assigned to the second process. A first assigning step for reassigning to the processing means, and a second assigning step for assigning the specific process to the first processing means if the process to be executed is the specific process. And restricting newly assigning a process that is not the specific process to the first processing means until the specific process is completed .
本発明によれば、複数の処理を時分割で実行することが可能な処理手段を複数有する処理装置において、他の処理の実行を完全に停止してしまうことなく、特定の処理をより多く実行できるようにすることができる。 According to the present invention, in a processing apparatus having a plurality of processing means capable of executing a plurality of processes in a time division manner, more specific processes are executed without completely stopping the execution of other processes. Can be able to.
本発明に係る実施形態を説明する。 Embodiments according to the present invention will be described.
図1は本発明を適用可能なデータ処理装置の内部構成を示す図である。データ処理装置は大きく分けてメインボード100とサブボード108から構成されている。なお、メインボードとサブボードとに分けずにそれらを一つのボードにすることも可能であるが、下記では、データ処理装置がメインボード100とサブボード108の2つのボードから構成される場合を説明する。
FIG. 1 is a diagram showing an internal configuration of a data processing apparatus to which the present invention can be applied. The data processing apparatus is roughly composed of a
メインボード100は、CPU101、不揮発性メモリ102、揮発性メモリ103、バスコントローラ104、ディスクコントローラ105及びUSBコントローラ106を備える。
The
CPU101は起動プログラム及び他のプログラムを実行する演算装置である。CPU101は複数のチップからなるマルチプロセッサとしてあるいは単一チップ内に複数の演算装置を組み込んだマルチコアプロセッサとして構成されている。図1ではそれぞれをCPU#1及びCPU#2としている。なお、OSが複数のCPUを扱うことが可能であれば、単体のCPUをそれぞれ別々に複数個用意しても良い。下記では、複数のCPUコアのそれぞれもCPUと呼ぶ。
The
不揮発性メモリ(BOOT ROM)102は起動プログラムやOS(オペレーティングシステム)を格納している。なお、OSは後述のハードディスク装置107に格納されていても良い。揮発性メモリ(Volatile Memory)103はプログラムやデータを一時的に格納する。
A non-volatile memory (BOOT ROM) 102 stores a boot program and an OS (operating system). The OS may be stored in the
バスコントローラ(Bus Controller)104はサブボード108と接続し、サブボード108との間の通信を制御する。ディスクコントローラ(Disk Controller)105はハードディスク装置(HDD)107を制御する。ハードディスク装置107は各種アプリケーションプログラムや各種データを格納し、ディスクコントローラ105はそれらの書き込みや読み出しを制御する。USBコントローラ(USB Controller)106はUSBメモリ等のUSBデバイス(不図示)を制御する。
A
サブボード108は不揮発性メモリ109、CPU110、揮発性メモリ111、バスコントローラ112、デバイスコントローラ113及びイメージプロセッサ114を備える。
The
不揮発性メモリ(BOOT ROM)109は起動プログラムを格納する。CPU110は起動プログラムやその他のプログラムを実行する演算装置である。揮発性メモリ(Volatile Memory)111はプログラムやデータを一時的に格納する。
A non-volatile memory (BOOT ROM) 109 stores a startup program. The
バスコントローラ(Bus Controller)112はメインボード100と接続し、メインボード100との間の通信を制御する。デバイスコントローラ(Device Controller)113は画像処理デバイスを制御し、それぞれ異なる画像処理を画像処理デバイスに実行させる。図1では、画像処理デバイスとしてスキャン装置(Scan Engine)115、印刷装置(Print Engine)116、ファクシミリ装置(Fax Engine)117がデバイスコントローラ113と接続している。イメージプロセッサ(Image Processor)114は画像データの生成などの画像形成処理を高速に実行する。
A bus controller (Bus Controller) 112 is connected to the
図2はCPU101で行われるタスク(プログラムの実行単位)の実行処理を説明するための概念図である。
FIG. 2 is a conceptual diagram for explaining a task (program execution unit) execution process performed by the
同時に複数の処理を並行して実行できるOS(マルチタスクOS)では、タイムスライスと呼ばれる規定時間の間CPUを一つのタスクに占有させる制御を繰り返すことにより、マルチタスク動作を実現する。つまり、CPUは規定時間の間一つのタスクを実行して、複数のタスクを時分割で実行する。これをマルチタスクスケジューリングと呼ぶ。 In an OS (multitask OS) capable of executing a plurality of processes in parallel at the same time, a multitask operation is realized by repeating control for occupying the CPU with one task for a specified time called a time slice. That is, the CPU executes one task for a specified time and executes a plurality of tasks in a time division manner. This is called multitask scheduling.
図2では、CPU#1(201)においてネットワークタスク202が現在実行されており、CPU#2(204)においてはストレージタスク205が現在実行されている。
In FIG. 2, the
OSの一部であるタスクスケジューラ207はタイムスライスの経過や割り込みの発生などに起因して、現在実行中のネットワークタスク202の実行状態をタスク情報として実行待ち行列203に退避する。つまり、実行待ち行列203にあるネットワークタスクのタスク情報はCPUのレジスタ値などにより更新される。一方、実行待ち行列203にあるUI制御タスクのタスク情報をCPU#1に設定して、UI制御タスクをCPU#1に実行させる。同様に、タスクスケジューラ207はタイムスライスの経過や割り込みの発生などに起因して、現在実行中のストレージタスク205の実行状態を実行待ち行列206のタスク情報に退避する。つまり、実行待ち行列206にあるストレージタスクのタスク情報はCPUのレジスタ値などにより更新される。一方、実行待ち行列206にあるスキャンタスクのタスク情報をCPU#2に設定して、スキャンタスクをCPU#2に実行させる。このようなCPUにおけるタスクの実行の切り替えをタスクスイッチと呼ぶ。タスク情報の詳細は後述する(図4)。
The
タスクスケジューラ207はプログラムとしては一つであるが、CPU#1及びCPU#2のそれぞれで独立に実行されることにより、論理的には2つ存在することになる。よって、タスクスケジューラ#1がCPU#1でのタスクスケジューリングを制御し、タスクスケジューラ#2がCPU#2でのタスクスケジューリングを制御する。
There is only one
このようなマルチタスクスケジューリングで、全てのタスクがタイムスライスを完全に使い切ると仮定した場合、実行待ち行列に配置されているタスクの数が多くになるにつれて、ある一つのタスクがCPUで実行された後、次に実行されるまでの時間は長くなる。 In such multitask scheduling, assuming that all tasks use up the time slice completely, one task is executed by the CPU as the number of tasks placed in the execution queue increases. After that, the time until the next execution becomes longer.
例えば、PDL処理タスクは、ローカルエリアネットワーク(LAN)等を経由して情報処理装置から受信したプリントジョブをイメージデータに展開し、そのイメージデータをサブボード108のCPU110に送信する。そのあと、印刷装置116がCPU110、イメージプロセッサ114及びデバイスコントローラ113の制御の下、イメージデータに基づく画像を紙媒体に印刷する。実行待ち行列206に配置されたタスクの数が増えると、PDL処理タスクが単位時間あたりにCPU#2を占有できる回数(または時間)は減少するため、PDL処理タスクがプリントジョブをイメージデータに展開するのに掛かる時間は長くなる。すると、データ処理装置の性能指標の一つであるPPM値(Page Per Minute:1分間あたりの印刷ページ数)が下がる場合が生じてしまう。
For example, the PDL processing task develops a print job received from the information processing apparatus via a local area network (LAN) or the like into image data, and transmits the image data to the
図2の占有タスク208については後述する。
The
図3は、実行待ち行列203または206に配置されるタスクのタスク情報の一例を示す図である。複数のタスクのそれぞれごとに図3のようなタスク情報が存在する。
FIG. 3 is a diagram illustrating an example of task information of tasks arranged in the
タスクID301はタスクを一意に識別する識別子である。タスク状態302はタスクの状態を示す。コード・アドレスリスト303はタスク自身の実行コードが配置されたメモリアドレス群を示す。データ・アドレスリスト304はタスクが用いるデータが配置されたメモリアドレス群を示す。レジスタ情報305はそのタスクを実行していたときのCPUのレジスタ値を示す。
The
タスクスケジューラ207は実行待ち行列203または206に配置されているタスク情報を参照して、CPUのレジスタ値等の設定または操作をすることにより、タスクの切り替えを実行する。
The
下記では、図4及び図5のフローチャートを参照しながら、メインボード100で行われるタスク制御処理を説明する。
Below, the task control processing performed in the
図4は、メインボード100がCPU#1及びCPU#2の2つのCPUを有する場合にタスクスケジューラ207が実行するタスク投入処理を示すフローチャートである。ここでは、タスクスケジューラ207が、実行すべきタスクをCPU#1及びCPU#2のいずれかに割り当てる。
FIG. 4 is a flowchart showing a task input process executed by the
まず、タスクスケジューラ207は、あるタスクを実行するためにそのタスクを投入するにあたり、そのタスクが占有タスクであるかどうかを判定する(S401)。
First, the
占有タスクとは、CPUを連続的に占有しつづけることのできるタスクである。占有タスクが占有することになっているCPUを占有CPUと呼ぶ。いずれのタスクを占有タスクにするか、いずれのCPUを占有CPUにするかは指定可能であり、指定されたタスクを占有タスクとして登録し、指定されたCPUを占有CPUとして登録する。図2の例では、PDL処理タスクが占有タスク、CPU#2が占有CPUになっている。
The occupied task is a task that can continuously occupy the CPU. A CPU that is occupied by an occupied task is called an occupied CPU. It is possible to specify which task is to be an exclusive task or which CPU is to be an exclusive CPU. The specified task is registered as an exclusive task, and the specified CPU is registered as an exclusive CPU. In the example of FIG. 2, the PDL processing task is an occupied task and
タスクが占有タスクであれば、タスクスケジューラ207は、CPU#2で実行中のタスクについて実行待ち行列206中のタスク情報を更新する。さらにCPU#2の実行待ち行列206に配置されている各タスクのタスク情報を別のCPUであるCPU#1の実行待ち行列203に移動する(S402)。図2の例では、ストレージタスク、スキャンタスク、ファックスタスク及びプリントタスクのそれぞれのタスク情報を実行待ち行列206から実行待ち行列203に移動する。
If the task is an exclusive task, the
つぎに、タスクスケジューラ207は占有タスクであるPDL処理タスクのタスク情報をCPU#2の実行待ち行列206に配置する(S403)。さらに、タスクスケジューラ207は占有タスク動作モードフラグに1を設定する(S404)。この占有タスク動作モードフラグは揮発性メモリ103に記憶されており、その初期値は0(零)である。
Next, the
占有タスクではないとS401で判定した場合には、タスクスケジューラ207は占有タスク動作モードフラグが1であるかどうかを判定する(S405)。占有タスク動作モードフラグが1である場合には、占有タスクがCPU#2を占有しているので、タスクスケジューラ207はタスクのタスク情報をCPU#1の実行待ち行列203に配置する(S406)。占有タスク動作モードフラグが1ではない場合には、どちらのCPUも占有タスクによって占有されていないので、タスクスケジューラ207は実行待ちのタスクが少ない方の実行待ち行列にタスクのタスク情報を配置する(S407)。実行待ちのタスクの数が実行待ち行列203と実行待ち行列206との間で同じである場合、タスクスケジューラ207は占有CPUではないCPU#1の実行待ち行列203にタスクのタスク情報を配置するものとする。ただし、これに限るものではない。
If it is determined in S401 that the task is not an exclusive task, the
図5は、タスクスケジューラ207が実行するタスクスケジュール処理を示すフローチャートである。タスクスケジュール処理では、タスクスケジューラ207は各CPUにて、実行待ち行列から一つのタスクを選択して、そのタスクをタイムスライスの間CPUに実行させるためのタスクスケジューリングを行う。
FIG. 5 is a flowchart showing task schedule processing executed by the
タスクスケジューラ207は、CPUで現在実行中のタスクの処理が完了したかどうかを判定する(S501)。そのタスクの処理が完了した場合には、タスクスケジューラ207はそのタスクのタスク情報を実行待ち行列から削除する(S502)。さらに、タスクスケジューラ207はそのタスクが占有タスクであるかどうかを判定する(S503)。タスクが占有タスクであれば、タスクスケジューラ207は占有タスク動作モードフラグに0(零)を設定する(S504)。
The
タスクの処理が完了していないとS501で判定した場合には、タスクスケジューラ207はタイムスライスが終了したかどうかを判定する(ステップS505)。タイムスライスが終了したかどうかの判断は、規定時間を初期値とするカウンタをデクリメントしていきながらカウンタが0になったかどうかを判定しても良いし、ハードウェアタイマで時間を計測して規定時間が経過したかどうかを判定しても良い。
If it is determined in S501 that the task processing has not been completed, the
タイムスライスが終了していなければ、そのタスクはCPUを使用することができるので、タスクスケジューラ207はそのタスクをCPUに実行させる(S508)。
If the time slice has not ended, the task can use the CPU, and the
一方、タイムスライスが終了している場合には、タスクスケジューラ207は、そのCPUが規定時間の間CPUを使い果たしたと判断して、現在のCPUのレジスタ値等をタスク情報として実行待ち行列に保存する(S506)。さらに、タスクスケジューラ207は新たなタスクをCPUに実行させるため、実行待ち行列から一つのタスクを選択し、そのタスクのタスク情報をCPUのレジスタ値として設定する(S507)。そして、タスクスケジューラ207はそのタスクをCPUに実行させる(S508)。
On the other hand, if the time slice has been completed, the
上記のタスクスケジューラ207の処理により、占有タスクとして登録されたタスクの実行を開始する場合、占有CPUとして指定されたCPUの実行待ち行列に配置されているタスクのタスク情報を他のCPUの実行待ち行列に移動することができる。その際に占有タスク動作モードフラグに1を設定することにより、それ以降は、他のタスクを占有CPUに割り当てずに他のCPUに割り当てることとなり、占有タスクをタスクの処理が完了するまで占有CPUで常に実行可能である。そのため、所望の実行性能を実現することができる。
When the
占有タスクの処理が完了すると、占有タスク動作モードフラグに0(零)を設定することにより、それ以降は、タスクを実行待ちのタスクが少ない方のCPUに配置することが可能となり、各CPUの負荷が平準化される。 When the processing of the dedicated task is completed, the dedicated task operation mode flag is set to 0 (zero), and thereafter, the task can be allocated to the CPU with fewer tasks waiting to be executed. The load is leveled.
図6はマルチコアCPUの内部構成の一例を示す図である。図6(A)は複数のCPUでL2キャッシュを共有する形式を示す。図6(B)は複数のCPUごとにL2キャッシュを分離する形式を示す。 FIG. 6 is a diagram illustrating an example of the internal configuration of the multi-core CPU. FIG. 6A shows a format in which a plurality of CPUs share the L2 cache. FIG. 6B shows a format for separating the L2 cache for each of a plurality of CPUs.
本実施形態では、タスク情報を特定のCPUの実行待ち行列から他方のCPUの実行待ち行列に移動させることにより、特定のCPUで特定のタスクを実行させている。そのため、実行待ち行列をL2キャッシュ上に構築し、さらにそのL2キャッシュを複数のCPUで共有させることができれば(図6(A)の形式)、他方のCPUは比較的高速にタスク情報にアクセス可能である。一方、L2キャッシュを複数のCPUがそれぞれ持つ場合(図6(B)の形式)、特定のCPU側のL2キャッシュには、このCPUではもう使われることがないもののメモリにまだ書き込まれていない移動すべきタスク情報が存在する。他方のCPU側のL2キャッシュには、移動されたタスク情報を参照しようとしても、そのタスク情報が格納されていない。よって、アクセスが遅くなる可能性がある。このため、タスク情報を移動するのに先立ちL2キャッシュのフラッシュを行い、L2キャッシュからメモリへのデータの書き込みを確定させることで、他方のCPUによるタスク情報へのアクセスの遅延を抑制することが望ましい。逆に、L2キャッシュを共有する場合には、他方のCPUがL2キャッシュのタスク情報を参照可能であるため、タスク情報の移動時にはL2キャッシュのフラッシュを行わないことが望ましい。 In this embodiment, a specific task is executed by a specific CPU by moving task information from the execution queue of the specific CPU to the execution queue of the other CPU. Therefore, if the execution queue is constructed on the L2 cache and the L2 cache can be shared by a plurality of CPUs (in the form shown in FIG. 6A), the other CPU can access the task information at a relatively high speed. It is. On the other hand, when a plurality of CPUs each have an L2 cache (the form shown in FIG. 6B), the movement that has not been written to the memory yet to be used by this CPU in the L2 cache on the specific CPU side. There is task information that should be done. Even if it is attempted to refer to the moved task information, the task information is not stored in the L2 cache on the other CPU side. Therefore, access may be delayed. For this reason, it is desirable to suppress the delay of access to the task information by the other CPU by flushing the L2 cache prior to moving the task information and confirming the writing of data from the L2 cache to the memory. . Conversely, when the L2 cache is shared, the other CPU can refer to the task information in the L2 cache, so it is desirable not to flush the L2 cache when the task information is moved.
以上説明したように、本実施形態によれば、CPUコア或いはCPUを連続的に占有しつづけるタスクを占有タスクとして予め登録する。占有タスクの実行を開始するときには、占有タスクを特定のCPUコア或いは特定のCPUで実行させると共に、他のタスクは他のCPUコア或いは他のCPUで実行させるように制御する。そして、占有タスクの処理が完了した場合には、他のタスクを特定のCPUコア或いは特定のCPUでも実行可能にする。こうすることにより、複数のタスクが並列にCPUで実行される場合においても、特定のタスクを優先的に実行して、データ処理装置における所定の性能(例えば、製品カタログなどで提示されている性能)を実現することができる。 As described above, according to the present embodiment, a task that continuously occupies a CPU core or CPU is registered in advance as an occupancy task. When the execution of the dedicated task is started, the dedicated task is executed by a specific CPU core or a specific CPU, and other tasks are controlled to be executed by another CPU core or another CPU. When the processing of the occupied task is completed, other tasks can be executed by a specific CPU core or a specific CPU. By doing this, even when a plurality of tasks are executed in parallel by the CPU, a specific task is preferentially executed and a predetermined performance in the data processing device (for example, a performance presented in a product catalog etc.) ) Can be realized.
〔第2の実施形態〕
上記の実施形態では、占有タスクとして登録されているタスクの実行を開始するときに、他のタスクのタスク情報を他のCPUの実行待ち行列に移動していた。しかしながら、占有タスクの投入後、その占有タスクが他のタスクからのイベントを待つ状態(イベント待ち状態)になった場合、他のタスクからのイベント通知があるまで、別段処理を行わない。この場合は、占有タスクが占有CPUを独占しておく必要がないにもかかわらず、他のタスクは占有CPUを利用することができない。これでは、CPUの利用効率が下がる。
[Second Embodiment]
In the above embodiment, when the execution of a task registered as an exclusive task is started, the task information of another task is moved to the execution queue of another CPU. However, if the occupied task enters a state of waiting for an event from another task (event waiting state) after the dedicated task is input, no further processing is performed until an event notification is received from the other task. In this case, although the dedicated task does not need to monopolize the dedicated CPU, other tasks cannot use the dedicated CPU. This reduces the CPU utilization efficiency.
例えば、PDL処理タスクが占有タスクであり、そのPDL処理タスクがジョブ管理タスクからプリントジョブを受信したことを示すジョブ到着イベントを通知されるのを待っている場合、PDL処理タスクは処理を行わない。 For example, when the PDL processing task is an exclusive task and the PDL processing task is waiting for a job arrival event indicating that a print job has been received from the job management task, the PDL processing task does not perform processing. .
このような課題に対処するべく、占有タスクの単位時間あたりの実行回数をカウントするカウンタを設けてもよい。このカウント値は揮発性メモリ103に記憶されるものとする。
In order to deal with such a problem, a counter that counts the number of times the occupied task is executed per unit time may be provided. This count value is stored in the
タスクスケジューラ207はS401でタスクが占有タスクであると判定した場合、占有タスクの単位時間あたりの実行回数をカウントし始める。そのカウント値が第1の閾値(例えば5回)を下回っている間は、占有CPUの実行待ち行列に配置されている他のタスクのタスク情報を他のCPUの実行待ち行列に移動させない。つまり、占有タスクの処理が本格的に開始するまで、他のタスクのタスク情報を移動させず、他のタスクを占有CPUで実行させる。なお、第1の閾値は適宜指定可能である。
When the
第2の実施形態によれば、占有タスクの単位時間あたりの実行回数を計測し、これが予め指定された回数を下回っている間は、占有タスク以外のタスクのタスク情報を他のCPUの実行待ち行列に移動させない。例えば、PDL処理タスクがプリントジョブを受信しイメージデータへの展開を開始するまでは、他のタスクを占有CPUで実行可能にする。こうすることで、CPUの利用効率を下げないようにすることが可能である。 According to the second embodiment, the number of executions of the occupied task per unit time is measured, and while this is less than the number of times designated in advance, the task information of tasks other than the occupied task is awaited to be executed by another CPU. Do not move to the queue. For example, until the PDL processing task receives the print job and starts developing the image data, other tasks can be executed by the dedicated CPU. By doing so, it is possible to prevent the CPU utilization efficiency from being lowered.
なお、占有タスクの単位時間あたりの実行頻度を計測するものであれば、単位時間あたりの実行回数のほか、単位時間あたりの実行時間でもよい。 As long as the frequency of execution of the occupied task per unit time is measured, the execution time per unit time may be used in addition to the number of executions per unit time.
〔第3の実施形態〕
上記の実施形態では、占有タスク以外の全てのタスクがCPU#1に割り当てられるため、多数のタスクが並列に動作している場合には、CPU#1の負荷が多大になる。例えば、ローカルUIの制御を司るUI制御タスクのように、ユーザからの指示を速やかに受信するとともにその指示に対して必要な情報を速やかに表示する必要があるタスクの処理が滞ると、操作性が著しく低下してしまう。
[Third Embodiment]
In the above embodiment, since all tasks other than the dedicated task are assigned to the
このような課題に対処するべく、占有タスク以外の特定のタスクの単位時間あたりの実行回数をカウントするカウンタを設けてもよい。このカウント値は揮発性メモリ103に記憶されるものとする。
In order to deal with such a problem, a counter that counts the number of executions of a specific task other than the occupied task per unit time may be provided. This count value is stored in the
占有タスク以外の特定のタスクがUI制御タスクである場合には、タスクスケジューラ207はS401でタスクがUI制御タスクであると判定するのに応じて、UI制御タスクの単位時間あたりの実行回数をカウントし始める。そのカウント値が第2の閾値(例えば3回)を下回った場合には、占有タスク動作モードを解除するべく、占有タスク動作モードフラグに0(零)を設定する。こうすることで、占有タスク以外のタスクの動作があまりにも遅くなった場合には、占有CPUで他のタスクも実行可能にする。第2の閾値は適宜指定可能である。
If a specific task other than the exclusive task is a UI control task, the
なお、一時的に操作性が低下しても印刷を高速に行わせたいケースも存在するので、第2の閾値に基づいて占有タスク動作モードを解除する機能を働かせるかどうかについてはそれを選択可能に構成することが望ましい。 Note that there are cases where you want to print at high speed even if the operability temporarily declines, so you can select whether to activate the function to release the exclusive task operation mode based on the second threshold. It is desirable to configure.
また、UI制御タスクの単位時間あたりの実行頻度を計測するものであれば、単位時間あたりの実行回数でも、単位時間あたりの実行時間でもよい。 Moreover, as long as the frequency of execution per unit time of the UI control task is measured, the number of executions per unit time or the execution time per unit time may be used.
第3の実施形態によれば、占有タスク以外の特定のタスクの単位時間あたりの実行回数を計測し、これが予め指定された回数を下回った場合には占有タスク動作モードを解除する。こうすることで、例えば操作性が著しく低下するのを防止することができる。 According to the third embodiment, the number of executions per unit time of a specific task other than the occupied task is measured, and the occupied task operation mode is canceled when the number of executions falls below a predetermined number. By doing so, it is possible to prevent, for example, the operability from being significantly lowered.
〔その他の実施形態〕
上記の実施形態では、CPUコア或いはCPUが2つの場合を説明してきたが、CPUコア或いはCPUが3つ以上である場合でも、本発明は適用可能である。
[Other Embodiments]
In the above embodiment, the case where there are two CPU cores or CPUs has been described. However, the present invention is applicable even when there are three or more CPU cores or CPUs.
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。 The present invention can also be realized by executing the following processing. That is, software (program) that realizes the functions of the above-described embodiments is supplied to a system or apparatus via a network or various storage media, and a computer (or CPU, MPU, or the like) of the system or apparatus reads the program. It is a process to be executed.
100 メインボード
101 CPU
102 不揮発性メモリ
103 揮発性メモリ
104 バスコントローラ
105 ディスクコントローラ
106 USBコントローラ
107 ハードディスク装置
108 サブボード
109 不揮発性メモリ
110 CPU
111 揮発性メモリ
112 バスコントローラ
113 デバイスコントローラ
114 イメージプロセッサ
115 スキャン装置
116 印刷装置
117 ファクシミリ装置
100
102
111 Volatile Memory 112
Claims (12)
複数の処理を時分割で実行することが可能な第2の処理手段と、
実行すべき処理を前記第1の処理手段と前記第2の処理手段のそれぞれに割り当てる割り当て手段とを有し、
実行すべき処理が予め決められた特定の処理である場合、前記割り当て手段は、前記第1の処理手段にすでに割り当てられている処理を前記第2の処理手段に割り当て直し、前記特定の処理を前記第1の処理手段に割り当て、前記特定の処理が終了するまで前記特定の処理ではない処理を前記第1の処理手段に新たに割り当てるのを制限することを特徴とする処理装置。 A first processing means capable of executing a plurality of processes in a time-sharing manner;
A second processing means capable of executing a plurality of processes in a time-sharing manner;
The processing to be executed and a assigning means for assigning to each of said second processing means and the first processing means,
If processing to be executed is a specific processing determined in advance, the allocation means, the already assigned process to the first processing means is assigned directly to the second processing unit, the specific processing Is assigned to the first processing means, and the processing apparatus is restricted from newly assigning a process that is not the specific process to the first processing means until the specific process is completed .
実行すべき処理が前記特定の処理である場合であって、かつ前記計測手段で計測した実行頻度が所定の値を超えた場合に、前記割り当て手段は、前記第1の処理手段にすでに割り当てられている処理を前記第2の処理手段に割り当て直すことを特徴とする請求項1乃至3のいずれか1項に記載の処理装置。 Measuring means for measuring the execution frequency per unit time of the specific process;
When the process to be executed is the specific process and the execution frequency measured by the measuring unit exceeds a predetermined value, the allocating unit is already allocated to the first processing unit. operation being a processing device according to any one of claims 1 to 3, wherein the assigned scores directly to the second processing means.
前記第2の計測手段で計測した実行頻度が第2の所定の値を下回った場合に、前記割り当て手段は、前記第1の処理手段に前記特定の処理ではない処理を割り当て可能にすることを特徴とする請求項1乃至4のいずれか1項に記載の処理装置。 A second measuring unit that measures an execution frequency per unit time of the process that is not the specific process;
When the execution frequency measured by the second measuring unit is less than a second predetermined value, the allocating unit can allocate a process that is not the specific process to the first processing unit. The processing apparatus according to claim 1, wherein the processing apparatus is characterized.
前記割り当て手段は、前記第1の処理手段の実行待ち行列に並んでいる処理を前記第2の処理手段の待ち行列に移動することを特徴とする請求項1乃至6のいずれか1項に記載の処理装置。 An execution queue for processing to be executed by the first processing means and a queue for processing to be executed by the second processing means;
7. The apparatus according to claim 1, wherein the allocating unit moves a process queued in the execution queue of the first processing unit to a queue of the second processing unit. 8. Processing equipment.
前記第1の処理手段及び前記第2の処理手段で実行される処理は、タスクによって行われる処理であることを特徴とする請求項1乃至7のいずれか1項に記載の処理装置。 The first processing means and the second processing means are CPUs capable of executing a plurality of tasks as program execution units in a time-sharing manner,
The processing apparatus according to claim 1, wherein the processing executed by the first processing unit and the second processing unit is processing performed by a task.
実行すべき処理が予め決められた特定の処理である場合、前記第1の処理手段にすでに割り当てられている処理を前記第2の処理手段に割り当て直す第1の割り当てステップと、
実行すべき処理が前記特定の処理である場合、前記特定の処理を前記第1の処理手段に割り当てる第2の割り当てステップとを有し、
前記特定の処理が終了するまで前記特定の処理ではない処理を前記第1の処理手段に新たに割り当てるのを制限することを特徴とする割り当て方法。 An allocation method for allocating a process to be executed to each of a first processing means capable of executing a plurality of processes in a time-sharing manner and a second processing means capable of executing a plurality of processes in a time-sharing manner. There,
A first assigning step for reassigning a process already assigned to the first processing means to the second processing means when the process to be executed is a predetermined specific process;
If processing to be executed is the particular process, it has a second allocation step of allocating the specific processing to the first processing means,
An assignment method characterized by restricting the assignment of a process that is not the specific process to the first processing means until the specific process is completed .
実行すべき処理が予め決められた特定の処理である場合、前記第1の処理手段にすでに割り当てられている処理を前記第2の処理手段に割り当て直す第1の割り当てステップと、
実行すべき処理が前記特定の処理である場合、前記特定の処理を前記第1の処理手段に割り当てる第2の割り当てステップとを前記コンピュータに実行させ、
前記特定の処理が終了するまで前記特定の処理ではない処理を前記第1の処理手段に新たに割り当てるのを制限することを特徴とするプログラム。 By assigning a process to be executed to each of a first processing means capable of executing a plurality of processes in a time division and a second processing means capable of executing a plurality of processes in a time division, by a computer A readable program,
A first assigning step for reassigning a process already assigned to the first processing means to the second processing means when the process to be executed is a predetermined specific process;
When the process to be executed is the specific process, the computer is caused to execute a second assignment step of assigning the specific process to the first processing unit ,
A program for restricting newly assigning a process that is not the specific process to the first processing means until the specific process is completed .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010049315A JP5631022B2 (en) | 2010-03-05 | 2010-03-05 | Processing device, processing allocation method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010049315A JP5631022B2 (en) | 2010-03-05 | 2010-03-05 | Processing device, processing allocation method, and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011186619A JP2011186619A (en) | 2011-09-22 |
JP5631022B2 true JP5631022B2 (en) | 2014-11-26 |
Family
ID=44792829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010049315A Expired - Fee Related JP5631022B2 (en) | 2010-03-05 | 2010-03-05 | Processing device, processing allocation method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5631022B2 (en) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0730946A (en) * | 1993-07-08 | 1995-01-31 | N T T Idou Tsuushinmou Kk | Mobile communications service controller |
JPH07114517A (en) * | 1993-10-15 | 1995-05-02 | Fujitsu Ltd | Program execution control system of multiprocessor system |
JP3893136B2 (en) * | 2004-05-13 | 2007-03-14 | ファームウェアシステム株式会社 | Embedded computer control program, recording medium recording the program, and embedded system |
JP4961931B2 (en) * | 2006-09-29 | 2012-06-27 | 富士通株式会社 | Job execution scheduling program, job execution scheduling method, and job execution scheduling apparatus |
JP2008186208A (en) * | 2007-01-30 | 2008-08-14 | Hitachi Ltd | Cpu load reducing method and monitoring/control server |
-
2010
- 2010-03-05 JP JP2010049315A patent/JP5631022B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2011186619A (en) | 2011-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5598229B2 (en) | Job distributed processing system, information processing apparatus, and program | |
JP5050601B2 (en) | Resource allocation method for job, resource allocation method for job, and program | |
JP6341628B2 (en) | Information processing apparatus, information processing method, information processing system, and program | |
JP5482528B2 (en) | Printed document conversion apparatus and program | |
JP6136020B2 (en) | Image forming apparatus, parallel processing control method, and control program | |
JP2012081626A (en) | Image forming apparatus, image processing method, and program | |
JP2009241584A (en) | Method of canceling printing job submitted to printer | |
JP6372262B2 (en) | Printing apparatus and program | |
JP6206451B2 (en) | Distributed printing control program, distributed printing control apparatus, and distributed printing control method | |
JP2012022503A (en) | Print document conversion device and program | |
US9250842B2 (en) | Image forming apparatus processing a plurality of pages in parallel | |
JP5631022B2 (en) | Processing device, processing allocation method, and program | |
US10209931B2 (en) | Image processing apparatus and image forming apparatus | |
JP2016096414A (en) | Image forming apparatus, method of allocating control processing of multi-core processor in the apparatus, and program | |
JP2011046034A (en) | Image processor, image processing method, image processing program, and recording medium | |
JP3724536B2 (en) | Image output control device and process execution control method thereof | |
US10635157B2 (en) | Information processing apparatus, method and non-transitory computer-readable storage medium | |
JP2012008838A (en) | Print document conversion device and program | |
JP6128104B2 (en) | Image processing apparatus, control method thereof, and program | |
JP6435911B2 (en) | Information processing apparatus, activation processing method, and activation processing program | |
JP6157260B2 (en) | Image forming apparatus | |
JP2014091240A (en) | Image forming apparatus, and printer controller | |
JP2018010640A (en) | Distributed printing control program, distributed printing control device, and distributed printing control method | |
JP6372705B2 (en) | Image forming apparatus | |
JP2012000778A (en) | Image processor and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130304 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140129 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140204 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140407 |
|
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: 20140909 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20141007 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5631022 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
LAPS | Cancellation because of no payment of annual fees |