JP6551069B2 - 情報処理装置および画像形成装置 - Google Patents

情報処理装置および画像形成装置 Download PDF

Info

Publication number
JP6551069B2
JP6551069B2 JP2015172629A JP2015172629A JP6551069B2 JP 6551069 B2 JP6551069 B2 JP 6551069B2 JP 2015172629 A JP2015172629 A JP 2015172629A JP 2015172629 A JP2015172629 A JP 2015172629A JP 6551069 B2 JP6551069 B2 JP 6551069B2
Authority
JP
Japan
Prior art keywords
core
cache memory
cache
information processing
processing apparatus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015172629A
Other languages
English (en)
Other versions
JP2017049814A (ja
Inventor
彰義 大杉
彰義 大杉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation 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 Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2015172629A priority Critical patent/JP6551069B2/ja
Publication of JP2017049814A publication Critical patent/JP2017049814A/ja
Application granted granted Critical
Publication of JP6551069B2 publication Critical patent/JP6551069B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Input (AREA)
  • Image Processing (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、情報処理装置および画像形成装置に関する。
マルチコアのプロセッサを用いた情報処理装置が知られている。このような情報処理装置においては、各コアに対し処理(タスクやスレッド)をどのように割り当てるかという問題は、大きな技術課題の一つである。特許文献1は、キャッシュのヒット率を向上させるため、一旦終了したタスクと類似するタスクにコアを割り当てる場合、前回使用したコアと同一のキャッシュメモリを使うコアにそのタスクを割り当てる技術を開示している。特許文献2は、同一のキャッシュメモリを使うプロセッサをグループ化し、スレッドをグループ内の複数のプロセッサに割り当てる技術を開示している。
特開平6−96039号公報 特開平11−259318号公報
キャッシュメモリを多く使用する処理が、同一のキャッシュメモリを使用する2つのコアに割り当てられた場合、これら2つのコアで互いにキャッシュメモリを上書きしあうこととなり、プロセッサが性能を発揮できないという問題があった。
本発明は、複数のコアで共用されるキャッシュメモリの使用効率を改善する技術を提供する。
本発明は、第1コア、第2コア、および第3コアを含み、各々異なる処理を並列実行する複数のコアと、前記第1コアおよび前記第2コアで共用される第1キャッシュメモリと、少なくとも前記第3コアで用いられる第2キャッシュメモリと、前記第1コアが第1処理を実行している場合において、第2処理の割り当て先を決定する際、前記第2処理を実行する際のキャッシュメモリ使用量および前記第1処理を実行する際のキャッシュメモリ使用量の和が前記第1キャッシュメモリの空き容量より大きいときは、前記第3コアに当該第2処理を割り当てる決定手段とを有する情報処理装置を提供する。
前記第2処理を実行する際のキャッシュメモリ使用量および前記第1処理を実行する際のキャッシュメモリ使用量の和が前記第1キャッシュメモリの空き容量より小さい場合、前記決定手段は、前記複数のコアのうち負荷の低いコアに当該第2処理を割り当ててもよい。
前記第2処理を実行する際のキャッシュメモリ使用量および前記第1処理を実行する際のキャッシュメモリ使用量の和が前記第1キャッシュメモリの空き容量より小さい場合、前記決定手段は、前記第1コアまたは前記第2コアに当該第2処理を割り当ててもよい。
この情報処理装置は、前記第1処理および前記第2処理の関連性が基準より高いか判断する判断手段を有し、前記関連性が前記基準より高いと判断された場合、前記決定手段は、前記第1コアまたは前記第2コアに当該第2処理を割り当ててもよい。
前記関連性が前記基準より低いと判断された場合、前記決定手段は、前記第2処理を実行する際のキャッシュメモリ使用量に基づいて、当該第2処理の割り当て先となるコアを決定してもよい。
前記判断手段は、前記第1処理および前記第2処理について、命令の種別および当該命令を発行したプログラムの少なくとも一方に基づいて前記関連性が前記基準より高いか判断してもよい。
この情報処理装置は、前記第2処理を実行する際のキャッシュメモリ使用量を予測する予測手段を有し、前記決定手段は、前記予測手段により予測されたキャッシュメモリ使用量に基づいて、当該第2処理の割り当て先となるコアを決定してもよい。
この情報処理装置は、命令に関する属性およびキャッシュメモリ使用量を対応付けたテーブルを記憶した記憶手段を有し、前記予測手段は、前記記憶手段に記憶されているテーブルを参照して前記キャッシュメモリ使用量を予測してもよい。
前記第1処理および前記第2処理は、画像の形成に関する命令であり、前記テーブルは、前記命令に関する属性として、前記画像が形成される媒体のサイズおよび当該画像の解像度の少なくとも一方を含んでもよい。
また、本発明は、第1コア、第2コア、および第3コアを含み、各々異なる処理を並列実行する複数のコアと、前記第1コアおよび前記第2コアで共用される第1キャッシュメモリと、少なくとも前記第3コアで用いられる第2キャッシュメモリと、前記第1コアが第1処理を実行している場合において、第2処理の割り当て先を決定する際、前記第2処理を実行する際のキャッシュメモリ使用量および前記第1処理を実行する際のキャッシュメモリ使用量の和が前記第1キャッシュメモリの空き容量より大きいときは、前記第3コアに当該第2処理を割り当てる決定手段とを有する情報処理装置を提供する。
請求項1に係る情報処理装置によれば、第1キャッシュメモリの使用効率を改善することができる。
請求項2に係る情報処理装置によれば、第2処理を第1コアまたは第2コアに割り当てた場合と比較して、第1キャッシュメモリの使用効率を改善することができる。
請求項3に係る情報処理装置によれば、キャッシュメモリ使用量が問題にならない場合には負荷が低いコアに処理を割り当てることができる。
請求項4に係る情報処理装置によれば、単に負荷が低いコアに処理を割り当てる場合と比較して、より第1キャッシュメモリの使用効率を改善することができる。
請求項5に係る情報処理装置によれば、第1処理と第2処理との関連性によらずコアの割り当てを決定する場合と比較して、より第1キャッシュメモリの使用効率を改善することができる。
請求項6に係る情報処理装置によれば、第1処理と第2処理との関連性によらずキャッシュメモリ使用量だけを考慮する場合と比較して、より第1キャッシュメモリの使用効率を改善することができる。
請求項7に係る情報処理装置によれば、命令の種別およびその命令を発行したプログラムに応じて関連性を判断することができる。
請求項8に係る情報処理装置によれば、キャッシュメモリ使用量を実測する場合と比較してより負荷を低減することができる。
請求項9に係る情報処理装置によれば、テーブルを用いずキャッシュメモリ使用量を予測する場合と比較してより簡単にキャッシュメモリ使用量を予測することができる。
請求項10に係る情報処理装置によれば、画像形成に係るパラメータに応じてキャッシュメモリ使用量を予測することができる。
請求項11に係る画像形成装置によれば、第1キャッシュメモリの使用効率を改善することができる。
関連技術に係る情報処理装置9の構成を例示する図 一実施形態に係る画像形成装置1のハードウェア構成を例示する図 画像形成装置1のソフトウェア構成を例示する図 画像形成装置1の動作を示すフローチャート 動作例1に係る処理管理テーブルを例示する図 使用量予測テーブルを例示する図 動作例2に係る処理管理テーブルを例示する図
1.概要
図1は、関連技術に係る情報処理装置9の構成を例示する図である。情報処理装置9は、CPU(Central Processing Unit)90を有する。CPU90は、複数のコア、この例では、コア901〜904の4つのコアを有する。ここで、プロセッサの「コア」とは、プロセッサのうち命令の実行および演算を行う部分をいう。CPU90は、さらに、キャッシュメモリ911〜914およびキャッシュメモリ921〜922を有する。キャッシュメモリ911〜914は一次キャッシュ(いわゆるL1キャッシュ)であり、それぞれ、コア901〜904に専用のものである。キャッシュメモリ921および922は二次キャッシュ(いわゆるL2キャッシュ)である。キャッシュメモリ921はコア901および902で共用され、キャッシュメモリ922はコア903および904で共用される。なお一般にはL1キャッシュまで含めて「コア」という場合があるが、ここでは「コア」にL1キャッシュは含まれない。
一次キャッシュとはコアから最優先にアクセスされるキャッシュメモリをいい、二次キャッシュとは一次キャッシュの次の優先順位でアクセスされるキャッシュメモリをいう。一次キャッシュは、二次キャッシュよりも高速でかつ容量が小さい。メインメモリ(外部メモリ)へのアクセス要求が発生すると、コアはまずアクセス先のアドレスのデータが一次キャッシュに格納されているか調べる。アクセス先のアドレスのデータ(以下単に「アクセス先のデータ」という)が一次キャッシュに格納されていた場合、コアは一次キャッシュからデータを読み出す。アクセス先のデータがキャッシュメモリに格納されていることを「ヒット」といい、ヒットが発生する割合を「ヒット率」という。アクセス先のデータが一次キャッシュに格納されていなかった場合、コアは、アクセス先のデータが二次キャッシュに格納されていないか調べる。アクセス先のデータが二次キャッシュに格納されていた場合、コアは二次キャッシュからデータを読み出す。アクセス先のデータが二次キャッシュに格納されていなかった場合、コアはメインメモリからデータを読み出す。
また、CPU90は、いわゆるSMP(Symmetric Multi Processing)型のプロセッサであり、各コアの機能は同一である。マルチコア型のプロセッサには、この他、AMP(Asymmetric Multi Processing)型のプロセッサも存在するが、例えば、いわゆる複合機のように、処理すべきタスクが多く、かつ、プリント、スキャン、ファクシミリ送受信、UI処理、ネットワーク処理など、処理の組み合わせが多数ある機器においては、一般にSMP型のプロセッサが用いられる。例えば、画像処理のようにパイプラインにより連続演算を前提としたデータ処理を行う場合、キャッシュのヒット率が下がるとメインメモリへのアクセスによるコアの待ち時間が発生してプロセッサのパフォーマンスが低下してしまう。したがって、どのコアにどの処理を割り当てるかというのは、プロセッサのパフォーマンスを左右する問題である。
特に、キャッシュメモリの使用量(以下「キャッシュ使用量」という)が多い処理のコアへの割り当てが適切でないと、キャッシュメモリの使用効率が下がり、結果としてプロセッサは十分に性能を発揮できなくなってしまう。
より具体的な例を用いて説明する。この例では、キャッシュメモリ921および922(L2キャッシュ)の容量は、それぞれ512kBである。コア901はコピー処理を実行している。コピー処理におけるキャッシュ使用量は384kBである。すなわち、キャッシュメモリ921のうち384kBはコピー処理に使用されている。この状況で、新たにプリント処理を割り当てる例を考える。プリント処理におけるキャッシュ使用量は256kBである。
この例で、新たに発生した処理は、負荷(使用率)の低いコアに割り当てられる。例えばコア902の負荷が低い場合にプリント処理をコア902に割り当てると、コピー処理およびプリント処理によるキャッシュ使用量の合計は384kB+256kB=640kBとなり、キャッシュメモリ921の容量を超えてしまう。この場合、コピー処理およびプリント処理が互いにキャッシュメモリ921を上書きしあうこととなり、プロセッサは十分に性能を発揮できない。本実施形態は、このような問題に対処する。
2.構成
図2は、一実施形態に係る画像形成装置1の構成を例示する図である。画像形成装置1は、画像を形成する機能を有する情報処理装置の一例であり、例えばいわゆる複合機である。画像形成装置1は、CPU10、メモリコントローラー20、主記憶装置(メインメモリ)30、IOコントローラー40、補助記憶装置41、画像読み取りユニット42、画像形成ユニット43、および通信ユニット44を有する。
CPU10は、画像形成装置1の各部を制御する制御装置であり、各々異なる処理を実行する複数のコアを含む処理手段の一例である。CPU10は、コア101〜104、キャッシュメモリ111〜114、およびキャッシュメモリ121〜122を有する。キャッシュメモリ111〜114は一次キャッシュ(L1キャッシュ)であり、それぞれコア101〜104に専用のものである。キャッシュメモリ121〜122は二次キャッシュ(L2キャッシュ)である。キャッシュメモリ121はコア101および102で共用され、キャッシュメモリ122はコア103および104で共用される。
メモリコントローラー20は、主記憶装置30に対するデータの読み書きを制御する。主記憶装置30は主記憶装置であり、例えばDRAM(Dynamic Random Access Memory)を含む。主記憶装置30は、CPU10がプログラムを実行する際のワークエリアとして機能し、種々のデータを記憶する記憶手段の一例である。
IOコントローラー40は、周辺装置をCPU10に接続して制御する装置である。この例で、IOコントローラー40には、補助記憶装置41、画像読み取りユニット42、画像形成ユニット43、および通信ユニット44が接続されている。補助記憶装置41はデータおよびプログラムを記憶する不揮発性の記憶装置であり、例えばHDD(Hard Disk Drive)を含む。画像読み取りユニット42は、原稿を光学的に読み取る装置であり、例えばいわゆるスキャナーを含む。画像形成ユニット43は、媒体(例えば紙)に画像を形成する装置であり、例えば電子写真技術またはインクジェット技術により画像形成を行う。通信ユニット44は、他の機器と通信を行うインターフェースである。
図3は、画像形成装置1のソフトウェア構成を例示する図である。補助記憶装置41は、画像形成装置1のOS(Operating System)を機能させるためのプログラム(以下「OSプログラム」という)および各種アプリケーション(コピー機能、スキャナー機能、ファクシミリ送受信機能等)を実現するためのプログラム(以下「アプリケーションプログラム」という)を記憶している。CPU10がこれらのプログラムを実行することにより、画像形成装置1にOS50およびアプリケーション61〜63が実装される。
アプリケーション61〜63は、それぞれOS50に対し処理の実行を命令する。すなわち処理を要求する。ここでいう処理とは、画像形成装置1のハードウェア資源を利用した処理、具体的には、例えば、画像読み取りユニット42を用いて原稿から画像を読み取る処理、画像形成ユニット43を用いて媒体に画像を形成する処理、および通信ユニット44を用いてファクシミリ送信を行う処理をいう。OS50は、アプリケーションにより要求された処理を複数のコアのうちいずれかのコアに割り当てる。コア101〜104は、OS50によってそれぞれ独立したCPUとして認識される(以降の図においてCPU1〜4と表記する)。
アプリケーションにおいて新たな処理の要求が発生すると、OS50は、その処理をどのコアに実行させるか決定する。詳細には以下のとおりである。OS50は、検知手段51、判断手段52、予測手段53、および決定手段54を有する。
検知手段51は、アプリケーション61〜63により新たに要求された処理を検知する。いまここで、コア101にある処理(以下「第1処理」という)が既に割り当てられており、かつコア101が第1処理を実行中である場合において、検知手段51が新たな処理(以下「第2処理」という)の要求を検知した例を考える。OS50は、第2処理の割り当て先となるコアすなわち第2処理を実行するコアを決定する。
判断手段52は、第1処理および第2処理の関連性が基準より高いか判断する。第1処理および第2処理の関連性が基準より高いと判断された場合、決定手段54は、コア101とL2キャッシュを共用するコア(すなわちコア101またはコア102)に第2処理を割り当てる。
第1処理および第2処理の関連性が低いと判断された場合、予測手段53は、第2処理を実行する際のキャッシュメモリ使用量を予測する。決定手段54は、予測手段53により予測されたキャッシュメモリ使用量に基づいて、第2処理の割り当て先となるコアを決定する。具体的には、第2処理を実行する際のキャッシュメモリ使用量および第1処理を実行する際のキャッシュメモリ使用量の和がキャッシュメモリ121(第1キャッシュメモリの一例)の空き容量より大きい場合、決定手段54は、コア103(第3コアの一例)に第2処理を割り当てる。また、第2処理を実行する際のキャッシュメモリ使用量および第1処理を実行する際のキャッシュメモリ使用量の和がキャッシュメモリ121の空き容量より小さい場合、決定手段54は、複数のコアのうち負荷の低いコアに第2処理を割り当てる。
3.動作
図4は、画像形成装置1の動作を示すフローチャートである。図3のフローは、新たな処理(以下「新規処理」という。第2処理の一例)の要求が検知されたことを契機として開始する。以下の説明において、OS50等のソフトウェアを処理の主体として記載することがあるが、これは、そのソフトウェアを実行しているCPU10が他のハードウェア資源と共同して処理を実行することを意味する。
ステップS101において、OS50は、新規処理がキャッシュメモリを使用するものであるか判断する。キャッシュメモリ使用の有無は、例えば、処理毎に定められている。より詳細には、主記憶装置30が、処理とキャッシュメモリ使用の有無とを対応付けたテーブル(図示略)を記憶しており、OS50はこのテーブルを参照して、新規処理がキャッシュメモリを使用するものであるか否か判断する。新規処理がキャッシュメモリを使用するものであると判断された場合(S101:YES)、OS50は、処理をステップS102に移行する。新規処理がキャッシュメモリを使用するものでないと判断された場合(S101:NO)、OS50は、処理をステップS111に移行する。
ステップS102において、OS50は、複数のコアのうちいずれかのコアが既に実行している処理(以下「先行処理」という。第1処理の一例)があるか判断する。先行処理の有無は、処理管理テーブルを用いて判断される。
図5は、処理管理テーブルを例示する図である。処理管理テーブルは、実行中の処理に関連して、ユーザID、処理ID、関連処理ID、処理、キャッシュ使用量、およびコアのレコードを含んでいる。「ユーザID」は、コアを使用する主体すなわちこの例ではアプリケーションを特定する識別子である。「処理ID」は、処理を一意に特定する識別子である。「関連処理ID」は、その処理との関連性が高い処理の処理IDである。「処理種別」はその処理の種別を示す。この例では、処理の種別として「コピー」および「プリント」が記載されている。「キャッシュ使用量」は、その処理によるL2キャッシュの使用量を示す。「コア」は、その処理が割り当てられた(その処理を実行している)コアを示す。
処理管理テーブルには、現在実行中の処理に関するレコードが記録されている。処理管理テーブルに何らかのレコードが記録されている場合、先行処理があるということである。処理管理テーブルが空で何も記録されていない場合、先行処理がないということである。処理管理テーブルは、主記憶装置30に記憶されている。OS50は、主記憶装置30に記憶されている処理管理テーブルを参照して、先行処理の有無を判断する。
再び図4を参照する。先行処理があると判断された場合(S102:YES)、OS50は、処理をステップS103に移行する。先行処理がないと判断された場合(S102:NO)、OS50は、処理をステップS111に移行する。
ステップS103において、OS50は、新規処理と同じ種別の先行処理があるか判断する。OS50は、主記憶装置30に記憶されている処理管理テーブルを参照して、新規処理と同じ種別の先行処理があるか判断する。新規処理と同じ種別の先行処理があると判断された場合(S103:YES)、OS50は、処理をステップS104に移行する。新規処理と同じ種別の先行処理がないと判断された場合(S103:NO)、OS50は、処理をステップS108に移行する。
ステップS104において、OS50は、新規処理と同じユーザ(すなわち同じアプリケーション)による先行処理があるか判断する。OS50は、主記憶装置30に記憶されている処理管理テーブルを参照して、新規処理と同じユーザによる先行処理があるか判断する。新規処理と同じユーザによる先行処理があると判断された場合(S104:YES)、OS50は、処理をステップS105に移行する。新規処理と同じユーザによる先行処理がないと判断された場合(S104:NO)、OS50は、処理をステップS108に移行する。
ステップS105において、OS50は、新規処理に関する「関連処理ID」のレコードを、処理管理テーブルに登録する。この例では、新規処理と処理種別およびユーザIDが同じ先行処理が、新規処理と関連性が高い先行処理と判断され、その先行処理の処理IDが、新規処理に対する関連処理IDとして登録される。
なおこの時点ではまだ新規処理のレコードが処理管理テーブルに登録されていないので、OS50は、新規処理のレコードを処理管理テーブルに登録する。ここではまず、ユーザID、処理ID、処理種別、およびキャッシュ使用量が登録される。キャッシュ使用量は、まだ処理が開始されていない段階で実測値を記録することが難しいので、予測値が記録される。
図6は、キャッシュ使用量の予測値を得るための使用量予測テーブルを例示する図である。使用量予測テーブルは主記憶装置30に記憶されており、OS50は主記憶装置30に記憶されている使用量予測テーブルを参照してキャッシュ使用量の予測値を得る。使用量予測テーブルにおいては、処理に用いられるパラメータとキャッシュ使用量の予測値とが対応付けられている。図6は、一例として、プリント処理に係るキャッシュ使用量の予測値を示している。この例では、プリント処理に用いられるパラメータとして、「用紙サイズ」、「解像度」、および「モード」が用いられている。「用紙サイズ」は画像が形成される媒体の大きさを示す。媒体が大きいほどキャッシュ使用量が増える傾向がある。「解像度」は、形成される画像の解像度を示す。解像度が高いほどキャッシュ使用量が増える傾向がある。「モード」は形成される画像の種別を示す。形成される画像の種別に応じて、例えば異なる画像処理が行われる。この例では、「モード」は「文字」または「写真」である。「文字」よりも「写真」の方がキャッシュ使用量が多い。
図5を参照して、新規処理に対する「関連処理ID」の登録について説明する。例えば処理ID「100」および「101」の処理が実行中である場合において、ユーザID「002」のアプリケーションにより「プリント」処理が要求された状況を考える。すなわち、図5のテーブルにおいて処理ID「100」および「101」の処理が先行処理であり、処理ID「102」の処理が新規処理である状況である。このとき、先行処理のうち処理ID「101」の処理は、ユーザIDおよび処理種別が新規処理と同じである。したがって、新規処理は、処理ID「101」の処理と関連性が高いと判断され、処理ID「102」に対応する関連処理IDのレコードには「101」が記録される。
再び図4を参照する。ステップS106において、OS50は、先行処理とL2キャッシュを共用するコアに処理を割り当てる。例えば先ほどの、図5のテーブルにおいて処理ID「100」および「101」の処理が先行処理であり、処理ID「102」の処理が新規処理である状況を考えると、先行処理を実行しているコアであるCPU3(コア103)とL2キャッシュを共用するコアであるCPU3またはCPU4(コア103またはコア104)に新規処理が割り当てられる。CPU3およびCPU4のどちらに処理を割り当てるかは、例えば、コアの負荷に応じて決められる。すなわち、OS50は、最も負荷が低いコアに新規処理を割り当てる。コアの割り当てが決定すると、OS50は、処理管理テーブルにコアのレコードを登録する。
ステップS107において、処理が割り当てられたコアは、新規処理の実行を開始する。処理を開始すると、図4のフローは終了する。
ステップS108において、OS50は、新規処理のレコードを処理管理テーブルに登録する。なおここでは、新規処理に対する「関連処理ID」は登録されず空値のままである。
ステップS109において、OS50は、L2キャッシュの空き容量が十分なコアがあるか判断する。具体的には、OS50は、L2キャッシュの各々について、先行処理のキャッシュ使用量および新規処理のキャッシュ使用量の和が、L2キャッシュの容量未満であるか判断する。先行処理および新規処理のキャッシュ使用量は、使用量予測テーブルを用いて予測される。この和がL2キャッシュの容量未満である場合、OPS50は、そのL2キャッシュの空き容量は十分であると判断する。L2キャッシュの空き容量が十分なコアがあると判断された場合(S109:YES)、OS50は、処理をステップS110に移行する。L2キャッシュの空き容量が十分なコアがないと判断された場合(S109:NO)、OS50は、処理をステップS112に移行する。
ステップS110において、OS50は、OS50は、先行処理とL2キャッシュを共用しないコアに処理を割り当てる。この場合、先行処理のキャッシュ使用量および新規処理のキャッシュ使用量の和はL2キャッシュの容量以下であるので、単一のL2キャッシュが先行処理および新規処理で共用されても互いにキャッシュメモリを上書きしあうことはない。コアの割り当てが決定すると、OS50は、処理管理テーブルにコアのレコードを登録する。テーブルへの登録が完了すると、OS50は、処理をステップS107に移行する。
なお、L2キャッシュの空き容量が十分なコアが複数ある場合、OS50は、例えば以下のいずれかの基準により選択された1つのコアに新規処理を割り当てる。
(1)L2キャッシュの空き容量が最も少ないコア
(2)負荷が最も低いコア
(3)関連性がより高い先行処理を実行しているコア
(4)処理種別毎にあらかじめ決められたコア
基準(1)によれば、今後要求される処理に対してより大きな空き容量のL2キャッシュが確保される。基準(2)によれば、負荷が分散される。基準(3)によれば、キャッシュのヒット率が向上する可能性が高まる。基準(4)によれば、コアを選択する処理の負荷が低減される。なお関連性がより高い先行処理とは、新規処理と処理種別またはユーザIDが同じ先行処理をいう。
ステップS111において、OS50は、新規処理のレコードを処理管理テーブルに登録する。なおここでは、新規処理に対する「関連処理ID」は登録されず空値のままである。
ステップS112において、OS50は、新規処理を割り当てるコアを、コアの負荷に応じて決定する。すなわち、OS50は、負荷が最も低いコアに新規処理を割り当てる。コアの割り当てが決定すると、OS50は、処理管理テーブルにコアのレコードを登録する。テーブルへの登録が完了すると、OS50は、処理をステップS107に移行する。
図5を参照してより詳細な動作例(動作例1)を説明する。動作例1は、種別が異なる複数の処理が実行される例である。具体的には、ユーザID「001」のアプリケーションがコピー処理を、ユーザID「002」のアプリケーションがプリント処理を要求する例を示している。この例では、処理IDが若い方がより先に要求された処理である。
(1)動作例1−1
新規処理:101
先行処理:100
先行処理と新規処理とは処理種別が異なるので、空き容量が十分なコアのうち、負荷が最も低いコアに新規処理が割り当てられる。この例ではCPU3(コア103)の負荷が最も低い。新規処理はCPU3に割り当てられる。
(2)動作例1−2
新規処理:102
先行処理:100、101
先行処理のうち処理ID「101」の処理が、新規処理とユーザIDおよび処理種別が同じである。したがって関連処理IDとして「101」が登録され、CPU3とL2キャッシュを共用するCPU3またはCPU4(コア103またはコア104)が割り当て先の候補である。このうち、負荷が最も低いコアに新規処理が割り当てられる。この例ではCPU4(コア104)の負荷が最も低い。新規処理はCPU4に割り当てられる。
(3)動作例1−3
新規処理:103
先行処理:100、101、102
先行処理のうち処理ID「100」の処理が、新規処理とユーザIDおよび処理種別が同じである。したがって関連処理IDとして「100」が登録され、CPU1とL2キャッシュを共用するCPU1またはCPU2(コア101またはコア102)が割り当て先の候補である。このうち、負荷が最も低いコアに新規処理が割り当てられる。この例ではCPU2(コア102)の負荷が最も低い。新規処理はCPU2に割り当てられる。
例えば同一ユーザによる同一処理の場合、用いられるデータは共通である可能性が高い。したがって、L2キャッシュが共通のコアにこれらの処理を割り当てることによって、キャッシュのヒット率が向上する可能性が高まる。
図6は、動作例2に係る処理管理テーブルを例示する図である。動作例2は、種別が同じ複数の処理が実行される例である。具体的には、ユーザID「001」のアプリケーションがあるページのプリント処理を、ユーザID「002」のアプリケーションが別のページのプリント処理を要求する例を示している。この例では、処理IDが若い方がより先に要求された処理である。
(1)動作例2−1
新規処理:101
先行処理:100
先行処理と新規処理とは処理種別が異なるので、空き容量が十分なコアのうち、負荷が最も低いコアに新規処理が割り当てられる。この例ではCPU3(コア103)の負荷が最も低い。新規処理はCPU3に割り当てられる。
(2)動作例2−2
新規処理:102
先行処理:100、101
先行処理のうち処理ID「101」の処理が、新規処理とユーザIDおよび処理種別が同じである。したがって関連処理IDとして「101」が登録され、CPU3とL2キャッシュを共用するCPU3またはCPU4(コア103またはコア104)が割り当て先の候補である。このうち、負荷が最も低いコアに新規処理が割り当てられる。この例ではCPU4(コア104)の負荷が最も低い。新規処理はCPU4に割り当てられる。
(3)動作例2−3
新規処理:103
先行処理:100、101、102
先行処理のうち処理ID「100」の処理が、新規処理とユーザIDおよび処理種別が同じである。したがって関連処理IDとして「100」が登録され、CPU1とL2キャッシュを共用するCPU1またはCPU2(コア101またはコア102)が割り当て先の候補である。このうち、負荷が最も低いコアに新規処理が割り当てられる。この例ではCPU2(コア102)の負荷が最も低い。新規処理はCPU2に割り当てられる。
例えば同一のページの画像をプリントする場合、用いられるデータは共通である可能性が高い。したがって、L2キャッシュが共通のコアにこれらの処理を割り当てることによって、キャッシュのヒット率が向上する可能性が高まる。
4.変形例
本発明は上述の実施形態に限定されるものではなく、種々の変形実施が可能である。以下、変形例をいくつか説明する。以下の変形例のうち2つ以上のものが組み合わせて用いられてもよい。
CPU10の構成は図2に例示したものに限定されない。コアの数やキャッシュメモリの階層構造はあくまで例示である。CPU10は、少なくとも、第1キャッシュメモリを共用する2つのコアと、第1キャッシュメモリと別の第2キャッシュメモリを用いる少なくとも1つのコアを有して入ればよい。第1キャッシュメモリが3つ以上のコアで共用されてもよい。また、CPU10は、L2キャッシュの下層にL3キャッシュを有していてもよい。
また、CPU10は、物理的に1つのチップに複数のコアおよびキャッシュメモリを搭載したものに限定されない。複数のCPUチップで1つのキャッシュメモリを共用する情報処理装置に対し、本発明が適用されてもよい。
さらに、実施形態における「複数のコア」は物理的に異なる複数のコアに限定されない。物理的に1つのコアが、時分割で論理的に(擬似的に)複数のコアとして用いられてもよい。
本発明に係る情報処理装置は、図2に例示した画像形成装置1に限定されない。CPU10を用いて複数の処理を並列実行するものであれば、情報処理装置はどのような装置であってもよい。例えば、情報処理装置は、パーソナルコンピュータ、スマートフォン、またはタブレット端末であってもよい。
情報処理装置のソフトウェア構成は図3に例示したものに限定されない。OSおよびアプリケーションによる機能の分担はあくまで例示である。情報処理装置は、処理を発生させるソフトウェアコンポーネント、および発生した処理を実行させるコアを決定するソフトウェアコンポーネントを有していればよい。
情報処理装置の動作は図4に例示したものに限定されない。例えば、ステップS112におけるコアの割り当ては、コアの負荷に応じて割り当てるものに限定されない。L2キャッシュの空き容量が最も少ないコア、関連性がより高い先行処理を実行しているコア、または処理種別毎にあらかじめ決められたコアに新規処理が割り当てられてもよい。
先行処理および新規処理の関連性を評価する方法は、実施形態で例示したものに限定されない。実施形態においては処理種別およびユーザIDが同一かどうかを基準として関連性が評価されたが、これ以外の基準が用いられてもよい。
キャッシュ使用量を得る方法は実施形態で例示したものに限定されない。例えば、各アプリケーションは、OS50に処理を要求する際に、キャッシュ使用量を通知してもよい。OS50は、アプリケーションから通知されたキャッシュ使用量を用いて、L2キャッシュに十分な空き容量があるか判断する。
十分な空き容量があるか判断の対象となるキャッシュメモリは、L2キャッシュに限定されない。複数のコアで共用されるものであれば、どの階層のキャッシュメモリが対象となってもよい。
また、CPU10は、物理的に1つのチップに複数のコアおよびキャッシュメモリを搭載したものに限定されない。複数のCPUチップで1つのキャッシュメモリを共用する情報処理装置に対し、本発明が適用されてもよい。
1…画像形成装置、9…情報処理装置、10…CPU、20…メモリコントローラー、30…主記憶装置、40…IOコントローラー、41…補助記憶装置、42…画像読み取りユニット、43…画像形成ユニット、44…通信ユニット、50…OS、51…検知手段、52…判断手段、53…予測手段、54…決定手段、61〜63…アプリケーション、90…CPU、101〜104…コア、111〜114…キャッシュメモリ(L1)、121〜122…キャッシュメモリ(L2)、901〜904…コア、911〜914…キャッシュメモリ(L1)、921〜922…キャッシュメモリ(L2)

Claims (10)

  1. 第1コア、第2コア、および第3コアを含み、各々異なる処理を並列実行する複数のコアと、
    前記第1コアおよび前記第2コアで共用される第1キャッシュメモリと、
    少なくとも前記第3コアで用いられる第2キャッシュメモリと、
    前記第1コアが第1処理を実行している場合において、第2処理の割り当て先を決定する際、前記第2処理を実行する際のキャッシュメモリ使用量および前記第1処理を実行する際のキャッシュメモリ使用量の和が前記第1キャッシュメモリの空き容量より大きいときは、前記第3コアに当該第2処理を割り当てる決定手段と
    を有する情報処理装置。
  2. 前記第2処理を実行する際のキャッシュメモリ使用量および前記第1処理を実行する際のキャッシュメモリ使用量の和が前記第1キャッシュメモリの空き容量より小さい場合、前記決定手段は、前記複数のコアのうち負荷の低いコアに当該第2処理を割り当てる
    ことを特徴とする請求項に記載の情報処理装置。
  3. 前記第2処理を実行する際のキャッシュメモリ使用量および前記第1処理を実行する際のキャッシュメモリ使用量の和が前記第1キャッシュメモリの空き容量より小さい場合、前記決定手段は、前記第1コアまたは前記第2コアに当該第2処理を割り当てる
    ことを特徴とする請求項に記載の情報処理装置。
  4. 前記第1処理および前記第2処理の関連性が基準より高いか判断する判断手段を有し、
    前記関連性が前記基準より高いと判断された場合、前記決定手段は、前記第1コアまたは前記第2コアに当該第2処理を割り当てる
    ことを特徴とする請求項1ないしのいずれか一項に記載の情報処理装置。
  5. 前記関連性が前記基準より低いと判断された場合、前記決定手段は、前記第2処理を実行する際のキャッシュメモリ使用量に基づいて、当該第2処理の割り当て先となるコアを決定する
    ことを特徴とする請求項に記載の情報処理装置。
  6. 前記判断手段は、前記第1処理および前記第2処理について、命令の種別および当該命令を発行したプログラムの少なくとも一方に基づいて前記関連性が前記基準より高いか判断する
    ことを特徴とする請求項に記載の情報処理装置。
  7. 前記第2処理を実行する際のキャッシュメモリ使用量を予測する予測手段を有し、
    前記決定手段は、前記予測手段により予測されたキャッシュメモリ使用量に基づいて、当該第2処理の割り当て先となるコアを決定する
    ことを特徴とする請求項に記載の情報処理装置。
  8. 命令に関する属性およびキャッシュメモリ使用量を対応付けたテーブルを記憶した記憶手段を有し、
    前記予測手段は、前記記憶手段に記憶されているテーブルを参照して前記キャッシュメモリ使用量を予測する
    ことを特徴とする請求項に記載の情報処理装置。
  9. 前記第1処理および前記第2処理は、画像の形成に関する命令であり、
    前記テーブルは、前記命令に関する属性として、前記画像が形成される媒体のサイズおよび当該画像の解像度の少なくとも一方を含む
    ことを特徴とする請求項に記載の情報処理装置。
  10. 第1コア、第2コア、および第3コアを含み、各々異なる処理を並列実行する複数のコア、当該第1コアおよび当該第2コアで共用される第1キャッシュメモリ、並びに少なくとも当該第3コアで用いられる第2キャッシュメモリを含む処理手段と、
    前記第1コアが第1処理を実行している場合において、第2処理の割り当て先を決定する際、前記第2処理を実行する際のキャッシュメモリ使用量および前記第1処理を実行する際のキャッシュメモリ使用量の和が前記第1キャッシュメモリの空き容量より大きいときは、前記第3コアに当該第2処理を割り当てる決定手段と
    前記処理手段により処理された命令に応じて画像を形成する画像形成手段と
    を有する画像形成装置。
JP2015172629A 2015-09-02 2015-09-02 情報処理装置および画像形成装置 Active JP6551069B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015172629A JP6551069B2 (ja) 2015-09-02 2015-09-02 情報処理装置および画像形成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015172629A JP6551069B2 (ja) 2015-09-02 2015-09-02 情報処理装置および画像形成装置

Publications (2)

Publication Number Publication Date
JP2017049814A JP2017049814A (ja) 2017-03-09
JP6551069B2 true JP6551069B2 (ja) 2019-07-31

Family

ID=58279813

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015172629A Active JP6551069B2 (ja) 2015-09-02 2015-09-02 情報処理装置および画像形成装置

Country Status (1)

Country Link
JP (1) JP6551069B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4241921B2 (ja) * 2004-06-10 2009-03-18 株式会社日立製作所 計算機システム及びその資源割当て方法
JP2009075827A (ja) * 2007-09-20 2009-04-09 Panasonic Corp プログラム実行装置

Also Published As

Publication number Publication date
JP2017049814A (ja) 2017-03-09

Similar Documents

Publication Publication Date Title
WO2018010654A1 (zh) 一种虚拟机热迁移的方法、装置及系统
US20180039523A1 (en) Information processing system that determines a memory to store program data for a task carried out by a processing core
JP6172649B2 (ja) 情報処理装置、プログラム、及び、情報処理方法
JP4609521B2 (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JP2007026094A (ja) 実行装置およびアプリケーションプログラム
JP5121896B2 (ja) マルチコアプロセッサシステムおよびマルチコアプロセッサ
KR101097777B1 (ko) 하이브리드 메모리 관리 방법, 시스템 및 컴퓨터 판독가능매체
US7911639B2 (en) Image forming device
JP2007188523A (ja) タスク実行方法およびマルチプロセッサシステム
JP2015143943A (ja) 情報処理装置、制御方法、および制御プログラム
JP2014044527A (ja) 情報処理装置及びその制御方法、並びに、そのプログラムと記憶媒体
JP2012059152A (ja) データ処理を行うシステムおよびメモリを割り当てる方法
WO2013105428A1 (ja) 画像処理装置および画像形成装置
JP5158576B2 (ja) 入出力制御システム、入出力制御方法、及び、入出力制御プログラム
KR101535792B1 (ko) 운영체제 구성 장치 및 방법
US9552170B2 (en) Memory managing apparatus and image processing apparatus
JP6551069B2 (ja) 情報処理装置および画像形成装置
JP6631124B2 (ja) 情報処理装置および画像形成装置
US20230222058A1 (en) Zoned namespaces for computing device main memory
JP5790532B2 (ja) 電子機器、及びメモリー制御方法
JP6364827B2 (ja) 情報処理装置、及び、そのリソースアクセス方法、並びに、リソースアクセスプログラム
JP2017058738A (ja) 情報処理装置および画像形成装置
WO2012107988A1 (ja) メモリ管理プログラム、メモリ管理方法及び情報処理装置
JP5352284B2 (ja) メモリ管理システム、電子機器及びメモリ管理プログラム
JP4997063B2 (ja) 計算機の起動方法及び計算機システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180717

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190326

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190402

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190529

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190617

R150 Certificate of patent or registration of utility model

Ref document number: 6551069

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350