JP2014153931A - Processor system, electronic apparatus, and system control program - Google Patents

Processor system, electronic apparatus, and system control program Download PDF

Info

Publication number
JP2014153931A
JP2014153931A JP2013023429A JP2013023429A JP2014153931A JP 2014153931 A JP2014153931 A JP 2014153931A JP 2013023429 A JP2013023429 A JP 2013023429A JP 2013023429 A JP2013023429 A JP 2013023429A JP 2014153931 A JP2014153931 A JP 2014153931A
Authority
JP
Japan
Prior art keywords
program
processor
core
fixed
processor core
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.)
Pending
Application number
JP2013023429A
Other languages
Japanese (ja)
Inventor
Tomohiro Yamazaki
智広 山▲崎▼
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2013023429A priority Critical patent/JP2014153931A/en
Publication of JP2014153931A publication Critical patent/JP2014153931A/en
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a processor system capable of effectively utilizing resources by distributing the operation load in accordance with a use state of the system, an electronic apparatus, and a system control program.SOLUTION: A processor system 500 includes a plurality of processor cores. The processor system 500 includes: storage means 501 in which information which is set to each of a plurality of programs and shows whether a processor core for execution should be fixed or not is stored; first determination means 502 which determines, on the basis of the information, whether a processor core should be fixed to each of one or more programs to be executed or not; measurement means 503 which measures an execution frequency of each program; and second determination means 504 which determines whether a processor core set for a program to which fixing of the processor core is determined by the first determination means 502 should be fixed to this program or not on the basis of the measured execution frequency of the program.

Description

本発明は、複数のプロセッサコアを備えたプロセッサシステム、そのプロセッサシステムを搭載した電子機器、そのプロセッサシステムにおいて実行されるシステム制御プログラムに関する。   The present invention relates to a processor system having a plurality of processor cores, an electronic apparatus equipped with the processor system, and a system control program executed in the processor system.

複数の処理を分散させ、全体の処理として高速化を図るために、複数のプロセッサコアを備えたプロセッサシステムが採用されている。このプロセッサシステムの動作形態として、SMP(Symmetrical Multi Processing)と、AMP(Asymmetrical Multi Processing)の2つがある。   In order to distribute a plurality of processes and increase the speed of the entire process, a processor system having a plurality of processor cores is employed. There are two types of operation of this processor system, SMP (Symmetrical Multi Processing) and AMP (Asymmetrical Multi Processing).

SMPは、複数のプログラムを、複数のプロセッサコアの各々の負荷が均一になるように動的に分散させ、並列処理を行う方式である。これに対し、AMPは、負荷に関係なく、特定のプログラムを、予め決めたプロセッサコアにより実行させる方式である。このAMPでは、特定のプログラムを特定のプロセッサコアに割り付けるので、プログラムのリアルタイム性を保証することができる。ここで、リアルタイム性があるとは、一定時間内にプログラムによる処理を完了できることをいう。   SMP is a method of performing parallel processing by dynamically distributing a plurality of programs so that loads of a plurality of processor cores are uniform. On the other hand, AMP is a method in which a specific program is executed by a predetermined processor core regardless of the load. In this AMP, since a specific program is allocated to a specific processor core, real-time performance of the program can be guaranteed. Here, having real-time property means that processing by a program can be completed within a certain time.

特定の機能を実現するために組み込まれる組み込み機器等では、精密な動作タイミングが必要なプログラムを使用する場合、SMPにより動作中にプロセッサコアが変更されると、キャッシュを有効利用できないという問題があった。また、この変更によってリアルタイム性を保証できないという問題もあった。これに対し、AMPでは、このような問題は発生しないが、特定のプロセッサコアに処理が集中することになるので、負荷が偏るという問題があった。   An embedded device or the like that is incorporated to realize a specific function has a problem that when a processor core is changed during operation by SMP, a cache cannot be effectively used when a program that requires precise operation timing is used. It was. There is also a problem that real-time performance cannot be guaranteed by this change. On the other hand, in AMP, such a problem does not occur, but since the processing is concentrated on a specific processor core, there is a problem that the load is biased.

そこで、SMPとAMPを混在させ、リアルタイム性を保証しつつ、AMPとして動作するプロセッサコアを順次変えることによって特定のプロセッサコアに負荷が偏ることを抑制する技術が提案されている(特許文献1参照)。この技術では、AMPとして使用するプロセッサコアと、SMPとして使用するプロセッサコアとを起動時に固定的に振り分けている。   Therefore, a technique has been proposed in which SMP and AMP are mixed to guarantee a real-time property, and the processor cores operating as AMPs are sequentially changed to prevent the load from being concentrated on a specific processor core (see Patent Document 1). ). In this technique, a processor core used as an AMP and a processor core used as an SMP are fixedly allocated at startup.

上記技術では、システムの利用状況によって、AMPとして振り分けられたプロセッサコアが空いてしまったり、逆に負荷が集中したりする場合がある。これでは、特定のプロセッサコアに負荷が偏ることを抑制して資源の有効利用を図り、プログラムの実行効率を向上させることができない。   In the above technique, depending on the system usage status, processor cores distributed as AMP may be vacant, or conversely, loads may be concentrated. In this case, it is not possible to prevent the load from being concentrated on a specific processor core, to effectively use resources, and to improve the execution efficiency of the program.

本発明は、上記課題に鑑み、複数のプロセッサコアを備えたプロセッサシステムであって、複数のプログラムの各々に対して設定された、実行するプロセッサコアを固定するか否かの情報を記憶する記憶手段と、起動された1以上のプログラムの各々に対してプロセッサコアを固定するか否かを該情報に基づき判断する第1判断手段と、各プログラムの実行頻度を測定する測定手段と、第1判断手段によりプロセッサコアを固定すると判断されたプログラムにつき、該プログラムに対して設定されたプロセッサコアに固定すべきか否かを、測定された実行頻度に基づき判断する第2判断手段とを含む、プロセッサシステムが提供される。   In view of the above problems, the present invention is a processor system including a plurality of processor cores, and stores information indicating whether to fix a processor core to be executed, which is set for each of a plurality of programs. Means, first determination means for determining whether to fix the processor core to each of the one or more programs started, measurement means for measuring the execution frequency of each program, A second determination unit that determines, based on the measured execution frequency, whether or not the program determined to fix the processor core by the determination unit should be fixed to the processor core set for the program. A system is provided.

本発明によれば、システムの利用状況に合わせて動的に負荷を分散させ、資源の有効利用を図ることができ、プログラムの実行効率を向上させることもできる。   According to the present invention, it is possible to dynamically distribute the load according to the usage status of the system, to effectively use resources, and to improve the execution efficiency of the program.

本実施形態の画像形成装置のハードウェア構成を示した図。1 is a diagram illustrating a hardware configuration of an image forming apparatus according to an embodiment. 図1に示す画像形成装置が備えるCPUの内部構成の一例を示した図。FIG. 2 is a diagram illustrating an example of an internal configuration of a CPU provided in the image forming apparatus illustrated in FIG. 1. 図1に示す画像形成装置のソフトウェア構成を示した図。FIG. 2 is a diagram illustrating a software configuration of the image forming apparatus illustrated in FIG. 1. 図2に示すCPUが複数のプログラムを実行する際の実行イメージを例示した図。The figure which illustrated the execution image at the time of CPU shown in FIG. 2 executing a some program. 本実施形態のプロセッサシステムの機能ブロック図。The functional block diagram of the processor system of this embodiment. 図5に示すプロセッサシステムが備える記憶手段に記憶される情報としてのテーブルを例示した図。The figure which illustrated the table as information memorized by the storage means with which the processor system shown in Drawing 5 is provided. 図5に示すプロセッサシステムが実行する処理の流れを例示したフローチャート。6 is a flowchart illustrating the flow of processing executed by the processor system shown in FIG. 5. 記憶手段に記憶されるテーブルの別の例を示した図。The figure which showed another example of the table memorize | stored in a memory | storage means. 記憶手段に記憶されるテーブルのさらに別の例を示した図。The figure which showed another example of the table memorize | stored in a memory | storage means.

図1は、本実施形態の画像形成装置のハードウェア構成を示した図である。図1に示す画像形成装置は、複数のプロセッサコアを備えたプロセッサシステムを搭載し、複数のプログラムを並列に実行できるように構成されている。ここでは、このプロセッサシステムを搭載した装置として、画像形成装置を一例として挙げたが、画像形成装置に限られるものではなく、いかなる電子機器であってもよい。   FIG. 1 is a diagram illustrating a hardware configuration of the image forming apparatus according to the present exemplary embodiment. The image forming apparatus shown in FIG. 1 includes a processor system having a plurality of processor cores, and is configured to execute a plurality of programs in parallel. Here, an image forming apparatus is exemplified as an apparatus on which the processor system is mounted. However, the image forming apparatus is not limited to the image forming apparatus, and any electronic device may be used.

電子機器としては、例えば、PC、スキャナ装置、コピー機、ファックス装置、デジタルビデオカメラ、デジタルカメラ、ゲーム機、PDA(Personal Digital Assistant)、スマートフォン、タブレット端末等を挙げることができる。上記の画像形成装置としては、プリンタやMFP(Multi Function Peripheral)を挙げることができる。プリンタは、レーザプリンタであってもよいし、インクジェットプリンタであってもよい。以下、画像形成装置を、MFPとして詳細に説明する。   Examples of the electronic device include a PC, a scanner device, a copier, a fax device, a digital video camera, a digital camera, a game machine, a PDA (Personal Digital Assistant), a smartphone, and a tablet terminal. Examples of the image forming apparatus include a printer and an MFP (Multi Function Peripheral). The printer may be a laser printer or an ink jet printer. Hereinafter, the image forming apparatus will be described in detail as an MFP.

MFP100は、制御手段としてのコントローラボード101と、画像形成を行う画像形成手段110とを備える。コントローラボード101は、CPU102、ROM103、RAM104、画像処理部105、操作部106、HDD107、FCU(Facsimile Control Unit)108、ネットワーク制御部109を備える。画像形成手段110は、印刷を実行するプロッタ111と、原稿等の画像を読み取るスキャナ112とを備える。   The MFP 100 includes a controller board 101 as a control unit and an image forming unit 110 that performs image formation. The controller board 101 includes a CPU 102, a ROM 103, a RAM 104, an image processing unit 105, an operation unit 106, an HDD 107, an FCU (Facsimile Control Unit) 108, and a network control unit 109. The image forming unit 110 includes a plotter 111 that executes printing and a scanner 112 that reads an image such as a document.

CPU102は、OSや各種プログラム等を実行することにより、画像形成装置100の動作を制御する。ROM103は、CPU102が実行するプログラムが格納される不揮発性メモリである。RAM104は、CPU102の作業用領域として使用される揮発性メモリである。CPU102は、ROM103等から読み出したプログラムをこのRAM104上に展開し、その展開したプログラムを実行する。   The CPU 102 controls the operation of the image forming apparatus 100 by executing an OS, various programs, and the like. The ROM 103 is a non-volatile memory in which a program executed by the CPU 102 is stored. The RAM 104 is a volatile memory used as a work area for the CPU 102. The CPU 102 expands the program read from the ROM 103 or the like on the RAM 104, and executes the expanded program.

画像処理部105は、画像形成手段110へ渡すための描画処理された画像データ等を生成し、また、読み取った画像データに対して補正や圧縮等の処理を行う。操作部106は、操作パネルを備えていて、ユーザから操作情報の入力を受け付け、ユーザへの情報表示を行う。HDD107は、画像形成手段110から送られてきた各種データを保存する。FCU108は、ファクシミリの送信および受信を制御する。ネットワーク制御部109は、LANやインターネット等のネットワーク120に接続し、そのネットワーク120に接続される外部装置121との通信を行う。コントローラボード101は、その他、USBインタフェースやSDカードスロット等を備えていてもよい。   The image processing unit 105 generates image data that has been subjected to drawing processing to be transferred to the image forming unit 110, and performs processing such as correction and compression on the read image data. The operation unit 106 includes an operation panel, receives input of operation information from the user, and displays information to the user. The HDD 107 stores various data sent from the image forming unit 110. The FCU 108 controls facsimile transmission and reception. The network control unit 109 is connected to a network 120 such as a LAN or the Internet, and communicates with an external device 121 connected to the network 120. In addition, the controller board 101 may include a USB interface, an SD card slot, and the like.

プロッタ111は、コントローラボード101の画像処理部105から出力された画像データを受け付け、その画像データに基づき画像を印刷出力する。プロッタ111は、電子写真方式であれば、感光体ドラム、帯電ユニット、露光装置、現像ユニット、転写ユニット、定着ユニット、クリーニングユニット、除電ユニット等を備える。これらの各ユニットについてはよく知られたものであるので詳述しない。   The plotter 111 receives the image data output from the image processing unit 105 of the controller board 101, and prints out an image based on the image data. If the plotter 111 is an electrophotographic system, the plotter 111 includes a photosensitive drum, a charging unit, an exposure device, a developing unit, a transfer unit, a fixing unit, a cleaning unit, a static elimination unit, and the like. Each of these units is well known and will not be described in detail.

スキャナ112は、紙等の媒体に記録された画像を読み取り、その読み取った画像の画像データを生成し、その画像データをコントローラボード101へ出力する。スキャナ112は、蛍光灯やLED等の光源、CCDイメージセンサやCMOSイメージセンサ等の光電変換素子等を備える。   The scanner 112 reads an image recorded on a medium such as paper, generates image data of the read image, and outputs the image data to the controller board 101. The scanner 112 includes a light source such as a fluorescent lamp or an LED, a photoelectric conversion element such as a CCD image sensor or a CMOS image sensor, and the like.

外部装置121は、PC等とされ、MFP100に対して印刷指示を送り、そのMFP100の制御を行う。例えば、外部装置121は、ユーザによって作成された原稿等をMFP100が解釈可能な印刷コマンドに変換し、その印刷コマンドをMFP100へ送信することができる。また、外部装置121は、MFP100で読み取られた画像の画像データを取得し、自己が備える記憶装置に格納することができる。なお、外部装置121は、上記の印刷コマンドへの変換のためにプリンタドライバを実装することができる。   The external device 121 is a PC or the like, sends a print instruction to the MFP 100, and controls the MFP 100. For example, the external device 121 can convert a document or the like created by the user into a print command that can be interpreted by the MFP 100, and transmit the print command to the MFP 100. Further, the external device 121 can acquire image data of an image read by the MFP 100 and store it in a storage device provided in the external device 121. Note that the external device 121 can be equipped with a printer driver for conversion to the print command.

CPU102は、図2に示すように、同じ種類の複数のプロセッサコア200、210、220、230を備える。CPU102は、プロセッサコア200用のL1キャッシュ201、L2キャッシュ202を備え、プロセッサコア210用のL1キャッシュ211、L2キャッシュ212を備える。また、CPU102は、プロセッサコア220用のL1キャッシュ221、L2キャッシュ222を備え、プロセッサコア230用のL1キャッシュ231、L2キャッシュ232を備える。さらに、CPU102は、プロセッサコア200、210、220、230に共通のL3キャッシュ240を備えている。   As shown in FIG. 2, the CPU 102 includes a plurality of processor cores 200, 210, 220, and 230 of the same type. The CPU 102 includes an L1 cache 201 and an L2 cache 202 for the processor core 200, and includes an L1 cache 211 and an L2 cache 212 for the processor core 210. Further, the CPU 102 includes an L1 cache 221 and an L2 cache 222 for the processor core 220, and includes an L1 cache 231 and an L2 cache 232 for the processor core 230. Further, the CPU 102 includes an L3 cache 240 common to the processor cores 200, 210, 220, and 230.

L1キャッシュ201、211、221、231は、高速で容量が小さいキャッシュメモリで、L2キャッシュ202、212、222、232は、L1キャッシュより低速で容量が大きいキャッシュメモリである。L3キャッシュ240は、L2キャッシュより低速で容量が大きいが、メインメモリであるRAM104より高速なキャッシュメモリである。使用頻度が高いデータや命令等は、最も高速であるL1キャッシュに格納される。   The L1 caches 201, 211, 221, and 231 are high-speed and small-capacity cache memories, and the L2 caches 202, 212, 222, and 232 are low-speed and large-capacity cache memories than the L1 cache. The L3 cache 240 is a cache memory that is slower than the L2 cache and larger in capacity, but faster than the RAM 104 that is the main memory. Data, instructions, etc. that are frequently used are stored in the L1 cache, which is the fastest.

プロセッサコア200、210、220、230は、各L1、L2、L3あるいはRAM104からデータや命令を読み取り、あるいは書き込む処理を実行する。例えば、プロセッサコア200は、必要とするデータや命令を、最初にL1キャッシュ201内を探し、ない場合、L2キャッシュ202、L3キャッシュ240、RAM104内を順に探すように構成される。   The processor cores 200, 210, 220, and 230 execute processing for reading or writing data and instructions from the L 1, L 2, L 3, or the RAM 104. For example, the processor core 200 is configured to first search the L1 cache 201 for necessary data and instructions, and if not, search the L2 cache 202, the L3 cache 240, and the RAM 104 in order.

プロセッサコア200、210、220、230は、各々が独立に動作可能で、例えば、4つのプログラムをそれぞれに同時に並列して実行させることが可能である。このため、処理を効率的に行うことができる。なお、図2では、4つのプロセッサコアを有する構成を例示したが、プロセッサコアは4つに限定されるものではなく、2つや3つ、あるいは5つ以上とすることも可能である。また、キャッシュも、L1キャッシュのみ、L1キャッシュとL2キャッシュのみとしてもよい。   Each of the processor cores 200, 210, 220, and 230 can operate independently, and for example, four programs can be simultaneously executed in parallel. For this reason, processing can be performed efficiently. 2 illustrates the configuration having four processor cores, the number of processor cores is not limited to four, but may be two, three, or five or more. Further, the cache may be only the L1 cache or only the L1 cache and the L2 cache.

図3は、コントローラボード101上で実行されるソフトウェアの構成例を示した図である。MFP100は、各種機能を実現するために、各種のソフトウェアを実装する。実装されるソフトウェアの1つとしては、ROM103に格納されるBIOS/モニタプログラム300が挙げられる。BIOSは、MFP100が備えるプロッタ111やスキャナ112等の機器を制御するプログラムである。モニタプログラムは、MFP100の動作を監視するためのプログラムである。   FIG. 3 is a diagram illustrating a configuration example of software executed on the controller board 101. The MFP 100 is installed with various software in order to realize various functions. One of the installed software includes a BIOS / monitor program 300 stored in the ROM 103. The BIOS is a program for controlling devices such as the plotter 111 and the scanner 112 provided in the MFP 100. The monitor program is a program for monitoring the operation of MFP 100.

その他のソフトウェアとしては、OS301、コピーアプリケーション302、プリンタアプリケーション303、スキャナアプリケーション304、FAXアプリケーション305等が挙げられる。OS301は、入出力機能やメモリ管理等の各アプリケーションから共通して利用される基本的な機能を提供する。このOS301は、BIOSによって起動される。   Examples of other software include an OS 301, a copy application 302, a printer application 303, a scanner application 304, and a FAX application 305. The OS 301 provides basic functions commonly used by applications such as input / output functions and memory management. The OS 301 is activated by the BIOS.

コピーアプリケーション302は、原稿等を読み取り、それを印刷するコピー機能を実現するアプリケーションプログラムである。プリンタアプリケーション303は、印刷機能を実現するアプリケーションプログラムで、スキャナアプリケーション304は、原稿等を読み取るスキャナ機能を実現するアプリケーションプログラムである。FAXアプリケーション305は、原稿等を読み取り、それをファックス送信するファクシミリ機能を実現するアプリケーションプログラムである。   The copy application 302 is an application program that realizes a copy function for reading a document or the like and printing it. A printer application 303 is an application program that realizes a printing function, and a scanner application 304 is an application program that realizes a scanner function for reading a document or the like. The FAX application 305 is an application program that realizes a facsimile function for reading a document or the like and transmitting it by fax.

図3では、4つのアプリケーションが例示されているが、2つあるいは3つ、または5つ以上のアプリケーションを実装していてもよい。その他のアプリケーションとしては、メール機能を実現するメールアプリケーション、他の機器との通信処理を実行するアプリケーション、ユーザインタフェースへのデータ出力を実行するアプリケーション等を挙げることができる。   In FIG. 3, four applications are illustrated, but two, three, or five or more applications may be implemented. Examples of other applications include a mail application that implements a mail function, an application that executes communication processing with other devices, and an application that executes data output to a user interface.

図3に示す複数のアプリケーションは、図2に示すような複数のプロセッサコアによって並列に実行することができる。CPU102は、その動作形態として、上述したようなSMPとAMPの2つの動作形態をもつ。SMPは、処理能力を向上させるために、OS301が各アプリケーションを自動的にアイドル中のプロセッサコアに振り分け、各プロセッサコアの負荷が均一になるようにする。一方、AMPは、無駄なスケジューリングの発生を抑制し、リアルタイム性を保証するために、各アプリケーションを特定のプロセッサコアで固定的に実行する。   A plurality of applications shown in FIG. 3 can be executed in parallel by a plurality of processor cores as shown in FIG. The CPU 102 has two operation modes, SMP and AMP as described above. In order to improve the processing capability, the SMP automatically distributes each application to an idle processor core so that the load on each processor core is uniform. On the other hand, the AMP executes each application in a fixed manner on a specific processor core in order to suppress the occurrence of useless scheduling and guarantee real-time performance.

ここで、図4を参照して、上記特許文献1における手法(従来法)と、本発明における手法(本方法)の実行イメージについて説明する。図4(a)は、従来法の実行イメージを、図4(b)は、本方法の実行イメージを例示した図である。画像形成装置のハードウェア構成は、図1に示すものと同様のものとし、CPU102の構成は、図2に示すものと同様のものとし、ソフトウェア構成は、図3に示すものと同様のものとする。   Here, with reference to FIG. 4, the execution image of the method (conventional method) in Patent Document 1 and the method (present method) in the present invention will be described. FIG. 4A illustrates an execution image of the conventional method, and FIG. 4B illustrates an execution image of the present method. The hardware configuration of the image forming apparatus is the same as that shown in FIG. 1, the configuration of the CPU 102 is the same as that shown in FIG. 2, and the software configuration is the same as that shown in FIG. To do.

例えば、コピーアプリケーション302を、実行するプロセッサコアとしてコア3に固定して実行するようにし、スキャナアプリケーション304を、実行するプロセッサコアとしてコア4に固定して実行するように設定する。その他のアプリケーションは、残ったコア1、コア2で並列して実行するように設定する。   For example, the copy application 302 is set to be executed on the core 3 as a processor core to be executed, and the scanner application 304 is set to be executed on the core 4 as a processor core to be executed. Other applications are set so that the remaining core 1 and core 2 are executed in parallel.

このように設定すると、コア3は、コピーアプリケーション302用に、コア4は、スキャナアプリケーション304用に固定される。このように設定されたMFP100において、その他のアプリケーションとして、アプリ1−a、1−b、1−c、2−a、2−bが、コピーアプリケーション302としてアプリ3−aが実行されるものとする。   With this setting, the core 3 is fixed for the copy application 302 and the core 4 is fixed for the scanner application 304. In MFP 100 set in this way, applications 1-a, 1-b, 1-c, 2-a, 2-b are executed as other applications, and application 3-a is executed as copy application 302. To do.

従来法では、図4(a)に示すように、アプリ1−a、1−b、1−c、2−a、2−bが、コア1、コア2で並列して実行され、アプリ3−aが、固定されたコア3で実行される。コア4は、スキャナアプリケーション304が実行されないので、アイドル状態となっている。この従来法では、次回の起動時に、コピーアプリケーション302をコア4に、スキャナアプリケーション304をコア3に固定して実行するように設定し、これにより、プロセッサコアの負荷分散を行う。   In the conventional method, as shown in FIG. 4A, the applications 1-a, 1-b, 1-c, 2-a, 2-b are executed in parallel on the core 1 and the core 2, and the application 3 -A is executed on the fixed core 3. The core 4 is in an idle state because the scanner application 304 is not executed. In this conventional method, the copy application 302 is set to the core 4 and the scanner application 304 is fixed to the core 3 for execution at the next startup, thereby distributing the load on the processor core.

しかしながら、ユーザがあまりスキャナ機能を利用しない場合、コア3とコア4のいずれか一方がアイドル状態となり、利用されないので、システム全体として無駄が生じてしまう。   However, if the user does not use the scanner function much, either one of the core 3 and the core 4 is in an idle state and is not used, resulting in a waste of the entire system.

本方法では、図4(b)に示すように、あまり利用されないスキャナアプリケーション304に固定されたコア4を、コア1やコア2と同様のその他のアプリケーション用とする。そして、このコア4にも、アプリ1−a、1−b、1−c、2−a、2−bの一部であるアプリ1−b、2−bを割り振り、実行させる。このようにすることで、プロセッサコアの負荷を分散させ、資源の無駄をなくして有効利用を図ることが可能となる。   In this method, as shown in FIG. 4B, the core 4 fixed to the scanner application 304 that is not often used is used for other applications similar to the core 1 and the core 2. The cores 4 are also allocated and executed with the applications 1-b, 2-b, which are part of the applications 1-a, 1-b, 1-c, 2-a, 2-b. By doing so, it is possible to distribute the load of the processor cores and eliminate the waste of resources, thereby achieving effective use.

これを実現するために、複数のプロセッサコアを備えたプロセッサシステム500は、図5に示すような、記憶手段501と、第1判断手段502と、測定手段503と、第2判断手段504とを含んで構成される。なお、プロセッサシステム500は、図示していないが、当然にして複数のプロセッサコアを備える。   In order to realize this, the processor system 500 having a plurality of processor cores includes a storage unit 501, a first determination unit 502, a measurement unit 503, and a second determination unit 504 as shown in FIG. Consists of including. Although not shown, the processor system 500 naturally includes a plurality of processor cores.

記憶手段501としては、図2に示したL1キャッシュ、L2キャッシュ、L3キャッシュ、図1に示したRAM104やHDD107等を利用することができる。この記憶手段501は、複数のプログラムとしてのアプリケーションの各々に対して設定された、実行するプロセッサコアを固定するか否かの情報を記憶する。ここで、プロセッサコアを固定するとは、プログラムの実行を定めた1つのプロセッサコアのみが行い、他のプロセッサコアにはさせないようにすることをいう。記憶手段501に記憶される情報は、いかなる形式であってもよいが、図6に示すようなテーブル形式とすることができる。   As the storage unit 501, the L1 cache, the L2 cache, the L3 cache shown in FIG. 2, the RAM 104, the HDD 107, etc. shown in FIG. 1 can be used. The storage unit 501 stores information regarding whether or not to fix a processor core to be executed, which is set for each of applications as a plurality of programs. Here, fixing the processor core means that only one processor core that determines execution of the program is performed, and the other processor cores are not allowed to be fixed. The information stored in the storage unit 501 may be in any format, but may be in a table format as shown in FIG.

図6に示すテーブル505は、プログラムを識別するための情報として、プログラム名が使用され、プログラム名と上記の情報とが対応付けられている。この情報は、そのプログラムがプロセッサコアを固定する対象(コア固定化対象)であるか否かの情報とされ、「対象」または「非対象」とされる。固定する対象のプログラムとしては、スキャナやプリンタ等の制御といったリアルタイム性が要求される処理を実行するスキャナアプリケーション、プリンタアプリケーション、コピーアプリケーション等が挙げられる。固定対象外のプログラムとしては、画像形成装置がサーバとして機能する際の通信処理やユーザインタフェースへのデータ出力といった時間制約がない処理を実行するアプリケーションが挙げられる。   In the table 505 shown in FIG. 6, a program name is used as information for identifying a program, and the program name is associated with the above information. This information is information indicating whether or not the program is a target for fixing the processor core (core fixation target), and is “target” or “non-target”. Examples of programs to be fixed include a scanner application, a printer application, a copy application, and the like that execute a process that requires real-time processing such as control of a scanner and a printer. Examples of the non-fixed program include an application that executes processing without time restrictions such as communication processing when the image forming apparatus functions as a server and data output to a user interface.

また、テーブル505には、どのプロセッサコアに固定するかを示す情報(実行コア)も含まれる。例えば、コアに割り当てられた番号「1」等である。どのプロセッサコアにも固定しない場合は、どのコアにも割り当てられない「−1」等の特定の値とされる。図6に示すテーブルでは、プログラムAはコア1で実行されるように固定され、プログラムB、Cは、コアを固定せずに空いているコアで実行するように設定されている。ここでは、プログラム名やコア番号を用いているが、プログラムおよびコアを識別することができる情報であれば、その他のいかなる情報を用いてもよい。   The table 505 also includes information (execution core) indicating which processor core is fixed. For example, the number “1” assigned to the core. When not fixed to any processor core, a specific value such as “−1” which is not assigned to any core is set. In the table shown in FIG. 6, the program A is fixed to be executed by the core 1, and the programs B and C are set to be executed by an empty core without fixing the core. Here, the program name and the core number are used, but any other information may be used as long as the information can identify the program and the core.

テーブル505内の情報は、上記した情報のみであってもよいが、それに追加して、そのプログラムの実行頻度を示す実行回数を含めることができる。実行回数が少なく、あまり利用されていないプログラムに対してプロセッサコアが固定されている場合、資源の無駄になることから、そのプロセッサコアにも他のプログラムを割り振ることができるようにするためである。   The information in the table 505 may be only the information described above, but in addition thereto, the number of executions indicating the execution frequency of the program can be included. If a processor core is fixed for a program that is executed less frequently and is not frequently used, resources are wasted so that other programs can be allocated to the processor core. .

再び図5を参照して、第1判断手段502は、実行される1以上のプログラムの各々に対してプロセッサコアを固定するか否かを、テーブル505を参照して判断する。すなわち、第1判断手段502は、テーブル505内のコア固定化対象を参照し、「対象」になっていれば固定すると判断し、「非対象」になっていれば固定しないと判断する。   Referring to FIG. 5 again, the first determination unit 502 determines whether to fix the processor core for each of the one or more programs to be executed with reference to the table 505. That is, the first determination unit 502 refers to the core fixation target in the table 505, determines that the object is fixed if it is “target”, and determines that it is not fixed if it is “non-target”.

測定手段503は、各プログラムの実行頻度を測定する。測定手段503は、実行頻度として、MFP100の電源ONからの各プログラムの実行回数を測定することができる。実行回数を測定するために、測定手段503は、カウンタを含んで構成することができる。カウンタは、各プログラムの起動時あるいは終了時に実行回数をカウントすることができる。実行回数は、1増加するたびに、測定手段503が、テーブル505内のそのプログラムに対応付けられた実行回数に上書きすることができる。   The measuring unit 503 measures the execution frequency of each program. The measuring unit 503 can measure the number of executions of each program since the MFP 100 is turned on as the execution frequency. In order to measure the number of executions, the measuring means 503 can be configured to include a counter. The counter can count the number of executions at the start or end of each program. Each time the execution count increases by 1, the measuring unit 503 can overwrite the execution count associated with the program in the table 505.

また、測定手段503は、実行頻度として、各プログラムの前回実行時におけるCPU使用率を測定することも可能である。CPU使用率は、プログラムがプロセッサコアの処理時間を占有している割合である。このCPU使用率は、例えばOSが提供する一般的なコマンドを使用して取得することができる。一般的なコマンドとしては、OSがLinux(登録商標)である場合、topコマンドを使用することができる。この取得したCPU使用率も、テーブル505内に各プログラムに対応付けて記憶することができる。   The measuring unit 503 can also measure the CPU usage rate at the previous execution time of each program as the execution frequency. The CPU usage rate is a rate at which the program occupies the processing time of the processor core. This CPU usage rate can be acquired using, for example, a general command provided by the OS. As a general command, when the OS is Linux (registered trademark), a top command can be used. The acquired CPU usage rate can also be stored in the table 505 in association with each program.

測定手段503は、上記実行回数および上記CPU使用率のいずれか一方、あるいはその両方を検出することができる。なお、CPU使用率は、前回実行時のものに限られるものではなく、前々回実行時における使用率であってもよい。また、前々回と前回というように複数のCPU使用率を平均したものであってもよい。   The measuring means 503 can detect either the number of executions or the CPU usage rate, or both. The CPU usage rate is not limited to that at the previous execution, but may be the usage rate at the previous execution. Further, it may be an average of a plurality of CPU usage rates, such as the last time and the last time.

第2判断手段504は、第1判断手段502がプロセッサコアを固定すると判断したプログラムにつき、そのプログラムに対して設定されたプロセッサコアに固定すべきか否かを、測定された実行頻度に基づき判断する。実行頻度には予め閾値が設けられ、その閾値以上であるか否かを判断することにより、上記の実際に固定すべきか否かを判断する。実行頻度が実行回数である場合は、一定回数以上であるか否かを、CPU使用率である場合は、一定値以上であるか否かを、それぞれ判断する。   The second determination unit 504 determines, based on the measured execution frequency, whether or not the program determined by the first determination unit 502 to fix the processor core should be fixed to the processor core set for the program. . A threshold is set in advance for the execution frequency, and it is determined whether or not it should be actually fixed by determining whether or not it is equal to or greater than the threshold. When the execution frequency is the number of executions, it is determined whether or not it is a certain number or more, and when it is the CPU usage rate, it is determined whether or not it is a certain value or more.

閾値は、プロセッサコアの負荷の偏りやプログラムの実行効率等を考慮して、シミュレーションや試験等により最適値を求め、その最適値を採用することができる。   As for the threshold value, an optimum value can be obtained by simulation, a test, or the like in consideration of the load deviation of the processor core, the execution efficiency of the program, and the like.

上記の処理により、固定すべきと判断されたプログラムについてのみ、そのプログラムの実行に対して、対応付けられたプロセッサコアを固定する。それ以外のプログラムについては、OSがもつスケジューラにより、固定されていないプロセッサコアの負荷が分散するように、各プログラムにつき、実行する各プロセッサコアが決定される。   Only the program determined to be fixed by the above processing is fixed to the processor core associated with the execution of the program. For the other programs, each processor core to be executed is determined for each program so that the load of unfixed processor cores is distributed by the scheduler of the OS.

このプロセッサシステムにより実行される、プログラムを特定コアに固定する処理を、図7に示すフローチャートを参照して詳細に説明する。この処理を実行するためのシステム制御プログラムの起動により、ステップ700から開始する。このシステム制御プログラムは、例えば、MFP100が電源ONにされ、OSが起動した後に自動起動することができる。   Processing for fixing the program to the specific core executed by the processor system will be described in detail with reference to the flowchart shown in FIG. The system control program is started to execute this process, and the process starts from step 700. This system control program can be automatically started after the MFP 100 is turned on and the OS is started, for example.

ステップ710では、特定コアに固定され、実行頻度が低いプログラムがあるかどうかを判断する。プロセッサシステムは、第3判断手段をさらに備え、この第3判断手段がこの判断を行うことができる。この判断では、テーブル505を参照し、実行コアが「−1」以外の値となっているプログラムにつき、その実行頻度として実行回数が一定回数未満のものがあるかどうかを判断する。なお、実行頻度は、実行回数ではなく、CPU使用率であってもよい。   In step 710, it is determined whether there is a program that is fixed to a specific core and has a low execution frequency. The processor system further includes third determination means, and this third determination means can make this determination. In this determination, with reference to the table 505, it is determined whether there is a program whose execution core has a value other than “−1” and whose execution frequency is less than a predetermined number. The execution frequency may be the CPU usage rate, not the number of executions.

図6に示すテーブルを用いて具体的に説明する。例えば、上記の一定回数が10とする。ステップ710の判断では、まず、実行コアが「−1」以外の値となっているプログラムとして、プログラムAを特定する。そして、プログラムAにつき、その実行回数の値が10未満かどうかを判断し、10以上であるので、ないと判断する。   This will be specifically described with reference to the table shown in FIG. For example, it is assumed that the predetermined number of times is 10. In the determination in step 710, first, the program A is specified as a program whose execution core has a value other than “−1”. Then, it is determined whether or not the value of the number of executions of the program A is less than 10, and it is determined that it is not more than 10.

再び図7を参照して、ステップ710で、あると判断した場合、ステップ720へ進み、その該当するコアを固定対象から外す。これは、そのコアを他のプログラムで有効に利用するためである。ここでの具体的な処理は、OSのスケジューラのスケジューリング対象にそのコアを追加する処理である。   Referring to FIG. 7 again, if it is determined in step 710 that there is, the process proceeds to step 720, and the corresponding core is removed from the fixation target. This is to effectively use the core in other programs. The specific processing here is processing for adding the core to the scheduling target of the scheduler of the OS.

一般的なOSのスケジューラは、コア毎にキューを定義し、そのキューにつながれているプログラムを順次実行する。このとき、スケジューリング対象とされているコアのキューにのみプログラムをつなぐことが可能であり、ステップ720の処理では、このスケジューリング対象とされているコアに実行頻度が低いプログラムに固定されたコアを追加する。これにより、実行頻度が低いプログラムに固定されていたコアも、スケジューリングの対象となり、コアが空いてしまうことを防ぐことができる。ステップ720の処理が終了後、ステップ730へ進む。また、ステップ710で、ないと判断した場合も、ステップ730へ進む。   A general OS scheduler defines a queue for each core and sequentially executes programs connected to the queue. At this time, it is possible to connect the program only to the queue of the core that is the scheduling target, and in the processing of step 720, the core fixed to the program with low execution frequency is added to the core that is the scheduling target. To do. Thereby, the core fixed to the program with low execution frequency is also subject to scheduling, and it is possible to prevent the core from becoming free. After the process of step 720 is completed, the process proceeds to step 730. Also, if it is determined in step 710 that there is not, the process proceeds to step 730.

ステップ730では、第1判断手段502が、実行されたプログラムがコア固定化対象であるか否かを判断する。具体的には、第1判断手段502が、テーブル505を参照し、そのテーブル505内のコア固定化対象の列が「対象」となっているかどうかにより判断する。「対象」となっている場合、ステップ740へ進み、「非対象」となっている場合、ステップ770へ進む。   In step 730, the first determination unit 502 determines whether or not the executed program is a core fixation target. Specifically, the first determination unit 502 refers to the table 505 and determines whether or not the core fixation target column in the table 505 is “target”. If it is “target”, the process proceeds to step 740, and if it is “non-target”, the process proceeds to step 770.

ステップ740では、測定手段503が、そのプログラムの実行頻度を測定する。この例では、測定手段503は、そのプログラムの実行回数を測定し、テーブル505内の実行回数に上書きして記録する。   In step 740, the measuring means 503 measures the execution frequency of the program. In this example, the measuring unit 503 measures the number of executions of the program, and overwrites and records the number of executions in the table 505.

ステップ750では、第2判断手段504が、実際にそのプログラムを特定コアに固定すべきか否かを判断する。この例では、第2判断手段504は、テーブル505内のそのプログラムの実行回数が一定回数以上であるかを判断する。一定回数以上であれば、固定すべきと判断し、一定回数未満であれば、固定しないと判断する。   In step 750, the second determining means 504 determines whether or not the program should actually be fixed to the specific core. In this example, the second determination unit 504 determines whether the number of executions of the program in the table 505 is a predetermined number or more. If it is more than a certain number of times, it is determined that it should be fixed, and if it is less than a certain number of times, it is determined not to be fixed.

ステップ750で固定すべきと判断された場合、ステップ760へ進み、そのプログラムをその特定コアに固定する。この処理は、まず、固定する特定コアを識別するためのコア識別情報(例えばコア番号)を、テーブル505内の実行コアの列に記録する。そして、OSのスケジューラのスケジューリング対象とするコアから除外し、そのコアのキューにつながれているプログラムを固定化対象となっていないコアのキューに移動する。なお、そのプログラムが既に特定コアに固定されていた場合は、その同じコアでそのプログラムを実行するように制御する。この固定により、ステップ780へ進み、この処理を終了する。   If it is determined in step 750 that the program should be fixed, the process proceeds to step 760, and the program is fixed to the specific core. In this process, first, core identification information (for example, a core number) for identifying a specific core to be fixed is recorded in the execution core column in the table 505. Then, the program is excluded from the cores to be scheduled by the OS scheduler, and the program connected to the core queue is moved to the core queue not to be fixed. If the program is already fixed to the specific core, control is performed so that the program is executed on the same core. With this fixing, the process proceeds to step 780 and the process is terminated.

ステップ750で固定しないと判断された場合、またはステップ730で固定化の対象でないと判断された場合、ステップ770で、OSのスケジューラによってプログラムを実行する実行コアを決定し、ステップ780でこの処理を終了する。   If it is determined in step 750 that the program is not to be fixed, or if it is determined in step 730 that the program is not to be fixed, an execution core for executing the program is determined by the OS scheduler in step 770, and this process is performed in step 780. finish.

このようにして、特定コアでプログラムを実行するように固定化することで、特に、画像処理のようなメモリを大量に使用するプログラムにおいて、キャッシュヒット率が高まることから、効率的にプログラムを実行できる。   In this way, by fixing the program to be executed on a specific core, the cache hit rate increases especially in a program that uses a large amount of memory such as image processing, so the program is executed efficiently. it can.

テーブル505において、実行頻度が高いプログラムを特定コアに固定するように設定していれば、上記の処理により、そのプログラムは、その特定コアに固定される。その特定コアがそのプログラムを実行しているとき、他のプログラムについてコアを固定する場合、その特定コアに固定してしまうと、その特定コアに負荷が集中してしまう。   If it is set in the table 505 so that a program with high execution frequency is fixed to a specific core, the program is fixed to the specific core by the above processing. When the specific core is executing the program and the core is fixed to another program, if the specific core is fixed, the load is concentrated on the specific core.

そこで、図5に示すテーブル505は、図8に示すようなテーブル505とし、各プログラムが実行中であるか否かを示すフラグが追加されている。各プログラムが実行中であればフラグが立てられ、1とされる。実行中でなければ、そのフラグは0とされる。このため、プログラムの起動時にフラグが1とされ、そのプログラムの終了時にフラグが0とされる。このフラグの情報を検出するために、プロセッサシステム500は、各プログラムが実行中であるか否かを検出する検出手段を備えることができる。   Therefore, the table 505 shown in FIG. 5 is a table 505 shown in FIG. 8, and a flag indicating whether each program is being executed is added. If each program is being executed, a flag is set and 1 is set. If not running, the flag is set to zero. For this reason, the flag is set to 1 when the program is started, and the flag is set to 0 when the program ends. In order to detect the information of the flag, the processor system 500 can include detection means for detecting whether or not each program is being executed.

このフラグは、図7に示したフローチャートのステップ760において、あるコアに固定する際、フラグが1であれば、そのコアを除外する。図8では、プログラムAに対してフラグ1とされているため、プログラムAに固定されたコア1は除外される。なお、全てのコアを固定化対象とすることができないため、コア0は常に固定化対象から除外することとする。コア0〜コア3までの4つのコアを有する場合、コア0、コア1は除外されるため、残りのコア2、コア3のいずれかが固定化対象のコアとして選択される。   This flag is excluded if the flag is 1 when it is fixed to a certain core in step 760 of the flowchart shown in FIG. In FIG. 8, since the flag 1 is set for the program A, the core 1 fixed to the program A is excluded. Since not all cores can be fixed, the core 0 is always excluded from the fixed target. When there are four cores from core 0 to core 3, core 0 and core 1 are excluded, and any one of remaining core 2 and core 3 is selected as the core to be immobilized.

このような処理を行うため、プロセッサシステム500は、コア固定手段を備えることができる。コア固定手段は、第2判断手段504によりプロセッサコアに固定すべきと判断されたプログラムに対して、検出手段により実行中として検出された1以上のプログラムに固定されたプロセッサコア以外のプロセッサコアに固定する。   In order to perform such processing, the processor system 500 can include core fixing means. The core fixing means applies a processor core other than the processor core fixed to one or more programs detected as being executed by the detecting means to the program determined to be fixed to the processor core by the second determining means 504. Fix it.

なお、複数のプロセッサコアから選択する場合、例えば、実行回数が少ない方を固定化対象のコアとして選択することができる。これは一例であり、この方法に限定されるものではない。なお、フラグを追加することにより、特定コアに負荷が集中することを防ぐことができる。   Note that when selecting from a plurality of processor cores, for example, the one with the smaller number of executions can be selected as the core to be fixed. This is an example and is not limited to this method. Note that adding a flag can prevent a load from being concentrated on a specific core.

コア0〜コア3までの4つのコアを備えたプロセッサシステムにおいて、図9に示すテーブル505のように、コア1〜コア3が各プログラムの実行に固定されていた状態で、新たに固定化対象のプログラムが実行される場合がある。コア0は、上記のように常に固定化対象から除外されるため、各プログラムに1つずつコアを固定化したのでは、この新たなプログラムに対してはコアを固定化することができない。   In a processor system having four cores from core 0 to core 3, as shown in the table 505 in FIG. 9, the cores 1 to 3 are fixed to the execution of each program, and are newly fixed. May be executed. Since the core 0 is always excluded from the fixation target as described above, if one core is fixed to each program, the core cannot be fixed to the new program.

そこで、各コアのCPU使用率を測定した結果から、各コアのCPU使用率が100%を超えない範囲で、固定されているコア間において、固定するコアを変更するようにする。例えば、コア1のCPU使用率が40%程度で、コア2のCPU使用率が50%程度であれば、両者を合わせても90%程度で100%を超えない。このため、コア1に固定化されるプログラムA、コア2に固定されるプログラムDを、同一のコア1にて実行するように固定し、上記の新たなプログラムをコア2で実行するように固定することができる。   Therefore, from the result of measuring the CPU usage rate of each core, the core to be fixed is changed between the fixed cores within a range where the CPU usage rate of each core does not exceed 100%. For example, if the CPU usage rate of the core 1 is about 40% and the CPU usage rate of the core 2 is about 50%, even if both are combined, it is about 90% and does not exceed 100%. For this reason, the program A fixed to the core 1 and the program D fixed to the core 2 are fixed to be executed by the same core 1, and the above new program is fixed to be executed by the core 2. can do.

このような処理を行うため、プロセッサシステム500は、変更手段を備えることができる。変更手段は、2以上のプログラムの各々に2以上のプロセッサコアの各々が固定されていて、固定化対象の新たなプログラムが起動された場合に動作する。変更手段は、測定手段503により測定されたCPU使用率に基づき、固定するプロセッサコアを変更して、2以上のプログラムの各々と新たなプログラムとを、上記の2以上のプロセッサコアの各々に固定する。   In order to perform such processing, the processor system 500 can include a changing unit. The changing unit operates when each of the two or more processor cores is fixed to each of the two or more programs and a new program to be fixed is started. The changing means changes the processor core to be fixed based on the CPU usage rate measured by the measuring means 503, and fixes each of the two or more programs and the new program to each of the two or more processor cores. To do.

この変更手段を備えることで、固定化対象のプログラム数が全コア数よりも多くなった場合であっても、各コアの負荷を分散しながら、プログラムの実行コアを固定することができる。   By providing this changing means, even if the number of programs to be fixed becomes larger than the total number of cores, the execution core of the program can be fixed while distributing the load of each core.

これまで本発明を、プロセッサシステム、電子機器の一例としての画像形成装置およびシステム制御プログラムとして上述した実施の形態をもって説明してきたが、本発明は上述した実施の形態に限定されるものではない。したがって、他の実施の形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。   The present invention has been described with the above-described embodiment as a processor system, an image forming apparatus as an example of an electronic device, and a system control program. However, the present invention is not limited to the above-described embodiment. Therefore, other embodiments, additions, changes, deletions, and the like can be changed within a range that can be conceived by those skilled in the art, and as long as the effects and advantages of the present invention are exhibited in any aspect, the present invention It is included in the range.

100…MFP、101…コントローラボード、102…CPU、103…ROM、104…RAM、105…画像処理部、106…操作部、107…HDD、108…FCU、109…ネットワーク制御部、110…画像形成手段、111…プロッタ、112…スキャナ、120…ネットワーク、121…外部装置、200、210、220、230…プロセッサコア、201、211、221、231…L1キャッシュ、202、212、222、232…L2キャッシュ、240…L3キャッシュ、300…BIOS/モニタプログラム、301…OS、302…コピーアプリケーション、303…プリンタアプリケーション、304…スキャナアプリケーション、305…FAXアプリケーション、500…プロセッサシステム、501…記憶手段、502…第1判断手段、503…測定手段、504…第2判断手段、505…テーブル DESCRIPTION OF SYMBOLS 100 ... MFP, 101 ... Controller board, 102 ... CPU, 103 ... ROM, 104 ... RAM, 105 ... Image processing part, 106 ... Operation part, 107 ... HDD, 108 ... FCU, 109 ... Network control part, 110 ... Image formation Means 111 ... Plotter 112 ... Scanner 120 ... Network 121 ... External device 200, 210, 220, 230 ... Processor core 201, 211, 221, 231 ... L1 cache 202, 212, 222, 232 ... L2 Cache, 240 ... L3 cache, 300 ... BIOS / monitor program, 301 ... OS, 302 ... Copy application, 303 ... Printer application, 304 ... Scanner application, 305 ... FAX application, 500 ... Processor system, 5 1 ... storage unit, 502 ... first determining means, 503 ... measuring device, 504 ... second determining means, 505 ... table

特開2011−100277号公報JP 2011-1003007 A

Claims (8)

複数のプロセッサコアを備えたプロセッサシステムであって、
複数のプログラムの各々に対して設定された、実行するプロセッサコアを固定するか否かの情報を記憶する記憶手段と、
起動された1以上のプログラムの各々に対してプロセッサコアを固定するか否かを、前記情報に基づき判断する第1判断手段と、
各プログラムの実行頻度を測定する測定手段と、
前記第1判断手段によりプロセッサコアを固定すると判断されたプログラムにつき、該プログラムをプロセッサコアに固定すべきか否かを、測定された前記実行頻度に基づき判断する第2判断手段とを含む、プロセッサシステム。
A processor system having a plurality of processor cores,
Storage means for storing information on whether or not to fix a processor core to be executed, set for each of a plurality of programs;
First determination means for determining whether to fix a processor core for each of the one or more activated programs based on the information;
A measuring means for measuring the execution frequency of each program;
A processor system including: a second determination unit that determines, based on the measured execution frequency, whether or not the program should be fixed to the processor core for the program determined to fix the processor core by the first determination unit; .
前記測定手段は、各プログラムの実行回数を測定し、前記第2判断手段は、測定された実行回数が一定回数以上である場合に、プロセッサコアに固定すべきと判断する、請求項1に記載のプロセッサシステム。   2. The measurement unit according to claim 1, wherein the measurement unit measures the number of executions of each program, and the second determination unit determines that the program should be fixed to the processor core when the measured number of executions is a predetermined number or more. Processor system. 前記測定手段は、各プログラムのCPU使用率を測定し、前記第2判断手段は、測定されたCPU使用率が一定値以上である場合に、プロセッサコアに固定すべきと判断する、請求項1に記載のプロセッサシステム。   2. The measurement unit measures a CPU usage rate of each program, and the second determination unit determines that the CPU usage rate should be fixed to the processor core when the measured CPU usage rate is a predetermined value or more. The processor system described in 1. 前記測定手段は、各プログラムの実行回数と各プログラムのCPU使用率とを測定し、前記第2判断手段は、測定された実行回数が一定回数以上であり、かつ測定されたCPU使用率が一定値以上である場合に、プロセッサコアに固定すべきと判断する、請求項1に記載のプロセッサシステム。   The measuring means measures the number of executions of each program and the CPU usage rate of each program, and the second determining means is that the measured number of executions is a predetermined number or more and the measured CPU usage rate is constant. The processor system according to claim 1, wherein if it is equal to or greater than the value, it is determined that the processor core should be fixed. 各プログラムが実行中であるか否かを検出する検出手段と、前記第2判断手段によりプロセッサコアに固定すべきと判断されたプログラムに対して、前記検出手段により実行中として検出された1以上のプログラムに固定されたプロセッサコア以外のプロセッサコアを固定するコア固定手段とを含む、請求項1〜4のいずれか1項に記載のプロセッサシステム。   Detection means for detecting whether or not each program is being executed, and one or more detected as being executed by the detection means for the program determined to be fixed to the processor core by the second determination means 5. The processor system according to claim 1, further comprising: a core fixing unit that fixes a processor core other than the processor core fixed to the program. 2以上のプログラムの各々に2以上のプロセッサコアの各々が固定されていて、プロセッサコアを固定すべき新たなプログラムが起動された場合に、前記測定手段により測定されたCPU使用率に基づき、固定するプロセッサコアを変更して、前記2以上のプログラムの各々と前記新たなプログラムとを前記2以上のプロセッサの各々に固定する変更手段を含む、請求項1〜5のいずれか1項に記載のプロセッサシステム。   When each of two or more processor cores is fixed to each of two or more programs and a new program that should fix the processor cores is activated, the fixed number is determined based on the CPU usage rate measured by the measurement means. 6. The apparatus according to claim 1, further comprising a changing unit that changes a processor core to fix each of the two or more programs and the new program to each of the two or more processors. Processor system. 請求項1〜6のいずれか1項に記載のプロセッサシステムを備える電子機器。   An electronic device comprising the processor system according to claim 1. 複数のプロセッサコアを備えたプロセッサシステムにより実行されるシステム制御プログラムであって、前記プロセッサシステムは、複数のプログラムの各々に対して設定された、実行するプロセッサコアを固定するか否かの情報を記憶する記憶手段を備えていて、前記システム制御プログラムは、
各プログラムの実行頻度を測定するステップと、
起動された1以上のプログラムの各々に対してプロセッサコアを固定するか否かを、前記情報に基づき判断するステップと、
プロセッサコアを固定すると判断されたプログラムにつき、該プログラムをプロセッサコアに固定すべきか否かを、測定された前記実行頻度に基づき判断するステップとを前記プロセッサシステムに実行させる、システム制御プログラム。
A system control program executed by a processor system having a plurality of processor cores, wherein the processor system sets information on whether to fix a processor core to be executed set for each of the plurality of programs. Storage means for storing, the system control program,
Measuring the execution frequency of each program;
Determining whether to fix a processor core for each of the one or more activated programs based on the information;
A system control program for causing the processor system to execute, based on the measured execution frequency, whether or not the program should be fixed to the processor core for a program determined to fix the processor core.
JP2013023429A 2013-02-08 2013-02-08 Processor system, electronic apparatus, and system control program Pending JP2014153931A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013023429A JP2014153931A (en) 2013-02-08 2013-02-08 Processor system, electronic apparatus, and system control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013023429A JP2014153931A (en) 2013-02-08 2013-02-08 Processor system, electronic apparatus, and system control program

Publications (1)

Publication Number Publication Date
JP2014153931A true JP2014153931A (en) 2014-08-25

Family

ID=51575741

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013023429A Pending JP2014153931A (en) 2013-02-08 2013-02-08 Processor system, electronic apparatus, and system control program

Country Status (1)

Country Link
JP (1) JP2014153931A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6444228A (en) * 1987-08-11 1989-02-16 Showa Aluminum Corp Production of front grill for vehicle
JP2016103196A (en) * 2014-11-28 2016-06-02 コニカミノルタ株式会社 Image processing apparatus, control method of the same, and program
JP2017204106A (en) * 2016-05-11 2017-11-16 コニカミノルタ株式会社 Image forming apparatus

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6444228A (en) * 1987-08-11 1989-02-16 Showa Aluminum Corp Production of front grill for vehicle
JP2016103196A (en) * 2014-11-28 2016-06-02 コニカミノルタ株式会社 Image processing apparatus, control method of the same, and program
US20160156807A1 (en) * 2014-11-28 2016-06-02 Konica Minolta, Inc. Image processing apparatus, method for controlling same, and storage medium
CN105657208A (en) * 2014-11-28 2016-06-08 柯尼卡美能达株式会社 Image processing apparatus and method for controlling same
US9854129B2 (en) * 2014-11-28 2017-12-26 Konica Minolta, Inc. Image processing apparatus, method for controlling same, and storage medium for improving a processing efficiency in an image processing apparatus which includes a multi-core processor
JP2017204106A (en) * 2016-05-11 2017-11-16 コニカミノルタ株式会社 Image forming apparatus

Similar Documents

Publication Publication Date Title
US8543677B2 (en) Communication control device, method, and computer readable medium allowing an information processing device to be in a power saving mode for an extended period and allowing an application part to continue functioning
JP2011197494A (en) Image forming apparatus
JP2014153931A (en) Processor system, electronic apparatus, and system control program
JP2013190950A (en) Control device and start-up method
US9509866B2 (en) Image forming apparatus that executes fax job concurrently with print job while reducing delay in fax job processing, job execution method, and storage medium
JP2014032583A (en) Image processing apparatus, and control method and program of image processing apparatus
US9250842B2 (en) Image forming apparatus processing a plurality of pages in parallel
JP2013058025A (en) Information processing apparatus, program, and control method
US20170041482A1 (en) Printing apparatus having plurality of power states and control method therefor
JP6528952B2 (en) Electronic device and processing execution program
JP6299200B2 (en) Apparatus, information processing system, control method, and program
JP5589582B2 (en) Image processing apparatus and program
JP6669101B2 (en) Electronic device and startup sequence generation program
JP2010282152A (en) Image forming apparatus
JP6210022B2 (en) Information processing apparatus and memory access arbitration method
JP6569750B2 (en) Apparatus, information processing system, control method, and program
JP2012008838A (en) Print document conversion device and program
JP2009020594A (en) Job management device, job management method, job management program and storage medium
JP6842640B2 (en) Management server and server program
JP2009168866A (en) Image forming apparatus and power saving management system
JP2009053829A (en) Information processor and information processing program
JP2021097314A (en) Image processing apparatus and memory management method
JP6528951B2 (en) Electronic device and processing execution program
JP2006186777A (en) Apparatus and program for image formation
JP2014157432A (en) Information processing device, image forming device, and data access method