JP2015197802A - Information processing device, information processing method and program - Google Patents

Information processing device, information processing method and program Download PDF

Info

Publication number
JP2015197802A
JP2015197802A JP2014075544A JP2014075544A JP2015197802A JP 2015197802 A JP2015197802 A JP 2015197802A JP 2014075544 A JP2014075544 A JP 2014075544A JP 2014075544 A JP2014075544 A JP 2014075544A JP 2015197802 A JP2015197802 A JP 2015197802A
Authority
JP
Japan
Prior art keywords
processing
information
avoidance
request
execution
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
JP2014075544A
Other languages
Japanese (ja)
Inventor
哲彦 矢尾
Tetsuhiko Yao
哲彦 矢尾
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2014075544A priority Critical patent/JP2015197802A/en
Publication of JP2015197802A publication Critical patent/JP2015197802A/en
Pending legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To improve throughput without deteriorating real time performance in an environment adopting a multi-core and dual kernel system.SOLUTION: An information processing device having a plurality of processing execution means has control means for cooperating processing by the plurality of processing execution means. The control means includes detection means for detecting a processing request issued from second processing execution means for executing non-priority processing to first processing execution means during the execution of priority processing, determination means for determining whether processing of the processing request is avoidable in the case that the detection means detects the processing request, and execution means for executing avoidance correspondence processing to the processing request in the case that the determination means determines to be avoidable.

Description

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

汎用OSに対して、既存の機能を損なわずにリアルタイム性能を向上させる方式としてデュアルカーネル方式が存在する。デュアルカーネル方式とは、カーネル内に本来のカーネルよりも動作優先度の高いサブシステムを追加し、サブシステム上でリアルタイム性能が要求されるタスクを動作させることで、システムのリアルタイム性能を向上させる手法のことである。以後の説明では、サブシステム側をリアルタイムドメイン、既存のカーネル側をノンリアルタイムドメインという。この動作優先度に則した形で制御するために、カーネルとハードウェアとの間にカーネルとは独立したソフトウェア(以下、ハイパバイザという)を配置し、リアルタイムドメインとノンリアルタイムドメインとの挙動を制御している。
ノンリアルタイムドメインにとって、リアルタイムドメインは透過的であり、ノンリアルタイムドメイン側がリアルタイムドメインの存在を意識する必要はない。即ち、リアルタイムドメインは、ノンリアルタイムドメインよりも優先的に動作する。リアルタイムドメイン上のタスクが起床した場合、ノンリアルタイムドメイン上でどのようなタスクが動作していようがプリエンプションされ、リアルタイムドメインタスクの動作を開始する。
For the general-purpose OS, there is a dual kernel method as a method for improving real-time performance without losing existing functions. The dual kernel method is a method that improves the real-time performance of the system by adding a subsystem with higher operating priority than the original kernel in the kernel and operating tasks that require real-time performance on the subsystem. That is. In the following description, the subsystem side is referred to as a real-time domain, and the existing kernel side is referred to as a non-real-time domain. In order to control in accordance with this operation priority, software independent of the kernel (hereinafter referred to as hypervisor) is placed between the kernel and hardware to control the behavior of the real-time domain and non-real-time domain. ing.
For the non-real time domain, the real time domain is transparent, and the non-real time domain does not need to be aware of the existence of the real time domain. That is, the real-time domain operates with priority over the non-real-time domain. When a task on the real-time domain wakes up, it is preempted regardless of what task is operating on the non-real-time domain, and starts the operation of the real-time domain task.

また、ドメインとCPUとは非依存関係となっており、任意のCPUで任意のドメインでの動作と、ドメイン間の切り替えとが可能である。マルチコア環境においては、あるCPUがリアルタイムドメインで動作している間でも、他のCPUはノンリアルタイムドメインで動作することが可能である。そのため、リアルタイム性を維持しながら、マルチコアを活用してシステム全体のスループットを向上させることができる。
特許文献1には、マルチコア、かつ、デュアルカーネル方式を採用した環境においてスループットを向上させるための技術が開示されている。この技術では、CPU1が優先度の高いドメインAで動作中に、優先度の低いドメインBで動作中のCPU2がCPU1に対して応答を求める処理を発行した場合、CPU1はドメインAからドメインBに移行する。そして、CPU1が依頼された処理を行いCPU2に応答を返した後、ドメインAに復帰し中断した処理を再開することで、システム全体のスループットを向上させる。
Further, the domain and the CPU are independent of each other, and any CPU can operate in any domain and switch between domains. In a multi-core environment, while a certain CPU operates in the real-time domain, other CPUs can operate in the non-real-time domain. Therefore, it is possible to improve the throughput of the entire system by utilizing multi-core while maintaining the real-time property.
Patent Document 1 discloses a technique for improving throughput in an environment employing a multi-core and dual kernel method. In this technology, when the CPU 1 operating in the domain A having a high priority and the CPU 2 operating in the domain B having a low priority issue a process for requesting a response to the CPU 1, the CPU 1 changes from the domain A to the domain B. Transition. Then, after the requested processing is performed by the CPU 1 and a response is returned to the CPU 2, the throughput of the entire system is improved by returning to the domain A and restarting the suspended processing.

特開2010−250817号公報JP 2010-250817 A

マルチコア環境上で動作する汎用OSには、複数のCPU間で同期が必要な処理が存在する。複数のCPU間で同期が必要な処理の例としては、TranslationLookasideBuffer(以下、TLBという)の同期等があげられる。
リアルタイムドメインにリアルタイムOS、ノンリアルタイムドメインに汎用OSを採用したデュアルカーネル環境において、リアルタイムドメインで動作中のCPUに対して、ノンリアルタイムドメインで動作中のCPUが何らかの応答を求めたとする。ここで、ノンリアルタイムドメインで動作中のCPUが、応答が返ってくるまで待ち続ける処理を発行した場合、リアルタイムドメインでの処理が終わるまで応答は返ってこず、その間応答を待ち続けることになる。そのため、システム全体のスループットが低下する問題が発生する。
特許文献1に開示されている技術では、この問題に対してスループットを向上させることができる代わりにリアルタイム性能を低下させてしまう。
本発明は、マルチコア、かつ、デュアルカーネル方式を採用した環境において、リアルタイム性能を低下させずにスループットを向上させることを目的とする。
A general-purpose OS that operates in a multi-core environment includes processing that requires synchronization among a plurality of CPUs. An example of processing that requires synchronization among a plurality of CPUs is the synchronization of a translation lookaside buffer (hereinafter referred to as TLB).
In a dual kernel environment in which a real-time OS is used for the real-time domain and a general-purpose OS is used for the non-real-time domain, it is assumed that the CPU operating in the non-real-time domain requests some kind of response to the CPU operating in the real-time domain. Here, when the CPU operating in the non-real-time domain issues a process that continues to wait until a response is returned, the response is not returned until the process in the real-time domain is completed, and the process continues to wait for a response. Therefore, there arises a problem that the throughput of the entire system is lowered.
The technique disclosed in Patent Document 1 reduces the real-time performance instead of improving the throughput with respect to this problem.
An object of the present invention is to improve throughput without degrading real-time performance in an environment employing a multi-core and dual kernel system.

そこで、本発明は、複数の処理実行手段を有する情報処理装置であって、前記複数の処理実行手段による処理を連携する制御手段を有し、前記制御手段は、優先処理を実行中の第1の処理実行手段に対して非優先処理を実行する第2の処理実行手段から発行された処理要求を検出する検出手段と、前記検出手段により前記処理要求が検出された場合、前記処理要求の処理が回避可能であるか否かを判定する判定手段と、前記判定手段により回避可能と判定された場合、前記処理要求に対する回避対応処理を実行する実行手段と、を有する。   Therefore, the present invention is an information processing apparatus having a plurality of process execution means, and has a control means for linking processes by the plurality of process execution means, wherein the control means is a first executing priority process. A detection means for detecting a processing request issued from a second processing execution means for executing non-priority processing on the processing execution means, and processing of the processing request when the detection means detects the processing request Determining means for determining whether or not the problem can be avoided, and execution means for executing an avoidance handling process for the process request when the determination means determines that avoidance is possible.

本発明によれば、マルチコア、かつ、デュアルカーネル方式を採用した環境において、リアルタイム性能を低下させずにスループットを向上させることができる。   According to the present invention, it is possible to improve throughput without degrading real-time performance in an environment employing a multi-core and dual kernel method.

情報処理装置のハードウェア構成の一例を示す図である。It is a figure which shows an example of the hardware constitutions of information processing apparatus. 情報処理装置の機能構成の一例を示す図である。It is a figure which shows an example of a function structure of information processing apparatus. TLBShootdownに関するページテーブルの一例を示す図である。It is a figure which shows an example of the page table regarding TLBSshotdown. TLBShootdownの処理の一例を示すシーケンス図である。It is a sequence diagram which shows an example of a process of TLBSshotdown. 既存技術を適用した場合におけるTLBShootdownの処理の一例を示すシーケンス図である。It is a sequence diagram which shows an example of the process of TLBSrootdown at the time of applying the existing technique. 実施形態で提案する技術を適用した場合におけるTLBShootdownの処理の一例を示すシーケンス図である。It is a sequence diagram which shows an example of the process of TLBSshotdown at the time of applying the technique proposed by embodiment. ドメイン切り替え処理管理テーブルの一例を示す図である。It is a figure which shows an example of a domain switching process management table. 対象処理検出処理の一例を示すフローチャートである。It is a flowchart which shows an example of object process detection processing. 回避手段管理テーブルのデータ構造の一例を示す図である。It is a figure which shows an example of the data structure of an avoidance means management table.

以下、本発明を実施するための形態について図面を用いて説明する。
<実施形態1>
図1は、本実施形態における情報処理装置200のハードウェア構成の一例を示す図である。CPU(CentralProcessingUnit)201、204は、情報処理装置200全体を制御する。なお、CPU201、204は、マルチコア環境における処理実行手段の一例である。MMU(MemoryManagementUnit)202、205は、仮想アドレスを物理アドレスに変換する。TLB(TranslationLookasideBuffer)203、206は、MMUで利用した仮想アドレスと物理アドレスとの対応テーブルをキャッシュする。TLBは、CPU一つにつき一つ存在し、マルチコア環境ではデータの整合性を保つために同期しなければならないケースが存在する。ROM(ReadOnlyMemory)207は、ハードディスクドライブ(以下、HDDという)のような、データやプログラムを記録しておくことができる不揮発な記録媒体である。RAM(RandomAccessMemory)208は、プログラムやデータを一時記憶するメモリであり、システムメモリともいう。アドレスバス209は、アドレスをやり取りするためのバスである。データバス210は、データをやりとりするためのバスである。
Hereinafter, embodiments for carrying out the present invention will be described with reference to the drawings.
<Embodiment 1>
FIG. 1 is a diagram illustrating an example of a hardware configuration of an information processing apparatus 200 according to the present embodiment. CPUs (Central Processing Units) 201 and 204 control the entire information processing apparatus 200. The CPUs 201 and 204 are examples of processing execution means in a multi-core environment. MMUs (Memory Management Units) 202 and 205 convert virtual addresses into physical addresses. TLBs (Translation Lookaside Buffers) 203 and 206 cache a correspondence table between virtual addresses and physical addresses used in the MMU. There is one TLB for each CPU, and in a multi-core environment, there is a case that must be synchronized in order to maintain data consistency. A ROM (Read Only Memory) 207 is a non-volatile recording medium capable of recording data and programs, such as a hard disk drive (hereinafter referred to as HDD). A RAM (Random Access Memory) 208 is a memory that temporarily stores programs and data, and is also referred to as a system memory. The address bus 209 is a bus for exchanging addresses. The data bus 210 is a bus for exchanging data.

CPU201、204が、ROM207等に記憶されているプログラムを実行することにより、情報処理装置200の機能構成及び後述するフローチャートの処理が実現される。情報処理装置200の機能構成には、オペレーティングシステム(以下、OSという)の機能、カーネルの機能、ハイパバイザの機能等も含まれる。なお、図1では、本実施形態における情報処理装置200が2つのCPUを有する構成であるものとしたが、3つ以上のCPUを有する構成であってもよい。   When the CPUs 201 and 204 execute programs stored in the ROM 207 and the like, the functional configuration of the information processing apparatus 200 and the processing of the flowchart described below are realized. The functional configuration of the information processing apparatus 200 includes an operating system (hereinafter referred to as OS) function, a kernel function, a hypervisor function, and the like. In FIG. 1, the information processing apparatus 200 according to the present embodiment is configured to have two CPUs, but may be configured to include three or more CPUs.

図2は、本実施形態における情報処理装置200の機能構成の一例を示す図である。より具体的に説明すると、図2は、本実施形態における情報処理装置200のハイパバイザ100の機能構成の一例を示す図である。本実施形態では、カーネル内に本来のカーネルよりも動作優先度の高いサブシステムを追加し、サブシステム上でリアルタイム性能が要求されるタスクを動作させるデュアルカーネル方式を想定している。ハイパバイザ100は、カーネルとハードウェアとの間に独立した機能として配置し、サブシステム側(リアルタイムドメイン)及び既存のカーネル側(ノンリアルタイムドメイン)を動作優先度に則して制御する。ここで、リアルタイムドメインの処理は、リアルタイム性能が要求される優先処理の一例である。一方、ノンリアルタイムドメインの処理は、リアルタイム性能が要求されない非優先処理の一例である。また、ハイパバイザ100が実行する処理は、リアルタイムドメインの処理とノンリアルタイムドメインの処理とを連携する制御処理の一例である。   FIG. 2 is a diagram illustrating an example of a functional configuration of the information processing apparatus 200 according to the present embodiment. More specifically, FIG. 2 is a diagram illustrating an example of a functional configuration of the hypervisor 100 of the information processing apparatus 200 in the present embodiment. In the present embodiment, a dual kernel method is assumed in which a subsystem having a higher operation priority than the original kernel is added to the kernel, and a task requiring real-time performance is operated on the subsystem. The hypervisor 100 is arranged as an independent function between the kernel and hardware, and controls the subsystem side (real-time domain) and the existing kernel side (non-real-time domain) according to the operation priority. Here, real-time domain processing is an example of priority processing that requires real-time performance. On the other hand, the non-real-time domain process is an example of a non-priority process that does not require real-time performance. The processing executed by the hypervisor 100 is an example of control processing that links real-time domain processing and non-real-time domain processing.

以下、ハイパバイザ100のより具体的な機能構成について説明する。
CPU別ドメイン状態管理テーブル101は、情報処理装置200に含まれる全CPUが、現在、リアルタイムドメインとノンリアルタイムドメインとのどちらのドメインで動作しているかを示す情報を保持するテーブルである。CPU別ドメイン状態管理テーブル101は、CPUの数だけデータを保持する。保持されているデータは、対象のCPUがリアルタイムドメインで動作しているか、ノンリアルタイムドメインで動作しているかを示す。ドメインの状態は排他的であり、両方のドメインで動作している状態や、どちらのドメインでも動作していないという状態は存在しない。
回避手段管理テーブル102は、回避対象として判定された処理に対する回避手段に関する情報を保持するテーブルである。情報処理装置200は、回避手段管理テーブル102を処理毎に保持している。回避手段管理テーブル102には、処理情報毎に処理に対する回避手段に関する情報が関連付けられて記述されている。回避手段管理テーブル102のより詳細な説明については、図9等を用いて後述する。
Hereinafter, a more specific functional configuration of the hypervisor 100 will be described.
The CPU-specific domain state management table 101 is a table that holds information indicating whether all CPUs included in the information processing apparatus 200 are currently operating in a real-time domain or a non-real-time domain. The CPU-specific domain state management table 101 holds data for the number of CPUs. The retained data indicates whether the target CPU is operating in the real time domain or non-real time domain. The state of the domain is exclusive, and there is no state that is operating in both domains or that it is not operating in either domain.
The avoidance means management table 102 is a table that holds information related to avoidance means for a process determined as an avoidance target. The information processing apparatus 200 holds the avoidance means management table 102 for each process. In the avoidance means management table 102, information related to avoidance means for processing is described in association with each processing information. A more detailed description of the avoidance means management table 102 will be described later with reference to FIG.

対象処理検出部103は、リアルタイムドメインで動作中(処理実行中)のCPUに対して、ノンリアルタイムドメインで動作中のCPUが処理を依頼したことを検知する。
回避可能判定部104は、対象処理検出部103で検出された処理が回避可能であるか否かを判定する。
ドメイン切り替え検知部105は、リアルタイムドメインとノンリアルタイムドメインとの切り替えを検知する。
ドメイン切り替え処理管理テーブル106は、ドメイン切り替え検知部105によってドメインの切り替えが検出された際に実行される処理の処理情報を保持する。ドメイン切り替え処理管理テーブル106のより詳細な説明については、図7等を用いて後述する。
なお、本実施形態では、CPU別ドメイン状態管理テーブル101、回避手段管理テーブル102及びドメイン切り替え処理管理テーブル106は、情報処理装置200のROM207やHDDに記憶されているものとしたが、これに限る必要はない。例えば、これらのテーブルは、情報処理装置200とネットワークを介して通信可能な外部の装置に記憶されていてもよい。
以上が本実施形態における情報処理装置200のハイパバイザ100の基本的な構成である。図2の説明では情報処理装置200が使用するデータの内容について詳述しなかったが、以降の説明ではより具体的なデータを用いて本実施形態の処理手順等について説明する。
The target process detection unit 103 detects that a CPU operating in the non-real-time domain has requested processing for a CPU operating in the real-time domain (processing is being executed).
The avoidance determination unit 104 determines whether or not the process detected by the target process detection unit 103 can be avoided.
The domain switching detection unit 105 detects switching between a real-time domain and a non-real-time domain.
The domain switching processing management table 106 holds processing information of processing executed when domain switching is detected by the domain switching detection unit 105. A more detailed description of the domain switching process management table 106 will be described later with reference to FIG.
In this embodiment, the per-CPU domain state management table 101, the avoidance means management table 102, and the domain switching process management table 106 are stored in the ROM 207 and HDD of the information processing apparatus 200. However, the present invention is not limited to this. There is no need. For example, these tables may be stored in an external device that can communicate with the information processing apparatus 200 via a network.
The above is the basic configuration of the hypervisor 100 of the information processing apparatus 200 in the present embodiment. Although the details of the data used by the information processing apparatus 200 are not described in detail in the description of FIG. 2, the processing procedure and the like of the present embodiment will be described using more specific data in the following description.

以下、図3から図5までを用いて、本実施形態を理解する上で必要な既存技術の説明を行う。その後、図6から図9までを用いて、既存技術と比較して本実施形態が有利となる点等の詳細について説明する。
まず、図3及び図4を用いて、本実施形態が有用となる処理例であるTLBShootdownについて説明する。
図3は、TLBShootdownの概要を説明するためのTLBShootdownに関するページテーブルの一例を示す図である。TLBShootdownとは、マルチコア環境で、仮想アドレスと物理アドレスとの対応関係を保持するページテーブルの整合性を保つための処理である。図3の環境では、CPU201、204と、それぞれのCPUに対応したTLB203、206とが存在する。TLB203、206は、プロセス毎に一つ存在するページテーブル301の一部をキャッシュする。ここで、カーネル空間のページテーブルエントリを書き換えるケースを想定する。カーネル空間のページテーブルは全てのプロセスで共通なため、CPU201、204は、同一のカーネル空間のページテーブルエントリを参照しており、TLB203、206は、共通のページテーブルエントリ302を保持している状態とする。
CPU201がページテーブル301上に存在するページテーブルエントリ302を同期をとらずに書き換え、CPU204がページテーブルエントリ302に記載されているアドレスにアクセスしたとする。この場合、TLB206には書き換え前のページテーブルエントリ302がキャッシュされているため、CPU201とCPU204との間で同じアドレスを指定しても別のページを指定してしまい、CPU間におけるページテーブルの整合性がとれなくなる。この整合性を保つための処理がTLBShootdownである。
Hereinafter, the existing techniques necessary for understanding the present embodiment will be described with reference to FIGS. 3 to 5. Then, details such as the advantages of the present embodiment over the existing technology will be described with reference to FIGS.
First, with reference to FIGS. 3 and 4, TLBSshotdown, which is a processing example in which the present embodiment is useful, will be described.
FIG. 3 is a diagram illustrating an example of a page table related to TLBSshot for explaining an outline of TLBSbootdown. TLBshotdown is a process for maintaining the consistency of a page table that holds the correspondence between virtual addresses and physical addresses in a multi-core environment. In the environment of FIG. 3, there are CPUs 201 and 204 and TLBs 203 and 206 corresponding to the respective CPUs. The TLBs 203 and 206 cache a part of the page table 301 that exists for each process. Here, it is assumed that the page table entry in the kernel space is rewritten. Since the kernel space page table is common to all processes, the CPUs 201 and 204 refer to the same kernel space page table entry, and the TLBs 203 and 206 hold the common page table entry 302. And
Assume that the CPU 201 rewrites the page table entry 302 existing on the page table 301 without synchronizing, and the CPU 204 accesses an address described in the page table entry 302. In this case, since the page table entry 302 before rewriting is cached in the TLB 206, even if the same address is specified between the CPU 201 and the CPU 204, another page is specified, and the page table is consistent between the CPUs. Sex is lost. The processing for maintaining this consistency is TLBSshotdown.

次に、TLBShootdownの処理の流れについて、図4を用いて説明する。図4は、TLBShootdownの処理の概要の一例を示すシーケンス図の一例である。CPU201がページテーブルエントリを書き換える場合、このページテーブルエントリを保持するプロセスを実行しているCPU204に対して、ページテーブルエントリ変更開始通知401を送る。なお、CPU201は、前記プロセスを実行しているCPUが複数ある場合は、自身を除く他の全てのCPU(以下、全CPUという)に対してページテーブルエントリ変更開始通知401を送る。CPU201は、ページテーブルエントリ変更開始通知401を通知した全CPU(ここではCPU204)からページテーブルエントリ変更承認通知402が返ってくるまで待機し続ける。
通知を受けたCPU204は、CPU201に対してページテーブルエントリ変更承認通知402を返し、ページテーブルエントリ変更完了通知405を受けるまで待機し続ける。CPU201は、書き換え対象のページテーブルエントリを保持する全CPU(ここではCPU204)から応答が返ってきた後、ページテーブルエントリ変更処理403と、自身(CPU201)のTLB無効化処理404とを行う。そして、CPU201は、待機している全CPU(ここではCPU204)に対してページテーブルエントリ変更完了通知405を送る。ページテーブルエントリ変更完了通知405を受けた全CPU(ここではCPU204)は、TLB無効化処理406を行う。これらの一連の処理が実行されることでTLBShootdownは完了する。
Next, the flow of TLBSshotdown processing will be described with reference to FIG. FIG. 4 is an example of a sequence diagram illustrating an example of an outline of the TLBSshotdown process. When the CPU 201 rewrites the page table entry, the CPU 201 sends a page table entry change start notification 401 to the CPU 204 that is executing a process for holding the page table entry. When there are a plurality of CPUs executing the process, the CPU 201 sends a page table entry change start notification 401 to all other CPUs (hereinafter referred to as all CPUs) except for itself. The CPU 201 continues to wait until the page table entry change approval notification 402 is returned from all the CPUs (here, the CPU 204) that have notified the page table entry change start notification 401.
Upon receiving the notification, the CPU 204 returns a page table entry change approval notification 402 to the CPU 201 and continues to wait until receiving a page table entry change completion notification 405. The CPU 201 performs a page table entry change process 403 and a TLB invalidation process 404 of itself (CPU 201) after responses are returned from all the CPUs (here, the CPU 204) holding the page table entry to be rewritten. Then, the CPU 201 sends a page table entry change completion notification 405 to all the waiting CPUs (here, the CPU 204). All the CPUs (here, the CPU 204) that have received the page table entry change completion notification 405 perform a TLB invalidation process 406. TLBSshotdown is completed by executing these series of processes.

次に、既存のマルチコア・デュアルカーネル方式において、TLBShootdownが発生した場合の処理の流れについて、図5を用いて説明する。図5は、既存技術を適用した場合におけるTLBShootdownの処理の一例を示すシーケンス図の一例である。今、CPU201とCPU204とが動作するマルチコア環境上で、CPU201がリアルタイムドメイン501で動作し、CPU204がノンリアルタイムドメイン502で動作しているものとする。
CPU204がカーネル空間のページテーブルエントリを書き換える場合、書き換え処理を行うCPU以外の全CPU(ここではCPU201)に対してページテーブルエントリ変更開始通知504を送る。ハイパバイザ503を経由した転送通知505により、CPU204からCPU201に、ページテーブルエントリ変更開始通知506が送られるが、CPU201はリアルタイムドメイン501で動作中である。そのため、このノンリアルタイムドメイン502上の処理である、ページテーブルエントリ変更開始通知506に対応するハンドラ処理(割り込み処理)はハイパバイザ503によって、リアルタイムドメイン501上の処理が終了するまで遅延させられる。この間、CPU204は通知に対する応答が返ってくるまでビジーループで待ち続けているため、システムのスループットは低下する。
Next, the flow of processing when TLBSshotdown occurs in the existing multi-core dual kernel method will be described with reference to FIG. FIG. 5 is an example of a sequence diagram illustrating an example of a TLBS bootdown process when an existing technology is applied. Assume that the CPU 201 operates in the real-time domain 501 and the CPU 204 operates in the non-real-time domain 502 in a multi-core environment where the CPU 201 and the CPU 204 operate.
When the CPU 204 rewrites the page table entry in the kernel space, the page table entry change start notification 504 is sent to all the CPUs (here, the CPU 201) other than the CPU that performs the rewriting process. A page table entry change start notification 506 is sent from the CPU 204 to the CPU 201 by the transfer notification 505 via the hypervisor 503, but the CPU 201 is operating in the real-time domain 501. Therefore, the handler process (interrupt process) corresponding to the page table entry change start notification 506, which is the process on the non-real time domain 502, is delayed by the hypervisor 503 until the process on the real time domain 501 is completed. During this time, the CPU 204 continues to wait in a busy loop until a response to the notification is returned, so the system throughput decreases.

CPU201がリアルタイムドメイン501上の処理を終了し、ノンリアルタイムドメイン502上の処理を開始すると、ページテーブルエントリ変更開始通知506に対応するハンドラ処理を実行する。そして、CPU201は、CPU204にページテーブルエントリ変更承認通知507を返す。その結果、ハイパバイザ503を経由した通知転送508によりCPU204のノンリアルタイムドメイン502にページテーブル変更承認通知509が返り、CPU204は処理を再開する。
CPU204は、ページテーブルエントリの変更処理510と、TLB無効化処理511とを行い、ハイパバイザ503を経由してCPU201へページテーブルエントリ変更完了通知512を送る。CPU201は、CPU204から通知転送513を介したページテーブルエントリ変更完了通知514を受け取ると、TLB無効化処理515を実行し、TLBShootdown処理が完了する。
上記の通り、既存の技術では、あるCPUがリアルタイムドメインで動作中に、他のCPUがTLBShootdown命令を発行した場合、スループットが低下する。
When the CPU 201 ends the processing on the real-time domain 501 and starts the processing on the non-real-time domain 502, the handler processing corresponding to the page table entry change start notification 506 is executed. Then, the CPU 201 returns a page table entry change approval notification 507 to the CPU 204. As a result, the notification transfer 508 via the hypervisor 503 returns the page table change approval notification 509 to the non-real time domain 502 of the CPU 204, and the CPU 204 resumes processing.
The CPU 204 performs a page table entry change process 510 and a TLB invalidation process 511, and sends a page table entry change completion notification 512 to the CPU 201 via the hypervisor 503. When the CPU 201 receives the page table entry change completion notification 514 from the CPU 204 via the notification transfer 513, the CPU 201 executes the TLB invalidation processing 515 and completes the TLBSshotdown processing.
As described above, in the existing technology, when a certain CPU is operating in the real-time domain and another CPU issues a TLBSshotdown instruction, the throughput decreases.

次に、本実施形態で提案する技術を適用したマルチコア・デュアルカーネル方式において、TLBShootdownが発生した場合の処理の流れについて、図6を用いて説明する。図6は、本実施形態で提案する技術を適用した場合におけるTLBShootdownの処理の一例を示すシーケンス図の一例である。図5の場合と同様に、CPU201とCPU204とが動作するマルチコア環境上で、CPU201がリアルタイムドメイン601で動作し、CPU204がノンリアルタイムドメイン602で動作しているものとする。
本提案技術では、CPU201は、ノンリアルタイムドメイン602からリアルタイムドメイン601への切り替えの際にTLB無効化処理604を実行する。この結果、CPU201がリアルタイムドメイン601で動作している間はノンリアルタイムドメインのページテーブルがTLBにキャッシュされることがなくなる。
Next, in the multi-core dual kernel method to which the technique proposed in the present embodiment is applied, a processing flow when TLBSshotdown occurs will be described with reference to FIG. FIG. 6 is an example of a sequence diagram illustrating an example of TLBSshotdown processing when the technique proposed in the present embodiment is applied. As in the case of FIG. 5, it is assumed that the CPU 201 operates in the real-time domain 601 and the CPU 204 operates in the non-real-time domain 602 in a multi-core environment where the CPU 201 and the CPU 204 operate.
In the proposed technique, the CPU 201 executes the TLB invalidation process 604 when switching from the non-real time domain 602 to the real time domain 601. As a result, the non-real time domain page table is not cached in the TLB while the CPU 201 operates in the real time domain 601.

CPU204がカーネル空間のページテーブルエントリを書き換えた場合、書き換え処理を行うCPU以外の全CPU(ここではCPU201)に対してページテーブルエントリ変更開始通知605を送ろうとする。ここで本提案技術では、ノンリアルタイムドメイン602で動作中のCPUが応答が来るまで待機する必要がある処理要求を別CPUへ依頼するのをハイパバイザ603が検出すると、CPU実行ドメイン確認処理606を実行する。CPU実行ドメイン確認処理606によって通信先のCPUの実行ドメインがリアルタイムドメインだと確認された場合、ハイパバイザ603は、前記処理要求の処理が回避可能であるか否かの判定処理607を行う。判定処理607において回避可能と判定された場合、ハイパバイザ603は、ノンリアルタイムドメイン602にページテーブルエントリ変更承認通知608を返す。
そして、CPU204は、図5の既存技術と同様にTLBShootdownの処理であるページテーブルエントリ変更処理609、TLB無効化処理610を実行する。その後、既存技術の場合、CPU204は、ハイパバイザ603を経由してページテーブルエントリ変更完了通知611をCPU201に通知しようと試みる。しかし、本提案技術では、ページテーブルエントリ変更完了通知611は無視され、CPU201への通知はされない。
以上の処理により、リアルタイム性能を低下させずにスループットを向上させることができる。
When the CPU 204 rewrites the page table entry in the kernel space, it tries to send a page table entry change start notification 605 to all the CPUs (here, the CPU 201) other than the CPU that performs the rewriting process. Here, in the proposed technique, when the hypervisor 603 detects that a CPU operating in the non-real-time domain 602 needs to wait until a response is received, another CPU executes a CPU execution domain confirmation process 606. To do. When the CPU execution domain confirmation processing 606 confirms that the execution domain of the communication destination CPU is a real-time domain, the hypervisor 603 performs a determination processing 607 as to whether or not processing of the processing request can be avoided. When it is determined in the determination process 607 that avoidance is possible, the hypervisor 603 returns a page table entry change approval notification 608 to the non-real time domain 602.
Then, the CPU 204 executes a page table entry change process 609 and a TLB invalidation process 610, which are TLBSshotdown processes, as in the existing technique of FIG. Thereafter, in the case of the existing technology, the CPU 204 attempts to notify the CPU 201 of the page table entry change completion notification 611 via the hypervisor 603. However, in the proposed technique, the page table entry change completion notification 611 is ignored, and the CPU 201 is not notified.
Through the above processing, the throughput can be improved without degrading the real-time performance.

以下、図6で説明した処理を実現するための仕組みについて図7、8を用いて説明する。
まず、リアルタイムドメイン切り替えの際にTLB無効化処理604を実行するための技術について図7を用いて説明する。図7のドメイン切り換え検知部105、ドメイン切り替え処理管理テーブル106の各々については、図1で説明した通りであるため説明を省略する。ドメイン切り替え検知部105は、CPUの処理がリアルタイムドメイン又はノンリアルタイムドメインに切り替わったことを検知する。ドメイン切り替え検知部105は、ドメイン切り替え処理管理テーブル106に登録されている切り替え先ドメイン別の処理情報が示す処理を、ドメインの切り替えが発生する度に実行する。TLBShootdownに適用した本例では、リアルタイムドメインに切り替わる際にTLB無効化処理701が実行されるよう、ドメイン切り替え処理管理テーブル106に予め登録しておく。
Hereinafter, a mechanism for realizing the processing described with reference to FIG. 6 will be described with reference to FIGS.
First, a technique for executing the TLB invalidation process 604 at the time of real-time domain switching will be described with reference to FIG. The domain switching detection unit 105 and the domain switching processing management table 106 in FIG. 7 are the same as described in FIG. The domain switching detection unit 105 detects that the processing of the CPU has switched to a real time domain or a non-real time domain. The domain switching detection unit 105 executes the process indicated by the processing information for each switching destination domain registered in the domain switching process management table 106 every time a domain switch occurs. In this example applied to the TLBShutdown, it is registered in advance in the domain switching process management table 106 so that the TLB invalidation process 701 is executed when switching to the real-time domain.

次に、CPU実行ドメイン確認処理606及び判定処理607を含む対象処理検出処理の詳細について、図8を用いて説明する。図8は、CPU実行ドメイン確認処理606及び判定処理607を含む対象処理検出処理の一例を示すフローチャートである。
S800で、ドメイン切り替え検知部105は、通信先のCPUがリアルタイムドメインとノンリアルタイムドメインとのどちらのドメインで動作しているかを確認(処理判定)する。ドメイン切り替え検知部105は、通信先のCPUがノンリアルタイムドメインで動作中の場合には、検出した処理を回避せず、検出した処理を続行する(S803)。一方、ドメイン切り替え検知部105は、通信先のCPUがリアルタイムドメインで動作中だった場合には、処理をS801に進める。
S801で、回避可能判定部104は、対象処理検出部103により検出された処理要求の処理が回避可能か否かを判定する。回避可能判定部104は、回避可能か否かを、回避手段管理テーブル102内に登録されている、検出された処理に対する回避確認処理情報が示す処理によって判定する。S801の処理の詳細については、図9を用いて後述する。回避可能判定部104は、回避可能であると判定した場合には、処理をS802に進める。
S802で、対象処理検出部103は、検出した処理要求を破棄する。また、図9を用いて後述する回避対応処理が実行される。一方、回避可能判定部104は、回避可能でないと判定した場合には、処理をS803に進める。S803の処理については、上述した通りである。
以上の処理により、ノンリアルタイムドメインで動作中のCPUがリアルタイムドメインで動作中のCPUによって不必要に待たされる時間を削減し、システムのスループットを向上させることができる。
Next, details of the target process detection process including the CPU execution domain confirmation process 606 and the determination process 607 will be described with reference to FIG. FIG. 8 is a flowchart illustrating an example of target process detection processing including CPU execution domain confirmation processing 606 and determination processing 607.
In S800, the domain switching detection unit 105 confirms (processing determination) whether the communication destination CPU is operating in a real-time domain or a non-real-time domain. When the communication destination CPU is operating in the non-real-time domain, the domain switching detection unit 105 continues the detected process without avoiding the detected process (S803). On the other hand, if the communication destination CPU is operating in the real-time domain, the domain switching detection unit 105 advances the process to S801.
In step S <b> 801, the avoidance determination unit 104 determines whether the processing request detected by the target process detection unit 103 can be avoided. The avoidance determination unit 104 determines whether or not avoidance is possible by the process indicated by the avoidance confirmation process information for the detected process registered in the avoidance means management table 102. Details of the processing of S801 will be described later with reference to FIG. If the avoidance determination unit 104 determines that avoidance is possible, the process proceeds to step S802.
In step S802, the target process detection unit 103 discards the detected process request. Further, avoidance handling processing described later with reference to FIG. 9 is executed. On the other hand, if the avoidance determination unit 104 determines that avoidance is not possible, the process proceeds to step S803. The processing in S803 is as described above.
With the above processing, it is possible to reduce the time that the CPU operating in the non-real time domain unnecessarily waits for the CPU operating in the real time domain, and to improve the system throughput.

図9は、回避手段管理テーブル102のデータ構造の一例を示す図である。回避手段管理テーブル102は、検出対象情報901、回避確認処理情報902、回避対応処理情報903、有効・無効フラグ904の、4つの情報を含む。なお、回避手段管理テーブル102は、管理情報の一例である。
検出対象情報901は、対象処理検出部103により検出された処理要求の処理の処理情報と照合するための情報である。検出対象情報901が示す情報に対応する処理が検出され、かつ、有効・無効フラグ904が有効になっている場合は、回避確認処理情報902が示す処理(回避確認処理)、回避対応処理情報903が示す処理(回避対応処理)が実行される。
回避確認処理情報902は、検出対象によって異なる。ページテーブルエントリ変更開始通知が検出された場合、回避可能判定部104は、書き換えられるページテーブルエントリがどのグループに属するかで回避可能か否かを判定する。より具体的に説明すると、回避可能判定部104は、ノンリアルタイムドメインのユーザ空間上、又はカーネル空間上のページテーブルエントリの場合には回避可能であると判定し、それ以外の場合は回避不可能と判定する。即ち、回避可能判定部104は、ページテーブルエントリが予め定められた条件を満たしているか否かに応じて、回避可能か否かを判定する。回避可能判定部104が回避確認処理情報902が示す処理によって回避可能と判定した場合、通常の処理(検出された処理要求の処理)の代わりに回避対応処理情報903が示す処理が実行される。より具体的には、ページテーブルエントリ書き換え処理に対応する回避対応処理として、ハイパバイザ603は、処理依頼元のCPU204に対して、ページテーブルエントリ変更承認通知を返す。そして、ハイパバイザ603は、ページテーブルエントリ変更完了通知の有効・無効フラグ906の有効化を行う。
FIG. 9 is a diagram illustrating an example of the data structure of the avoidance means management table 102. The avoidance means management table 102 includes four pieces of information: detection target information 901, avoidance confirmation process information 902, avoidance handling process information 903, and valid / invalid flag 904. The avoidance means management table 102 is an example of management information.
The detection target information 901 is information for collating with the processing information of the processing request processing detected by the target processing detection unit 103. When a process corresponding to the information indicated by the detection target information 901 is detected and the valid / invalid flag 904 is valid, the process indicated by the avoidance confirmation process information 902 (avoidance confirmation process), the avoidance response process information 903 Is executed (avoidance handling process).
The avoidance confirmation processing information 902 varies depending on the detection target. When the page table entry change start notification is detected, the avoidance determination unit 104 determines whether the page table entry to be rewritten belongs to which group can be avoided. More specifically, the avoidance determination unit 104 determines that it can be avoided in the case of a page table entry in the user space or kernel space of the non-real-time domain, and cannot be avoided in other cases. Is determined. That is, the avoidance determination unit 104 determines whether or not the avoidance is possible depending on whether or not the page table entry satisfies a predetermined condition. When the avoidance determination unit 104 determines that avoidance is possible by the process indicated by the avoidance confirmation process information 902, the process indicated by the avoidance handling process information 903 is executed instead of the normal process (process of the detected process request). More specifically, as an avoidance handling process corresponding to the page table entry rewriting process, the hypervisor 603 returns a page table entry change approval notification to the processing request source CPU 204. Then, the hypervisor 603 validates the valid / invalid flag 906 of the page table entry change completion notification.

回避対応処理情報903が示す処理の結果、CPU204に対してページテーブルエントリ変更承認通知が返ると、CPU204は、ページテーブルエントリ変更処理609、TLB無効化処理610を行う。そして、CPU204は、ページテーブルエントリ変更完了通知611をハイパバイザ603に送る。
ここで、先ほどのページテーブルエントリ変更開始通知によって回避手段管理テーブル102内のページテーブルエントリ変更完了通知の有効・無効フラグ906が有効化されている。そのため、本処理として、CPU204は、回避手段管理テーブル102内に登録された処理である、ページテーブルエントリ変更完了通知の無効化処理905を実行する。
この結果、CPU204は、リアルタイムドメインで動作中のCPU201の処理が終わるのを待機せずとも、次の処理を継続することが可能となる。
When a page table entry change approval notification is returned to the CPU 204 as a result of the process indicated by the avoidance handling process information 903, the CPU 204 performs a page table entry change process 609 and a TLB invalidation process 610. Then, the CPU 204 sends a page table entry change completion notification 611 to the hypervisor 603.
Here, the page table entry change completion notification valid / invalid flag 906 in the avoidance means management table 102 is validated by the previous page table entry change start notice. Therefore, as this process, the CPU 204 executes a page table entry change completion notification invalidation process 905 that is a process registered in the avoidance means management table 102.
As a result, the CPU 204 can continue the next process without waiting for the process of the CPU 201 operating in the real-time domain to end.

<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
<Other embodiments>
The present invention can also be realized by executing the following processing. That is, software (program) that realizes the functions of the above-described embodiments is supplied to a system or apparatus via a network or various storage media, and a computer (or CPU, MPU, etc.) of the system or apparatus reads the program. It is a process to be executed.

以上、上述した各実施形態によれば、マルチコア、かつ、デュアルカーネル方式を採用した環境において、リアルタイム性能を低下させずにスループットを向上させることができる。   As described above, according to each of the above-described embodiments, it is possible to improve throughput without degrading real-time performance in an environment employing a multi-core and dual kernel method.

以上、本発明の好ましい形態について詳述したが、本実施形態は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。   The preferred embodiment of the present invention has been described in detail above, but the present embodiment is not limited to the specific embodiment, and various modifications can be made within the scope of the gist of the present invention described in the claims.・ Change is possible.

Claims (11)

複数の処理実行手段を有する情報処理装置であって、
前記複数の処理実行手段による処理を連携する制御手段を有し、
前記制御手段は、
優先処理を実行中の第1の処理実行手段に対して非優先処理を実行する第2の処理実行手段から発行された処理要求を検出する検出手段と、
前記検出手段により前記処理要求が検出された場合、前記処理要求の処理が回避可能であるか否かを判定する判定手段と、
前記判定手段により回避可能と判定された場合、前記処理要求に対する回避対応処理を実行する実行手段と、
を有する情報処理装置。
An information processing apparatus having a plurality of processing execution means,
Control means for coordinating processes by the plurality of process execution means,
The control means includes
Detecting means for detecting a processing request issued from a second processing execution means for executing non-priority processing with respect to the first processing execution means executing the priority processing;
Determination means for determining whether or not processing of the processing request is avoidable when the processing request is detected by the detection means;
An execution unit that executes an avoidance handling process for the processing request when the determination unit determines that avoidance is possible;
An information processing apparatus.
前記判定手段は、前記処理要求の処理の処理情報に基づいて処理情報毎に回避確認処理情報が関連付けられている管理情報を参照し、前記処理要求の処理の処理情報に関連付けられている回避確認処理情報が示す回避確認処理の結果に応じて前記処理要求の処理が回避可能であるか否かを判定する請求項1に記載の情報処理装置。   The determination means refers to management information associated with avoidance confirmation processing information for each processing information based on the processing information of the processing request processing, and avoidance confirmation associated with the processing information of the processing request processing The information processing apparatus according to claim 1, wherein it is determined whether or not the processing request process can be avoided according to a result of the avoidance confirmation process indicated by the process information. 前記管理情報には、処理情報毎に回避確認処理情報と回避対応処理情報とが関連付けられており、
前記実行手段は、前記判定手段により回避可能と判定された場合、前記処理要求の処理の処理情報に関連付けられている回避対応処理情報が示す回避対応処理を実行する請求項2に記載の情報処理装置。
The management information is associated with avoidance confirmation process information and avoidance handling process information for each process information,
3. The information processing according to claim 2, wherein the execution unit executes the avoidance handling process indicated by the avoidance handling process information associated with the process information of the process of the process request when the determination unit determines that avoidance is possible. apparatus.
前記制御手段は、前記判定手段により回避可能でないと判定された場合、前記処理要求の処理を続行する続行手段を更に有する請求項1乃至3の何れか1項に記載の情報処理装置。   The information processing apparatus according to any one of claims 1 to 3, wherein the control unit further includes a continuation unit that continues the processing of the processing request when the determination unit determines that avoidance is not possible. 前記制御手段は、前記検出手段により前記処理要求が検出された場合、前記第1の処理実行手段が優先処理と、非優先処理とのどちらの処理を実行しているかを判定する処理判定手段を更に有し、
前記判定手段は、前記処理判定手段により前記第1の処理実行手段が優先処理を実行していると判定された場合、前記処理要求の処理が回避可能であるか否かを判定する請求項1乃至4の何れか1項に記載の情報処理装置。
The control means includes a process determination means for determining whether the first process execution means is executing a priority process or a non-priority process when the detection request is detected by the detection means. In addition,
The determination unit determines whether or not processing of the processing request is avoidable when the processing determination unit determines that the first processing execution unit is executing priority processing. 5. The information processing apparatus according to any one of items 4 to 4.
前記検出手段は、前記第1の処理実行手段に対して前記第2の処理実行手段から発行された割り込み処理に関する前記処理要求を検出する請求項1乃至5の何れか1項に記載の情報処理装置。   6. The information processing according to claim 1, wherein the detection unit detects the processing request related to the interrupt processing issued from the second processing execution unit to the first processing execution unit. 7. apparatus. 前記制御手段は、処理実行手段が優先処理を実行するか又は非優先処理を実行するかの切り換えを検知する切り換え検知手段を更に有し、
前記処理実行手段は、前記切り換え検知手段により検知された前記切り替えに応じて処理を実行する請求項1乃至6の何れか1項に記載の情報処理装置。
The control means further comprises a switching detection means for detecting whether the process execution means executes priority processing or non-priority processing,
The information processing apparatus according to claim 1, wherein the process execution unit executes a process according to the switching detected by the switching detection unit.
前記処理実行手段は、他の処理実行手段との間で同期を要する処理を実行する請求項1乃至7の何れか1項に記載の情報処理装置。   The information processing apparatus according to claim 1, wherein the process execution unit executes a process that requires synchronization with another process execution unit. 前記処理実行手段は、CPUであり、
前記制御手段は、複数のCPUの処理を連携するハイパバイザである請求項1乃至8の何れか1項に記載の情報処理装置。
The process execution means is a CPU,
The information processing apparatus according to claim 1, wherein the control unit is a hypervisor that coordinates processing of a plurality of CPUs.
複数の処理実行手段を有する情報処理装置が実行する情報処理方法であって、
前記複数の処理実行手段による処理を連携する制御ステップを含み、
前記制御ステップは、
優先処理を実行中の第1の処理実行手段に対して非優先処理を実行する第2の処理実行手段から発行された処理要求を検出する検出ステップと、
前記検出ステップにより前記処理要求が検出された場合、前記処理要求の処理が回避可能であるか否かを判定する判定ステップと、
前記判定ステップにより回避可能と判定された場合、前記処理要求に対する回避対応処理を実行する実行ステップと、
を含む情報処理方法。
An information processing method executed by an information processing apparatus having a plurality of processing execution means,
Including a control step of coordinating processes by the plurality of process execution means,
The control step includes
A detection step of detecting a processing request issued from a second processing execution means for executing non-priority processing with respect to the first processing execution means executing the priority processing;
A determination step of determining whether or not processing of the processing request is avoidable when the processing request is detected by the detection step;
If it is determined that avoidance is possible in the determination step, an execution step of executing avoidance handling processing for the processing request;
An information processing method including:
複数の処理実行手段を有するコンピュータに、
前記複数の処理実行手段による処理を連携する制御ステップを実行させ、
前記制御ステップは、
優先処理を実行中の第1の処理実行手段に対して非優先処理を実行する第2の処理実行手段から発行された処理要求を検出する検出ステップと、
前記検出ステップにより前記処理要求が検出された場合、前記処理要求の処理が回避可能であるか否かを判定する判定ステップと、
前記判定ステップにより回避可能と判定された場合、前記処理要求に対する回避対応処理を実行する実行ステップと、
を含むプログラム。
In a computer having a plurality of processing execution means,
Executing a control step for coordinating processes by the plurality of process execution means;
The control step includes
A detection step of detecting a processing request issued from a second processing execution means for executing non-priority processing with respect to the first processing execution means executing the priority processing;
A determination step of determining whether or not processing of the processing request is avoidable when the processing request is detected by the detection step;
If it is determined that avoidance is possible in the determination step, an execution step of executing avoidance handling processing for the processing request;
Including programs.
JP2014075544A 2014-04-01 2014-04-01 Information processing device, information processing method and program Pending JP2015197802A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014075544A JP2015197802A (en) 2014-04-01 2014-04-01 Information processing device, information processing method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014075544A JP2015197802A (en) 2014-04-01 2014-04-01 Information processing device, information processing method and program

Publications (1)

Publication Number Publication Date
JP2015197802A true JP2015197802A (en) 2015-11-09

Family

ID=54547439

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014075544A Pending JP2015197802A (en) 2014-04-01 2014-04-01 Information processing device, information processing method and program

Country Status (1)

Country Link
JP (1) JP2015197802A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113419820A (en) * 2021-07-02 2021-09-21 广州市品高软件股份有限公司 Deployment method of real-time virtual machine and cloud platform
JP2021530760A (en) * 2018-06-20 2021-11-11 東莞市李群自動化技術有限公司 Distributed multi-node control system and method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021530760A (en) * 2018-06-20 2021-11-11 東莞市李群自動化技術有限公司 Distributed multi-node control system and method
CN113419820A (en) * 2021-07-02 2021-09-21 广州市品高软件股份有限公司 Deployment method of real-time virtual machine and cloud platform

Similar Documents

Publication Publication Date Title
US20200285578A1 (en) Software-transparent hardware predictor for core-to-core data transfer optimization
US9037753B2 (en) Automatic pinning and unpinning of virtual pages for remote direct memory access
TWI722010B (en) Low-overhead hardware predictor , appartus and methos to reduce performance inversion for core-to-core data transfer optimization instructions
US9003082B2 (en) Information processing apparatus, arithmetic device, and information transferring method
US10503405B2 (en) Zero copy memory reclaim using copy-on-write
US8924624B2 (en) Information processing device
US8892788B2 (en) Exposing a DMA engine to guests in a virtual machine system
US9632901B2 (en) Page resolution status reporting
US10713083B2 (en) Efficient virtual I/O address translation
US20070083682A1 (en) Memory controller and method for handling DMA operations during a page copy
US11620233B1 (en) Memory data migration hardware
US20150220481A1 (en) Arithmetic processing apparatus, information processing apparatus, and control method of arithmetic processing apparatus
KR20150132432A (en) Memory sharing over a network
US7996648B2 (en) Coupled symbiotic operating systems
US9043520B2 (en) Interrupt control method and multicore processor system
US9921875B2 (en) Zero copy memory reclaim for applications using memory offlining
US20130145202A1 (en) Handling Virtual-to-Physical Address Translation Failures
US8751724B2 (en) Dynamic memory reconfiguration to delay performance overhead
US9075795B2 (en) Interprocess communication
JP2015197802A (en) Information processing device, information processing method and program
US9507724B2 (en) Memory access processing method and information processing device
JP5254710B2 (en) Data transfer device, data transfer method and processor
KR101203157B1 (en) Data Transfer System, Apparatus and Method
CN115087961B (en) Arbitration scheme for coherent and incoherent memory requests
CN116069695A (en) Memory access tracking using peripheral devices