JP2015197802A - Information processing device, information processing method and program - Google Patents
Information processing device, information processing method and program Download PDFInfo
- 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
Links
Images
Abstract
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.
マルチコア環境上で動作する汎用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.
以下、本発明を実施するための形態について図面を用いて説明する。
<実施形態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
CPU201、204が、ROM207等に記憶されているプログラムを実行することにより、情報処理装置200の機能構成及び後述するフローチャートの処理が実現される。情報処理装置200の機能構成には、オペレーティングシステム(以下、OSという)の機能、カーネルの機能、ハイパバイザの機能等も含まれる。なお、図1では、本実施形態における情報処理装置200が2つのCPUを有する構成であるものとしたが、3つ以上のCPUを有する構成であってもよい。
When the
図2は、本実施形態における情報処理装置200の機能構成の一例を示す図である。より具体的に説明すると、図2は、本実施形態における情報処理装置200のハイパバイザ100の機能構成の一例を示す図である。本実施形態では、カーネル内に本来のカーネルよりも動作優先度の高いサブシステムを追加し、サブシステム上でリアルタイム性能が要求されるタスクを動作させるデュアルカーネル方式を想定している。ハイパバイザ100は、カーネルとハードウェアとの間に独立した機能として配置し、サブシステム側(リアルタイムドメイン)及び既存のカーネル側(ノンリアルタイムドメイン)を動作優先度に則して制御する。ここで、リアルタイムドメインの処理は、リアルタイム性能が要求される優先処理の一例である。一方、ノンリアルタイムドメインの処理は、リアルタイム性能が要求されない非優先処理の一例である。また、ハイパバイザ100が実行する処理は、リアルタイムドメインの処理とノンリアルタイムドメインの処理とを連携する制御処理の一例である。
FIG. 2 is a diagram illustrating an example of a functional configuration of the
以下、ハイパバイザ100のより具体的な機能構成について説明する。
CPU別ドメイン状態管理テーブル101は、情報処理装置200に含まれる全CPUが、現在、リアルタイムドメインとノンリアルタイムドメインとのどちらのドメインで動作しているかを示す情報を保持するテーブルである。CPU別ドメイン状態管理テーブル101は、CPUの数だけデータを保持する。保持されているデータは、対象のCPUがリアルタイムドメインで動作しているか、ノンリアルタイムドメインで動作しているかを示す。ドメインの状態は排他的であり、両方のドメインで動作している状態や、どちらのドメインでも動作していないという状態は存在しない。
回避手段管理テーブル102は、回避対象として判定された処理に対する回避手段に関する情報を保持するテーブルである。情報処理装置200は、回避手段管理テーブル102を処理毎に保持している。回避手段管理テーブル102には、処理情報毎に処理に対する回避手段に関する情報が関連付けられて記述されている。回避手段管理テーブル102のより詳細な説明については、図9等を用いて後述する。
Hereinafter, a more specific functional configuration of the
The CPU-specific domain state management table 101 is a table that holds information indicating whether all CPUs included in the
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
対象処理検出部103は、リアルタイムドメインで動作中(処理実行中)のCPUに対して、ノンリアルタイムドメインで動作中のCPUが処理を依頼したことを検知する。
回避可能判定部104は、対象処理検出部103で検出された処理が回避可能であるか否かを判定する。
ドメイン切り替え検知部105は、リアルタイムドメインとノンリアルタイムドメインとの切り替えを検知する。
ドメイン切り替え処理管理テーブル106は、ドメイン切り替え検知部105によってドメインの切り替えが検出された際に実行される処理の処理情報を保持する。ドメイン切り替え処理管理テーブル106のより詳細な説明については、図7等を用いて後述する。
なお、本実施形態では、CPU別ドメイン状態管理テーブル101、回避手段管理テーブル102及びドメイン切り替え処理管理テーブル106は、情報処理装置200のROM207やHDDに記憶されているものとしたが、これに限る必要はない。例えば、これらのテーブルは、情報処理装置200とネットワークを介して通信可能な外部の装置に記憶されていてもよい。
以上が本実施形態における情報処理装置200のハイパバイザ100の基本的な構成である。図2の説明では情報処理装置200が使用するデータの内容について詳述しなかったが、以降の説明ではより具体的なデータを用いて本実施形態の処理手順等について説明する。
The target
The
The domain
The domain switching processing management table 106 holds processing information of processing executed when domain switching is detected by the domain switching
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
The above is the basic configuration of the
以下、図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
Assume that the
次に、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
Upon receiving the notification, the
次に、既存のマルチコア・デュアルカーネル方式において、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
When the
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
The
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
In the proposed technique, the
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
Then, the
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
次に、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
In S800, the domain switching
In step S <b> 801, the
In step S802, the target
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:
The
The avoidance
回避対応処理情報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
Here, the page table entry change completion notification valid /
As a result, the
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又は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.
前記実行手段は、前記判定手段により回避可能と判定された場合、前記処理要求の処理の処理情報に関連付けられている回避対応処理情報が示す回避対応処理を実行する請求項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の処理実行手段が優先処理を実行していると判定された場合、前記処理要求の処理が回避可能であるか否かを判定する請求項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乃至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.
前記制御手段は、複数の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.
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)
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 |
-
2014
- 2014-04-01 JP JP2014075544A patent/JP2015197802A/en active Pending
Cited By (2)
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 |