JP2017156907A - Information processing apparatus, information processing method, and program - Google Patents

Information processing apparatus, information processing method, and program Download PDF

Info

Publication number
JP2017156907A
JP2017156907A JP2016038571A JP2016038571A JP2017156907A JP 2017156907 A JP2017156907 A JP 2017156907A JP 2016038571 A JP2016038571 A JP 2016038571A JP 2016038571 A JP2016038571 A JP 2016038571A JP 2017156907 A JP2017156907 A JP 2017156907A
Authority
JP
Japan
Prior art keywords
cores
processes
core
executed
information processing
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
JP2016038571A
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 JP2016038571A priority Critical patent/JP2017156907A/en
Publication of JP2017156907A publication Critical patent/JP2017156907A/en
Pending legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To provide an information processing apparatus, an information processing method, and a program.SOLUTION: An image forming apparatus 120 of the present embodiment comprises a control part 130 including a CPU 104 that has a plurality of cores performing concurrent execution, and the CPU 104 of the control part 130 performs load distribution by issuing a plurality of types of processing to be subjected to concurrent execution to all the plurality of cores according to the priority of or load on the processing to be subjected to concurrent execution, or selecting a fixed core dedicated to the execution of the processing before issuing the processing.SELECTED DRAWING: Figure 1

Description

本発明は、情報処理装置、情報処理方法、およびプログラムに関する。   The present invention relates to an information processing apparatus, an information processing method, and a program.

マルチコアプロセッサシステムの動作形態として、SMP(Symmetrical Multi Processing)と、AMP(Asymmetrical Multi Processing)がある。SMPは、複数のプログラムを複数のCPUコアに動的に分散させ、各コアの負荷を分散させる。一方、AMPは特定のプログラムを特定のCPUコアに割り付けることでプログラムのリアルタイム性を改善させている。   There are SMP (Symmetrical Multi Processing) and AMP (Asymmetrical Multi Processing) as operation modes of the multi-core processor system. SMP dynamically distributes a plurality of programs to a plurality of CPU cores and distributes the load of each core. On the other hand, AMP improves the real-time property of a program by assigning a specific program to a specific CPU core.

組込装置などでは、精密な動作タイミングが必要なプログラム(例えば、ドライバなどのようにハードウェアを直接操作するプログラム)が存在する場合、SMP制御を行うと、装置の動作中にCPUが変更される場合も発生し、キャッシュを有効利用できないこと、および処理のリアルタイム性を保証できないこと、などからAMP制御を利用する場合も知られている。また、マルチコアプロセッサ・システムではSMP制御と、AMP制御を混在させる構成もまたすでに知られている。   In an embedded device or the like, if there is a program that requires precise operation timing (for example, a program that directly operates hardware such as a driver), the CPU is changed during operation of the device when SMP control is performed. It is also known that the AMP control is used because the cache cannot be used effectively and the real time property of the process cannot be guaranteed. In a multi-core processor system, a configuration in which SMP control and AMP control are mixed is already known.

しかし、従来のSMP制御の場合、プログラムは、CPUコアに対して均等に割り振られる。一方、AMP制御の場合、CPUコアが遊休状態となる期間が発生することも想定される。また、SMP制御の場合には、プログラムの優先度を考慮して、プログラムの実行先を制御することも可能である。しかしながら、画像形成装置のような組込装置の場合、画像処理やセキュリティ性向上のためのHDD(ハードディスク・ドライブ)データ消去など高負荷の処理が存在する。SMP制御の場合、上述した高負荷の処理や優先度の高い処理を、他の処理を後回しにしてでも優先的に実行させたい場合でも充分対応できないという問題がある。   However, in the case of the conventional SMP control, the program is equally allocated to the CPU core. On the other hand, in the case of AMP control, it is assumed that a period in which the CPU core is in an idle state occurs. In the case of SMP control, the execution destination of a program can be controlled in consideration of the priority of the program. However, in the case of an embedded apparatus such as an image forming apparatus, there is a high-load process such as image processing and HDD (hard disk drive) data erasing for improving security. In the case of SMP control, there is a problem that the above-described high-load processing and high-priority processing cannot be sufficiently handled even when other processing is postponed or preferentially executed.

一方、特定の処理の優先度を上げると、その他の処理に影響が出てしまい、例えばユーザの操作レスポンスが低下するなどの問題もある。これまで、マルチコア・プロセッサを使用する組込装置におけるプロセス制御について検討されている。例えば、特開2011‐100277号公報(特許文献1)では、特定のプロセッサに処理負荷が偏ることを抑制するため、システム起動時に前回起動時に記録しておいた起動コア番号からAMP制御のコアを、順次変えることにより特定のコアに負荷が偏ることを抑制する。   On the other hand, when the priority of a specific process is increased, other processes are affected, and there is a problem that, for example, a user's operation response is lowered. Until now, process control in an embedded device using a multi-core processor has been studied. For example, in Japanese Patent Laid-Open No. 2011-1000027 (Patent Document 1), in order to prevent the processing load from being biased to a specific processor, an AMP control core is determined from the activation core number recorded at the time of the previous activation when the system is activated. The load is not biased to a specific core by sequentially changing.

しかしながら、特許文献1では、特定プログラムを実行するコアを事前に固定していること、および起動時にコア固定するプログラムを固定的に割り当てているため、優先度の高い処理や高負荷処理によってユーザの操作性が低下する点を改善することはできなかった。   However, in Patent Document 1, since the core for executing the specific program is fixed in advance and the program for fixing the core at the time of startup is fixedly assigned, the user's processing is performed by high priority processing or high load processing. It was not possible to improve the point where the operability deteriorated.

本発明は、組込装置でのプログラム実行において、マルチコア・プロセッシングにおけるユーザ操作性を改善する技術を提供することを目的とする。   An object of the present invention is to provide a technique for improving user operability in multi-core processing in program execution on an embedded device.

本発明によれば、
並列実行を行う情報処理装置であって、
複数のコアを有するCPUを含む制御手段と、
前記並列実行するべき処理を、前記複数のコアに分散して発行する手段と
を含み、前記並列実行するべき処理を、前記複数のコアに分散して発行する手段は、
前記並列実行するべき処理の優先度または負荷に応じて、前記複数のコア全部を対象として複数の処理を発行するか、または処理を専ら実行する固定したコアを選択して処理を発行する
情報処理装置が提供される。
According to the present invention,
An information processing apparatus that performs parallel execution,
Control means including a CPU having a plurality of cores;
Means for distributing and issuing the processes to be executed in parallel to the plurality of cores, and means for distributing and issuing the processes to be executed in parallel to the plurality of cores,
Depending on the priority or load of the processes to be executed in parallel, a plurality of processes are issued for all of the plurality of cores, or a fixed core that exclusively executes the processes is selected and the process is issued. An apparatus is provided.

本発明によれば、組込装置でのプログラム実行において、マルチコア・プロセッシングにおけるユーザ操作性を改善する技術を提供することが可能となる。   According to the present invention, it is possible to provide a technique for improving user operability in multi-core processing in executing a program on an embedded device.

画像形成装置120のハードウェアブロック100を示す図。1 is a diagram illustrating a hardware block 100 of an image forming apparatus 120. FIG. 本実施形態のCPU104の詳細な構造を示す図。The figure which shows the detailed structure of CPU104 of this embodiment. 本実施形態の画像形成装置120のソフトウェアブロック300を示す図。FIG. 3 is a diagram showing a software block 300 of the image forming apparatus 120 of the present embodiment. 本実施形態のプログラムの並列実行を説明する概念図。The conceptual diagram explaining the parallel execution of the program of this embodiment. 本実施形態の負荷分散処理のフローチャート。The flowchart of the load distribution process of this embodiment. 実施形態で、アプリの機能を提供するプログラムのプログラム識別値を特定のコアに割り当てる情報の実施形態を示す図。The figure which shows embodiment of the information which allocates the program identification value of the program which provides the function of an application to a specific core in embodiment. 本実施形態において、優先/高負荷ジョブが終了した後に、第1のポリシーによる負荷分散処理に復帰する際の処理のフローチャート。9 is a flowchart of processing when returning to load distribution processing according to a first policy after a priority / high load job ends in the present embodiment. 本実施形態において、優先/高負荷アプリの実行中に、負荷分散ポリシーの切替を行う実施形態のフローチャート。In the present embodiment, a flowchart of an embodiment for switching a load distribution policy during execution of a priority / high load application.

以下、本発明を実施形態により説明するが、本発明は、後述する実施形態に限定されるものではない。図1は、本実施形態の情報処理装置が、組込装置、具体的には、画像形成装置であるものとして、画像形成装置120のハードウェアブロック100を示す。なお、図1には、説明の便宜上、画像形成装置120が外部アクセスする際の要素も記述した。本実施形態の画像形成装置120は、組込装置として構成されており、プロッタ101といった画像を出力する機器、スキャナ102といった原稿をデジタル化する機器、および画像形成装置120の全体の処理を司る制御部130を含んでいる。制御部130が、本実施形態における制御手段に相当する。   Hereinafter, although this invention is demonstrated by embodiment, this invention is not limited to embodiment mentioned later. FIG. 1 shows a hardware block 100 of an image forming apparatus 120 on the assumption that the information processing apparatus of the present embodiment is an embedded apparatus, specifically, an image forming apparatus. For convenience of explanation, FIG. 1 also illustrates elements when the image forming apparatus 120 performs external access. The image forming apparatus 120 according to the present embodiment is configured as an embedded device, and controls the overall processing of the image forming apparatus 120, such as a device that outputs an image such as the plotter 101, a device that digitizes a document such as the scanner 102, and the like. Part 130 is included. The control unit 130 corresponds to the control unit in this embodiment.

制御部130は、例えば特定用途集積回路(AISC)を備える画像処理回路103を含んでおり、画像処理回路103は、プロッタ101およびスキャナ102の機能を提供するために、画像処理を実行する。さらに制御部130は、CPU104、RAM105、ROM106を含んでいる。   The control unit 130 includes, for example, an image processing circuit 103 including an application specific integrated circuit (AISC), and the image processing circuit 103 executes image processing in order to provide the functions of the plotter 101 and the scanner 102. Further, the control unit 130 includes a CPU 104, a RAM 105, and a ROM 106.

CPU104は、本実施形態ではマルチコア・プロセッサであり、CPUコアへの負荷分散を行いながら複数のプログラム並列実行する。RAM105は、オペレーティング・システム(OS)といったプログラムを読み込んでプログラムをCPU104が実行するための実行空間を提供する。その他、CPU104がプログラムを実行するためのデータなどを格納する記憶空間を提供する。   The CPU 104 is a multi-core processor in this embodiment, and executes a plurality of programs in parallel while distributing the load to the CPU core. The RAM 105 provides an execution space for the CPU 104 to read a program such as an operating system (OS) and execute the program. In addition, it provides a storage space for storing data for the CPU 104 to execute the program.

ROM106は、BIOS(Bacic Input Output System)、ブートストラップ(Bootstrap)プログラム、その他、CPU104が機能を提供するためのプログラムを記憶しており、CPU104の起動時にプログラムをCPU104に読み込ませ、ハードウェアの初期設定、OS起動、実行モニタなどの機能を可能とする。以上のハードウェア・ブロックは、システムバス112により相互接続されていて、システムクロックに従ってその動作が制御されている。   The ROM 106 stores a BIOS (Bacic Input Output System), a bootstrap (Bootstrap) program, and other programs for the CPU 104 to provide functions. When the CPU 104 is started, the program is read by the CPU 104 to initialize the hardware. Functions such as setting, OS startup, and execution monitoring are made possible. The above hardware blocks are interconnected by the system bus 112, and their operations are controlled according to the system clock.

また、制御部130は、PCIeといった周辺バスを介して接続されたFCU107、UIF108、HDD109およびNIC110を備えている。FCU107は、G3、G4といった規格のファクシミリ通信を制御するための回路である。UIF108は、ディスプレイ装置、タッチパネル、テンキー/キーボードなどのユーザインタフェースを制御するための回路である。ハードディスク・ドライブ(以下、HDD装置109として参照する)109は、例えばATA、SATA、USBなどの通信プロトコルを使用して、外付け記録媒体を制御するための回路である。   The control unit 130 includes an FCU 107, a UIF 108, an HDD 109, and a NIC 110 connected via a peripheral bus such as PCIe. The FCU 107 is a circuit for controlling facsimile communication of standards such as G3 and G4. The UIF 108 is a circuit for controlling user interfaces such as a display device, a touch panel, and a numeric keypad / keyboard. A hard disk drive (hereinafter referred to as HDD device 109) 109 is a circuit for controlling an external recording medium using a communication protocol such as ATA, SATA, or USB.

NIC(ネットワークインタフェース・カード)110は、ネットワーク113へと画像形成装置120を接続させることで、ウェブ・サーバ、ストレージ・サーバ、認証サーバ、クラウド・サーバといった外部装置111との情報通信を可能としている。本実施形態のネットワーク113は、イーサネット(登録商標)、FTH、IEEE802.xなどの有線または無線プロトコルを使用してLAN、インターネットを適宜含んで構成することができ、特に通信プロトコルには限定はない。   A NIC (network interface card) 110 connects an image forming apparatus 120 to a network 113 to enable information communication with an external apparatus 111 such as a web server, a storage server, an authentication server, or a cloud server. . The network 113 of this embodiment includes Ethernet (registered trademark), FTH, IEEE802. A wired or wireless protocol such as x can be used to appropriately include a LAN and the Internet, and the communication protocol is not particularly limited.

本実施形態で使用するCPU104は、例えば、PENTIUM(登録商標)DUAL CORE(登録商標)、CORE2 DUO(登録商標)、CORE2 QUAD(登録商標)、CELERON(登録商標) DUAL CORE、ATOM(登録商標)、CORE2DUO(登録商標)、CORE2QUAD(登録商標)、COREi(登録商標)シリーズなどの他、XEON(登録商標)、マルチコア構成を備えるPENTIUM(登録商標)互換CPU、POWER PC(登録商標)などを挙げることができるがこれらに限定されるものではない。   The CPU 104 used in the present embodiment is, for example, PENTIUM (registered trademark) DUAL CORE (registered trademark), CORE2 DUO (registered trademark), CORE2 QUAD (registered trademark), CELERON (registered trademark) DUAL CORE, or ATOM (registered trademark). , CORE2DUO (registered trademark), CORE2QUAD (registered trademark), COREi (registered trademark) series, XEON (registered trademark), PENTIUM (registered trademark) compatible CPU with multi-core configuration, POWER PC (registered trademark), etc. However, the present invention is not limited to these.

使用するオペレーティング・システム(OS)としては、WindowsServer(登録商標)、UNIX(登録商標)、LINUX(登録商標)、OPENBSD、CentOS、Ubntuまたはそれ以外の適切なOSを挙げることができる。さらに、CPU104は、上述したOS上で動作する、アセンブラ言語、C、C++、Visual C++、VisualBasic、Java(登録商標)、JavaScript(登録商標)、Perl、Ruby、Pythonなどのプログラミング言語により記述されたアプリケーション・プログラムを格納し、実行することができる。   As an operating system (OS) to be used, Windows Server (registered trademark), UNIX (registered trademark), LINUX (registered trademark), OPENBSD, CentOS, Ubuntu, or any other suitable OS can be cited. Further, the CPU 104 is written in a programming language such as assembler language, C, C ++, Visual C ++, VisualBasic, Java (registered trademark), JavaScript (registered trademark), Perl, Ruby, Python, etc., which operates on the OS described above. Application programs can be stored and executed.

図2は、本実施形態のCPU104の詳細な構造を示す。なお、図2には、CPU104の機能を説明する上で、RAM105の適切なアドレス領域に構成される、実行キュー201〜204および実行プログラムリスト218も示す。実行プログラムリスト218が、本実施形態におけるプログラムの識別値に応じて処理先のコアを固定するか否かを判断するためのリスト手段に相当する。   FIG. 2 shows the detailed structure of the CPU 104 of this embodiment. FIG. 2 also shows execution queues 201 to 204 and an execution program list 218 configured in an appropriate address area of the RAM 105 for explaining the function of the CPU 104. The execution program list 218 corresponds to list means for determining whether or not to fix the processing target core according to the identification value of the program in the present embodiment.

CPU104は、図2に示すように複数のコア205、コア206、コア207、コア208を備えるマルチコア構成を採用する。各コア205〜207は、それぞれのために用意された実行キュー201〜204に格納されたプログラムを、先入れ先出し順に読み出してプログラムを実行する。本実施形態における実行キューが、本実施形態における実行待ち手段に相当する。   The CPU 104 adopts a multi-core configuration including a plurality of cores 205, cores 206, cores 207, and cores 208 as shown in FIG. The cores 205 to 207 read the programs stored in the execution queues 201 to 204 prepared for the cores 205 to 207 in the order of first-in first-out, and execute the programs. The execution queue in the present embodiment corresponds to execution waiting means in the present embodiment.

また、本実施形態では、画像形成装置120の機能を提供するためのプログラムの実行要求があると、プログラムまたはプログラムの呼び出しを検出したOSは、プログラム識別値を実行プログラムリスト218に一旦登録する。そして、OS320の実行コア指定部320aによるコア指定処理を経て、当該プログラムが指定されたコアに対応づけされた実行キュー201〜204に送られ、指定されたコアによる実行が可能とされる。   In this embodiment, when there is a request for executing a program for providing the function of the image forming apparatus 120, the OS that detects the program or the program call temporarily registers the program identification value in the execution program list 218. Then, through a core designation process by the execution core designation unit 320a of the OS 320, the program is sent to the execution queues 201 to 204 associated with the designated core, and can be executed by the designated core.

本実施形態の実行キュー205〜208が、プログラムの実行順を制御する手段に相当する。実行コア指定部320aが、コア指定処理を完了した後、実行プログラムリスト218の処理済みの項目は、実行プログラムリスト218から削除される。以上の処理を使用して実行プログラムリスト218は、プログラムが各キューに割り当てられる前に実行コア指定部320aが、実行予定のプログラムを管理する機能を提供し、次にプログラムを実行するべきコア205〜208にプログラムを動的に割り当てることを可能としている。   The execution queues 205 to 208 in the present embodiment correspond to means for controlling the execution order of programs. After the execution core designation unit 320a completes the core designation process, the processed items in the execution program list 218 are deleted from the execution program list 218. Using the above processing, the execution program list 218 provides a function for the execution core specifying unit 320a to manage the program to be executed before the program is assigned to each queue, and then the core 205 to execute the program. It is possible to dynamically assign programs to .about.208.

CPU104は、コア205〜208それぞれが使用するL1キャッシュ209〜212を備えていて、コア205〜208のアクセス効率を改善している。さらに、CPU104は、コア205〜208それぞれに対し、いわゆるアプリケーション・キャッシュとしても参照されるL2キャッシュを提供し、アプリケーションレベルで使用するデータなどへのアクセス効率を改善する。さらに、CPU104は、図示する具体例では、L3キャッシュ217を備えている。L3キャッシュは、コア205〜208が排他的に使用するデータではなく、コア205〜208が共有することができるデータを格納する機能を提供し、コア205〜208が使用する可能性のある共有データへのアクセス効率を改善させている。   The CPU 104 includes L1 caches 209 to 212 used by the cores 205 to 208, respectively, to improve the access efficiency of the cores 205 to 208. Furthermore, the CPU 104 provides an L2 cache, which is also referred to as a so-called application cache, to each of the cores 205 to 208, and improves access efficiency to data used at the application level. Further, the CPU 104 includes an L3 cache 217 in the illustrated example. The L3 cache provides a function of storing data that can be shared by the cores 205 to 208, not data that is exclusively used by the cores 205 to 208, and shared data that may be used by the cores 205 to 208 Has improved access efficiency.

なお、本実施形態で使用するCPU104は、4コア構成に限定されるものではなく、2コア、8コア、16コアなど、処理上の要求に応じて増加させることができる。また、他の実施形態では、マルチコアのCPUをデュアルに実装する、デュアルCPU構成を使用することもできる。   The CPU 104 used in the present embodiment is not limited to the 4-core configuration, and can be increased according to processing requirements such as 2-core, 8-core, and 16-core. In another embodiment, a dual CPU configuration in which multi-core CPUs are mounted in a dual manner can also be used.

図3は、本実施形態の画像形成装置120のソフトウェアブロック300を示す。画像形成装置120は、画像形成装置120が各種機能を提供するためのアプリケーション・プログラム(以下、単に「アプリ」として参照する。)を実装している。これらのアプリとしては、例示的にコピーアプリ310a、プリンタアプリ310b、スキャナアプリ310c、FAXアプリ310d、およびHDD消去アプリ310eを挙げることができるが、これらに限定されるものではない。この他、Firefox(登録商標)、Mozila(登録商標)、Internet Explorer(登録商標)、Apache(登録商標)といった各種のアプリを、提供するべき機能に応じて実装することができることは言うまでもないことである。   FIG. 3 shows a software block 300 of the image forming apparatus 120 of the present embodiment. The image forming apparatus 120 is mounted with an application program (hereinafter simply referred to as “application”) for the image forming apparatus 120 to provide various functions. Examples of these applications include, but are not limited to, a copy application 310a, a printer application 310b, a scanner application 310c, a FAX application 310d, and an HDD deletion application 310e. In addition, it goes without saying that various applications such as Firefox (registered trademark), Mozilla (registered trademark), Internet Explorer (registered trademark), and Apache (registered trademark) can be implemented according to the functions to be provided. is there.

各アプリ310a〜310eは、OS320の管理下で動作しており、OSにより、各アプリ310a〜310eが呼び出し、動作の開始・終了、実行時エラーなどの例外処理などが行われる。本実施形態では、OS320は、さらに実行コア指定部320aを備えていて、本実施形態に従い、アプリを実行する際のコアを指定する機能を提供する。このような実行コア指定部320aとしては、例えばOpenMPのコマンドを解釈実行することができOSのモジュール、UNIX(登録商標)、LINUX(登録商標)のtasksetコマンドを実行するシェルコマンド領域を挙げることができる。本実施形態の実行コア指定部320aが、並列実行するべき処理を、複数のコアに分散して発行する手段および実行コア指定手段に相当する。   Each of the applications 310a to 310e operates under the management of the OS 320, and each of the applications 310a to 310e is called by the OS, and an exception process such as an operation start / end and a runtime error is performed. In the present embodiment, the OS 320 further includes an execution core specifying unit 320a, and provides a function of specifying a core when executing an application according to the present embodiment. Examples of such an execution core specifying unit 320a include an OS module that can interpret and execute an OpenMP command, and a shell command area that executes a UNIX (registered trademark) and LINUX (registered trademark) taskset command. it can. The execution core designating unit 320a of the present embodiment corresponds to a means for distributing and issuing processes to be executed in parallel to a plurality of cores and an execution core designating means.

さらに、画像形成装置120は、ハードウェアとのインタフェースおよび制御を行うためのBIOSおよびCPUの稼働状態、温度、ファン速度などをモニタすることで、コアの負荷を監視および管理するBIOS/モニタプログラム330を備えている。OS320は、BIOS/モニタプログラム330からの情報を取得し、コア205〜208に割り当てるべき、プログラム/スレッドを制御する。   Further, the image forming apparatus 120 monitors and manages the core load by monitoring the operating state, temperature, fan speed, and the like of the BIOS and CPU for interfacing with and controlling the hardware, and the BIOS / monitor program 330. It has. The OS 320 acquires information from the BIOS / monitor program 330 and controls programs / threads to be allocated to the cores 205 to 208.

一般に、特定のコアの負荷が設定された閾値を超えた場合、OS320は、対応する実行キューに登録されたプログラム識別値を、特定のポリシーを使用して他のコアのための実行キューに移動させることで、負荷の高いコアの負荷を軽減して負荷をバランスする。例えば、移転先のコアは、その時点で最も稼働率の低いコアとすることができる。また例えば、一定時間ごとに実行キューの内容を他の実行キューに移転する態様を使用することができる。   In general, when the load of a specific core exceeds a set threshold, the OS 320 moves the program identification value registered in the corresponding execution queue to the execution queue for other cores using a specific policy. By doing so, the load of the core with high load is reduced and the load is balanced. For example, the transfer destination core can be the core with the lowest operating rate at that time. Further, for example, it is possible to use a mode in which the content of the execution queue is transferred to another execution queue at regular intervals.

本実施形態においては、コアの処理負荷を分散させる際、実行キュー単位でコアを移転するのではなく、OSが、アプリの実行を特定のコアに固定する場合には、実行コアが指定されたアプリが、実行コア205〜208に対応する実行キュー201〜204に残され、他のアプリが他のコアに移動される。この結果、コアを固定して実行させるべきアプリが、特定のコアで実行され、他のアプリが、負荷分散ポリシーで規定される他のコアで実行される。すなわち、本実施形態では、特定のコアに対応する実行キューの入れ替えを、コアが指定されたプログラムを残して他のアプリを、他のコアに対応する実行キューに移動させるものである。   In this embodiment, when distributing the processing load of the core, instead of transferring the core in units of execution queues, the execution core is specified when the OS fixes the execution of the application to a specific core. The application is left in the execution queues 201 to 204 corresponding to the execution cores 205 to 208, and another application is moved to another core. As a result, the application that should be executed with the core fixed is executed on the specific core, and the other application is executed on the other core defined by the load distribution policy. In other words, in the present embodiment, the execution queue corresponding to a specific core is replaced by moving other applications to the execution queue corresponding to the other core, leaving the program in which the core is designated.

このため、実行コアが指定されていないアプリは、一定時間毎に行われる実行キューの入れ替え対象とされる。実行キュー201〜204に、コアを固定するべきアプリが登録されていなければ、当該実行キューの内容を、一定時間で移転させることにより、コア205〜208をOSに設定されたポリシーにより負荷分散が可能となる。一方、実行キュー201〜204にコアを固定するべきアプリが登録された場合、当該実行キューは、当該アプリを残して、他のアプリが他の残りの実行キューに移転され、そして当該実行キューは、アプリが終了するまで、他のアプリが割り当てられることがない。   For this reason, an application for which an execution core is not specified is a target for exchanging execution queues performed at regular intervals. If the application that should fix the core is not registered in the execution queues 201 to 204, the content of the execution queue is transferred in a certain time, so that the cores 205 to 208 are load-balanced according to the policy set in the OS. It becomes possible. On the other hand, when an application whose core is to be fixed is registered in the execution queues 201 to 204, the execution queue is transferred to other remaining execution queues, leaving the application, and the execution queue is , No other apps will be assigned until the app is closed.

図4は、本実施形態のプログラムの並列実行を説明する概念図である。図4(a)は従来の処理分散ポリシーに従う実行制御のシーケンスであり、図4(b)は、本実施形態による処理分散ポリシーに従う実行制御のシーケンスである。図4(a)の従来例では、画像形成装置120において、図3に示したコピーアプリ310aを、コア207で、スキャナアプリ301cをコア208で実行するように固定する。そして、その他のプログラムをコア205、206で並列実行するようにコアを割り当てる。   FIG. 4 is a conceptual diagram illustrating parallel execution of the program of the present embodiment. FIG. 4A is a sequence of execution control according to the conventional process distribution policy, and FIG. 4B is a sequence of execution control according to the process distribution policy according to the present embodiment. 4A, the image forming apparatus 120 fixes the copy application 310a illustrated in FIG. 3 to be executed by the core 207 and the scanner application 301c by the core 208. Then, the cores are allocated so that other programs are executed in parallel by the cores 205 and 206.

従来例では、次回に画像形成装置120が動作開始する場合、コピーアプリ310aをコア208に割り当て、コア207を、スキャナアプリ310cに割り当てることで、負荷分散を行う。   In the conventional example, when the image forming apparatus 120 starts to operate next time, the copy application 310a is assigned to the core 208, and the core 207 is assigned to the scanner application 310c to perform load distribution.

しかしながら、図4(a)に示すように、ユーザがスキャナ機能をあまり使用しない場合、コア208は、アイドル状態が続いてしまい、また再起動後にスキャナアプリ310cをコア207に固定したとしても、コア208は、依然としてアイドル状態を続けてしまうことは同じである。このため、アプリを単純に特定のコアに割り当てるポリシーでは、システム全体で無駄が生じてしまうことに対応できない。   However, as shown in FIG. 4A, if the user does not use the scanner function very much, the core 208 remains in the idle state, and even if the scanner application 310c is fixed to the core 207 after restarting, the core 208 It is the same that 208 is still idling. For this reason, a policy in which an application is simply assigned to a specific core cannot cope with the waste of the entire system.

一方、本実施形態では、画像形成装置120の起動時は、アプリを特定の実行コアに対して割り当てることはせず、全コアをアプリ用に開放する。そして、実行コアの指定があるアプリが実行される場合に、当該コアで実行中のアプリを他のコアに移転させ、実行コアが指定されたアプリにコアの容量を占有させる負荷分散ポリシーを採用し、CPU資源を有効利用するものである。   On the other hand, in the present embodiment, when the image forming apparatus 120 is activated, the application is not assigned to a specific execution core, and all the cores are released for the application. Then, when an app with an execution core specified is executed, a load balancing policy is adopted in which the app running on the core is transferred to another core, and the app with the execution core occupies the core capacity The CPU resources are effectively used.

図4(b)の実施形態を使用して具体的に本実施形態の作用を説明する、コピーアプリ310aの起動をトリガとして、それまでコア207で実行されていたアプリは、別のコア208に移動される。また、コア208は、図4(a)と同様に、スキャナアプリ310cに割り当てられているものの、本実施形態では、コア208は、スキャナアプリ310cが実行されない限り、他のコア205、206と同様に、その他のアプリの処理1−a、1−b、2−a、2−bなどを実行することが可能である。   The operation of the present embodiment will be described in detail using the embodiment of FIG. 4B. The application that has been executed in the core 207 until the start of the copy application 310a is triggered by another core 208. Moved. The core 208 is assigned to the scanner application 310c as in FIG. 4A, but in this embodiment, the core 208 is the same as the other cores 205 and 206 unless the scanner application 310c is executed. In addition, other application processes 1-a, 1-b, 2-a, 2-b, and the like can be executed.

すなわち、本実施形態で採用するポリシーによれば、優先性の高い、または高負荷を要求するプログラムが起動されるまでは、コア全部205〜208が均等にプログラムを実行する第1のポリシーで負荷分散を行う。また、優先性が高いか、高負荷を要求するアプリが要求された場合、実行するコアを固定し、それ以外のアプリにはコアを固定することなく実行させる第2のポリシーで負荷分散を達成する。この結果、ユーザ要求による割り込みの発生を優先させつつ、コアの負荷分散を達成することが可能となり、コアの利用性が改善される。   In other words, according to the policy employed in the present embodiment, the load is applied according to the first policy in which all cores 205 to 208 execute the program equally until a program with high priority or a high load is started. Disperse. In addition, when an app with high priority or a request for a high load is requested, the core to be executed is fixed, and load balancing is achieved by the second policy that allows other apps to be executed without fixing the core To do. As a result, it is possible to achieve the load distribution of the core while giving priority to the occurrence of an interrupt due to a user request, and the usability of the core is improved.

なお、本実施形態において、優先度の高いプログラムとは、ユーザ要求による割り込みを契機として動作開始する、コピーアプリ310a、スキャナアプリ310c、FAXアプリ310dの他、検索アプリ、ネットワーク・アクセスアプリなどを挙げることができる。また、本実施形態で高負荷を要求するアプリまたは処理としては、HDD消去アプリ310eによるデータ消去処理および画像描画処理などを挙げることができるがこれらに限定されるものではない。   In the present embodiment, a high priority program includes a copy application 310a, a scanner application 310c, a FAX application 310d, a search application, a network access application, and the like that start operation upon an interruption by a user request. be able to. Further, examples of the application or process that requires a high load in the present embodiment include, but are not limited to, a data erasing process and an image drawing process performed by the HDD erasing application 310e.

図5は、本実施形態の負荷分散処理のフローチャートである。図5の処理は、ステップS500から開始し、ステップS501で優先/高負荷処理が起動されると、ステップS502で、優先/高負荷アプリ実行コア要求を、実装形式に応じて当該アプリまたはOSが発行する。ステップS503では、OS302の実行コア指定部320aが、優先/高負荷アプリ実行コア要求に対応して実行固定コアを確保する処理を実行する。   FIG. 5 is a flowchart of the load distribution process of this embodiment. The processing in FIG. 5 starts from step S500. When priority / high load processing is started in step S501, in step S502, a priority / high load application execution core request is sent by the app or OS according to the implementation format. Issue. In step S503, the execution core designation unit 320a of the OS 302 executes a process of securing an execution fixed core in response to the priority / high load application execution core request.

この処理は、例えば、対応する実行キュー201〜204に登録されているプログラム識別値を他のコアに対応する実行キューに移動させる処理を伴う。さらにこの処理においては、その時点で固定予定のコアが他のアプリを実行している場合、例えば処理負荷の低いコアに処理を移動することで、アプリに対してコアを固定的に確保することにより即時的なアプリの実行可能とする。   This process involves, for example, a process of moving program identification values registered in the corresponding execution queues 201 to 204 to execution queues corresponding to other cores. Furthermore, in this process, if the core scheduled to be fixed at that time is executing another application, for example, by moving the process to a core with a low processing load, the core is fixedly secured to the application. Makes it possible to execute applications immediately.

その後、ステップS504では、実行プログラムリスト218を検索し、先頭に登録されているアプリが、すでに優先/高負荷アプリか否かを判断する。この判断は、アプリに固有に割り当てられているプログラム識別値を使用して実行プログラムリスト218を検索することで実装することができる。実行プログラムリスト218の先頭に登録されているアプリが、現在実行コア指定要求が発行されている優先/高負荷アプリである場合(yes)、ステップS506で当該優先/高負荷アプリのためすでに確保したコアに対応する実行キューにプログラムを登録し、アプリを指定したコアに発行する。この時点ではステップS503の処理で対応する実行キューはからの状態とされているので、実行キューに登録された後、アプリは、即時的実行される。   Thereafter, in step S504, the execution program list 218 is searched, and it is determined whether or not the application registered at the top is already a priority / high load application. This determination can be implemented by searching the execution program list 218 using the program identification value uniquely assigned to the application. If the application registered at the top of the execution program list 218 is a priority / high load application for which an execution core designation request is currently issued (yes), it has already been secured for the priority / high load application in step S506. Register the program in the execution queue corresponding to the core, and issue the application to the specified core. At this time, the corresponding execution queue is set to the empty state in the process of step S503, so that the application is immediately executed after being registered in the execution queue.

一方、ステップS505の判断で、実行プログラムリスト218の先頭に登録されているアプリが、その時点で実行コア指定要求を発行した優先/高負荷アプリでない場合(no)、ステップS507で固定するべき他のコアへとアプリの処理を発行する。この際の処理は、ステップS506で説明したと同様にし実行される。   On the other hand, if it is determined in step S505 that the application registered at the top of the execution program list 218 is not a priority / high load application that has issued an execution core designation request at that time (no), the application to be fixed in step S507. Publish app processing to the core. The process at this time is executed in the same manner as described in step S506.

ステップS506、S507で処理を発行した後、ステップS508で、実行プログラムリスト218が空か否かを判断する。実行プログラムリスト218が空の場合(yes)、コア指定を行わなければならないアプリはもうないので、処理をステップS509に進めて処理を終了する。一方、実行プログラムリスト218が空でない場合(no)、処理をステップS504に戻し、アプリを実行するコアを割り当てて処理を発行させ、ステップS508で実行プログラムリスト218が空になるまで、処理を反復させる。なお、実行プログラムリスト218の先頭に登録されているアプリが、コア指定を要しないアプリである場合、実行コア指定部320aは、第1のポリシーに従って、排他使用されていない、いずれかのコアにアプリを実行させる。   After issuing processing in steps S506 and S507, it is determined in step S508 whether or not the execution program list 218 is empty. If the execution program list 218 is empty (yes), there is no more application that has to be designated as a core, so the process advances to step S509 to end the process. On the other hand, if the execution program list 218 is not empty (no), the process returns to step S504, the core for executing the application is assigned and the process is issued, and the process is repeated until the execution program list 218 is empty in step S508. Let If the application registered at the top of the execution program list 218 is an application that does not require core designation, the execution core designation unit 320a assigns to any core that is not used exclusively according to the first policy. Run the app.

以上の処理により、優先/高負荷アプリの起動割り込みがあるまでは、コアの処理負荷に応じてアプリに対してコアを割り当てながら、優先/高負荷アプリの要求があった時にはプログラムに指定したコアを割り当てて処理を可能とする、本実施形態のポリシーに従い。マルチコア間の負荷分散を可能としている。   With the above processing, until a priority / high load application activation interrupt occurs, the core specified for the program is assigned when a priority / high load application is requested while assigning the core to the application according to the core processing load. According to the policy of this embodiment, which can be processed by allocating. It enables load distribution among multiple cores.

図6は、本実施形態で、アプリの機能を提供するプログラムのプログラム識別値を特定のコアに割り当てる情報の実施形態を示す。図6の情報は、プログラムの実装形式に応じてOS320の実行コア指定部320aの実行時データとして作成することもできるし、アプリを提供するプログラムのコア指定情報として行ごとに分散させてアプリのプログラム・コード中に記述することもできる。図6に示したアプリは、ユーザ要求により優先度を高くするべきアプリの他、例えば、HDDデータ消去といった高負荷を要求するアプリである。   FIG. 6 shows an embodiment of information for assigning a program identification value of a program providing an application function to a specific core in this embodiment. The information in FIG. 6 can be created as runtime data of the execution core designation unit 320a of the OS 320 according to the implementation format of the program. Alternatively, the information shown in FIG. It can also be described in program code. The application shown in FIG. 6 is an application that requests a high load such as, for example, HDD data erasure, in addition to an application whose priority should be increased according to a user request.

図6に示したアプリは、単なる例示であり、この他にもユーザによる割り込みに応じて処理を開始するべきアプリまたは処理は、図6の情報に追加することができる。これら以外の、例えば、機器チェック、ファクシミリ受信、稼働状況モニタ、その他の非ユーザ要求のアプリ、サービスについては、特定の用途および目的に応じて図6の情報に追加できるが、本実施形態の要旨においては、「その他のアプリ」として分類されるべきものである。   The application shown in FIG. 6 is merely an example, and other applications or processes that should start processing in response to an interruption by the user can be added to the information in FIG. Other than these, for example, device check, facsimile reception, operation status monitor, and other non-user-requested apps and services can be added to the information in FIG. 6 according to the specific use and purpose. Should be classified as “other apps”.

図7は、本実施形態において、優先/高負荷ジョブが終了した後に、第1のポリシーによる負荷分散処理に復帰する際の処理のフローチャートである。図7の処理は、ステップS700から開始し、ステップS701で、図6に示した情報〜優先/高負荷アプリのプログラム識別値を取得し、ステップS702で実行プログラムリスト218を検索する。   FIG. 7 is a flowchart of a process when returning to the load distribution process based on the first policy after the priority / high load job ends in this embodiment. The processing in FIG. 7 starts from step S700. In step S701, the program identification value of the information to the priority / high load application shown in FIG. 6 is acquired, and the execution program list 218 is searched in step S702.

ステップS703で、実行プログラムリスト218先頭に優先/高負荷アプリのプログラム識別値が登録されていない場合(no)、ステップS704で実行コア指定を解除し、ステップS705で、実行プログラムリスト218が空か否かを判断する。実行プログラムリスト218が空でない場合、ステップS702に処理を戻し、再度、先頭に優先/高負荷処理プログラムが登録されているか否かについて検索する。   If the program identification value of the priority / high load application is not registered at the top of the execution program list 218 in step S703 (no), the execution core designation is canceled in step S704, and the execution program list 218 is empty in step S705. Judge whether or not. If the execution program list 218 is not empty, the process returns to step S702, and a search is again made as to whether a priority / high load processing program is registered at the head.

一方、ステップS703の判断で実行プログラムリスト218に優先/高負荷アプリのプログラム識別値が登録されている場合(yes)、実行コアを確保・実行するための図5の処理に処理を委ね、図7の処理はステップS706に進んで終了する。また、ステップS705の判断で、実行プログラムリスト218が空と判断された場合(yes)、処理はステップS706に進み終了する。   On the other hand, when the program identification value of the priority / high load application is registered in the execution program list 218 in the determination of step S703 (yes), the processing is left to the processing of FIG. 5 for securing and executing the execution core. The process of 7 proceeds to step S706 and ends. If it is determined in step S705 that the execution program list 218 is empty (yes), the process proceeds to step S706 and ends.

なお、図7の処理は、図5の処理に後続して呼び出されることが好ましいが、図5の処理と統合して、一体として負荷分散処理のプログラムモジュールとして実装することができる。   The process of FIG. 7 is preferably called subsequent to the process of FIG. 5, but can be integrated with the process of FIG. 5 and implemented as a program module for the load distribution process.

図8は、本実施形態において、優先/高負荷アプリの実行中に、負荷分散ポリシーの切替を行う実施形態のフローチャートである。図8の処理は、ステップS800から開始し、ステップS801で優先/高負荷アプリが呼び出されると、例えばプロセス管理リストに対応するアプリを登録し、当該アプリに実行フラグを設定する。その後、ステップS802で、図5のステップS506またはステップS507を呼び出して、コアを固定した第2のポリシーの下での処理を開始させる。   FIG. 8 is a flowchart of an embodiment in which the load balancing policy is switched during execution of the priority / high load application in the present embodiment. The processing in FIG. 8 starts from step S800. When a priority / high load application is called in step S801, for example, an application corresponding to the process management list is registered, and an execution flag is set for the application. After that, in step S802, step S506 or step S507 in FIG. 5 is called to start processing under the second policy in which the core is fixed.

次いでステップS803で新規アプリの起動が要求されると、ステップS804で、新規アプリが優先/高負荷アプリであるか否かを判断し、優先/高負荷アプリでない場合(no)、処理をステップS810に分岐させ、図7のステップS702〜S705の処理を適用して、利用可能な固定されていないコアの中から第1のポリシーに従い、コアを割り当て、アプリを該当する実行キュー201〜204に発行する。   Next, when activation of a new application is requested in step S803, it is determined in step S804 whether the new application is a priority / high load application. If the new application is not a priority / high load application (no), the process proceeds to step S810. 7 and apply the processing of steps S702 to S705 in FIG. 7 to allocate cores according to the first policy from among the unfixed cores that can be used, and issue the application to the corresponding execution queues 201 to 204. To do.

一方、ステップS804の判断で、優先/高負荷アプリが要求されていると判断された場合(yes)、ステップS805で、図5のステップS507を呼び出して、コアを固定した第2のポリシーの下での処理を開始させる。その後、ステップS806で、先行して動作していた優先/高負荷アプリが終了すると、ステップS807で図7のステップ702〜S705を呼び出して、実行コアの解除を行う。その後、ステップS808でプロセス管理リストの該当するアプリの動作フラグを解除し、処理はステップS809に進んで終了する。   On the other hand, if it is determined in step S804 that a priority / high load application is requested (yes), in step S805, step S507 of FIG. Start processing at. Thereafter, in step S806, when the priority / high load application operating in advance is terminated, in steps S807, steps 702 to S705 in FIG. 7 are called to cancel the execution core. Thereafter, in step S808, the operation flag of the corresponding application in the process management list is canceled, and the process proceeds to step S809 and ends.

以上の処理によって、優先/高負荷アプリの実行中に起動されたプログラムにおいても、優先/高負荷アプリとの競合による意図しない性能低下を防ぐことができる。なお、本実施形態の負荷分散プログラムは、アプリの機能を提供するプログラム自体に、コア指定、コア解除を行うOSコマンドを記述しておくことができる。   With the above processing, it is possible to prevent unintended performance degradation due to contention with the priority / high load application even in a program started during execution of the priority / high load application. Note that the load distribution program of the present embodiment can describe OS commands for specifying and releasing cores in the program itself that provides the application functions.

また、他の実施形態では、ShellScriptといったOSコマンドをアプリを提供するためのプログラムとは別に用意し、アプリの実行状態をOSプログラムが監視して第1のポリシーおよび第2のポリシーを切り替え制御することができる。また、本実施形態の負荷分散処理を実行するためのプログラムは、C++、Java(登録商標)、ShellScriptなどいかなる言語で記述することができ、特に限定されるものではない。   In another embodiment, an OS command such as ShellScript is prepared separately from a program for providing an application, and the OS program monitors the execution state of the application and switches and controls the first policy and the second policy. be able to. In addition, the program for executing the load distribution process of the present embodiment can be described in any language such as C ++, Java (registered trademark), ShellScript, and is not particularly limited.

これまで本発明を、実施形態をもって説明してきたが、本発明は、実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。   The present invention has been described with the embodiment. However, the present invention is not limited to the embodiment, and other embodiments, additions, modifications, deletions, and the like can be conceived by those skilled in the art. Any of the embodiments is included in the scope of the present invention as long as the operations and effects of the present invention are exhibited.

100 :ハードウェアブロック
101 :プロッタ
102 :スキャナ
103 :画像処理回路
104 :CPU
105 :RAM
106 :ROM
109 :HDD装置
111 :外部装置
113 :ネットワーク
120 :画像形成装置
130 :制御部
201〜204 :実行キュー
205〜208 :コア
209〜212 :L1キャッシュ
213〜216 :L2キャッシュ
217 :L3キャッシュ
218 :実行プログラムリスト
300 :ソフトウェアブロック
301c :スキャナアプリ
310a :コピーアプリ
310b :プリンタアプリ
310c :スキャナアプリ
310d :FAXアプリ
310e :HDD消去アプリ
320a :実行コア指定部
330 :モニタプログラム
100: Hardware block 101: Plotter 102: Scanner 103: Image processing circuit 104: CPU
105: RAM
106: ROM
109: HDD device 111: External device 113: Network 120: Image forming device 130: Control units 201-204: Execution queues 205-208: Cores 209-212: L1 caches 213-216: L2 cache 217: L3 cache 218: Execution Program list 300: Software block 301c: Scanner application 310a: Copy application 310b: Printer application 310c: Scanner application 310d: FAX application 310e: HDD erasure application 320a: Execution core designation unit 330: Monitor program

特開2011‐100277号公報JP 2011-1000027 A1

Claims (9)

並列実行を行う情報処理装置であって、
複数のコアを有するCPUを含む制御手段と、
前記並列実行するべき処理を、前記複数のコアに分散して発行する手段と
を含み、前記並列実行するべき処理を、前記複数のコアに分散して発行する手段は、
前記並列実行するべき処理の優先度または負荷に応じて、前記複数のコア全部を対象として複数の処理を発行するか、または処理を専ら実行する固定したコアを選択して処理を発行する
情報処理装置。
An information processing apparatus that performs parallel execution,
Control means including a CPU having a plurality of cores;
Means for distributing and issuing the processes to be executed in parallel to the plurality of cores, and means for distributing and issuing the processes to be executed in parallel to the plurality of cores,
Depending on the priority or load of the processes to be executed in parallel, a plurality of processes are issued for all of the plurality of cores, or a fixed core that exclusively executes the processes is selected and the process is issued. apparatus.
前記情報処理装置は、ユーザにより要求される処理を前記優先度の高い処理として、前記固定したコアを割り当てる、請求項1に記載の情報処理装置。   The information processing apparatus according to claim 1, wherein the information processing apparatus allocates the fixed core by setting a process requested by a user as the process having a high priority. 前記情報処理装置は、HDD装置のデータ消去処理および画像描画処理のための負荷を、それぞれ異なる前記固定したコアに処理させる、請求項1または2に記載の情報処理装置。   The information processing apparatus according to claim 1, wherein the information processing apparatus causes the different fixed cores to process loads for data erasure processing and image drawing processing of the HDD device. 前記情報処理装置は、さらに、
前記複数のコアに依頼する処理の識別値を、先入れ先出し方式で管理するとともに、前記識別値に応じて処理先のコアを固定するか否かを判断するためのリスト手段と、
前記リスト手段に登録された前記処理を、前記判断に応じて予め空にされた当該処理を実行するべき前記コアに対応する実行待ち手段に送付する実行コア指定手段とを含む、請求項1〜3のいずれか1項に記載の情報処理装置。
The information processing apparatus further includes:
The list means for determining whether or not to fix the processing target core according to the identification value, while managing the identification value of the processing requested to the plurality of cores in a first-in first-out manner,
The execution core designating means for sending the process registered in the list means to an execution waiting means corresponding to the core that is to be executed in advance according to the determination. 4. The information processing apparatus according to any one of 3.
前記情報処理装置は、組込装置である、請求項1〜4のいずれか1項に記載の情報処理装置。   The information processing apparatus according to claim 1, wherein the information processing apparatus is an embedded apparatus. 並列実行を行う情報処理装置が実行する装置実行可能な情報処理方法であって、
前記並列実行するべき処理の優先度または負荷を決定するステップと、
前記複数のコアに前記並列実行するべき処理を分散して発行するステップと、
前記複数のコアに前記並列実行するべき処理を発行するステップと
を含み、
前記並列実行するべき処理を、前記複数のコアに分散して発行するステップは、
前記並列実行するべき処理の優先度または負荷に応じて、前記複数のコア全部を対象として複数の処理を発行するか、または処理を専ら実行する固定したコアを選択して処理を発行するするステップを含む、情報処理方法。
A device-executable information processing method executed by an information processing device performing parallel execution,
Determining the priority or load of the processes to be executed in parallel;
Distributing and issuing the processes to be executed in parallel to the plurality of cores;
Issuing the processes to be executed in parallel to the plurality of cores,
Distributing the processes to be executed in parallel to the plurality of cores,
Issuing a plurality of processes for all of the plurality of cores, or selecting a fixed core that exclusively executes the processes and issuing a process according to the priority or load of the processes to be executed in parallel Including an information processing method.
前記並列実行するべき処理を、前記複数のコアに分散して発行するステップは、ユーザにより要求される処理を前記優先度の高い処理に前記固定したコアを割り当てるステップを含む、請求項6に記載の情報処理方法。   The step of distributing and issuing the processes to be executed in parallel to the plurality of cores includes a step of assigning the fixed core to a process having a high priority for a process requested by a user. Information processing method. さらに、
前記複数のコアに依頼する処理の識別値を、先入れ先出し方式で管理するとともに、前記識別値に応じて処理先のコアを固定するか否かを判断するステップと
前記判断に応じて予め空にされた当該処理を実行するべき前記コアに対応する実行待ち手段に前記処理を送付するステップと
を含む請求項6または7に記載の情報処理方法。
further,
Managing the identification values of the processing requested to the plurality of cores by a first-in first-out method, determining whether to fix the processing target core according to the identification values, and preempting in accordance with the determination The information processing method according to claim 6, further comprising: sending the process to an execution waiting unit corresponding to the core that is to execute the process.
処理を並列実行するための情報処理装置実行可能なプログラムであって、前記プログラムは、情報処理装置が、
前記並列実行するべき処理の優先度または負荷を決定するステップと、
前記複数のコアに前記並列実行するべき処理を分散して発行するステップと、
前記複数のコアに前記並列実行するべき処理を発行するステップと
を実行し、
前記並列実行するべき処理を、前記複数のコアに分散して発行するステップは、
前記並列実行するべき処理の優先度または負荷に応じて、前記複数のコア全部を対象として複数の処理を発行するか、または処理を専ら実行する固定したコアを選択して処理を発行するするステップを含む、
プログラム。
An information processing apparatus executable program for executing processing in parallel, wherein the program is
Determining the priority or load of the processes to be executed in parallel;
Distributing and issuing the processes to be executed in parallel to the plurality of cores;
Issuing the processes to be executed in parallel to the plurality of cores,
Distributing the processes to be executed in parallel to the plurality of cores,
Issuing a plurality of processes for all of the plurality of cores, or selecting a fixed core that exclusively executes the processes and issuing a process according to the priority or load of the processes to be executed in parallel including,
program.
JP2016038571A 2016-03-01 2016-03-01 Information processing apparatus, information processing method, and program Pending JP2017156907A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016038571A JP2017156907A (en) 2016-03-01 2016-03-01 Information processing apparatus, information processing method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016038571A JP2017156907A (en) 2016-03-01 2016-03-01 Information processing apparatus, information processing method, and program

Publications (1)

Publication Number Publication Date
JP2017156907A true JP2017156907A (en) 2017-09-07

Family

ID=59809736

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016038571A Pending JP2017156907A (en) 2016-03-01 2016-03-01 Information processing apparatus, information processing method, and program

Country Status (1)

Country Link
JP (1) JP2017156907A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019093612A (en) * 2017-11-22 2019-06-20 コニカミノルタ株式会社 Image formation apparatus and program

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019093612A (en) * 2017-11-22 2019-06-20 コニカミノルタ株式会社 Image formation apparatus and program
JP7006173B2 (en) 2017-11-22 2022-01-24 コニカミノルタ株式会社 Image forming device and program

Similar Documents

Publication Publication Date Title
CN112099941B (en) Method, equipment and system for realizing hardware acceleration processing
JP6101170B2 (en) Computer system, cache management method, and computer
JP4719655B2 (en) Processor control technology on the network
US20210089343A1 (en) Information processing apparatus and information processing method
US20130247056A1 (en) Virtual machine control method and virtual machine
WO2018157836A1 (en) Resource management method for programmable hardware, programmable hardware device, and storage medium
US20110107344A1 (en) Multi-core apparatus and load balancing method thereof
US9489295B2 (en) Information processing apparatus and method
JP6123626B2 (en) Process resumption method, process resumption program, and information processing system
US20150154042A1 (en) Computer system and control method for virtual machine
US10579416B2 (en) Thread interrupt offload re-prioritization
JP5124430B2 (en) Virtual machine migration method, server, and program
WO2017056310A1 (en) Computer and control method for computer
JP2007188523A (en) Task execution method and multiprocessor system
JP5158576B2 (en) I / O control system, I / O control method, and I / O control program
JP6518087B2 (en) Program processing device
CN111782419B (en) Cache updating method, device, equipment and storage medium
JP2017156907A (en) Information processing apparatus, information processing method, and program
JP4594889B2 (en) Method for tracing program executed on a system including a plurality of processing devices, and system including a plurality of processing devices
WO2011039887A1 (en) Computer device
US10909044B2 (en) Access control device, access control method, and recording medium containing access control program
JP2007102447A (en) Arithmetic processor
JP6232127B2 (en) Shared resource update device and shared resource update method
JP6364827B2 (en) Information processing apparatus, resource access method thereof, and resource access program
JP5699665B2 (en) Server apparatus, process execution method, and program