JP2019067289A - 半導体装置 - Google Patents
半導体装置 Download PDFInfo
- Publication number
- JP2019067289A JP2019067289A JP2017194248A JP2017194248A JP2019067289A JP 2019067289 A JP2019067289 A JP 2019067289A JP 2017194248 A JP2017194248 A JP 2017194248A JP 2017194248 A JP2017194248 A JP 2017194248A JP 2019067289 A JP2019067289 A JP 2019067289A
- Authority
- JP
- Japan
- Prior art keywords
- virtual machine
- semaphore
- processing
- exclusive right
- management unit
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/2033—Failover techniques switching over of hardware resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/85—Active fault masking without idle spares
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
Abstract
【課題】従来の技術では、半導体装置の処理能力の利用効率が悪い問題があった。【解決手段】一実施の形態によれば、半導体装置は、プロセッサ10上で実施されている複数の処理で共通して利用される共有リソース13と、共有リソース13の占有権を制御するセマフォ12と、プロセッサ上で行われている処理の要求に応じてセマフォ12に対して共有リソース13の占有権の獲得処理を行うセマフォ管理部21と、有し、セマフォ管理部21は、複数の処理のうち第1の処理から共有リソース13の占有権の獲得要求を受けた場合において、当該占有権の取得ができなかった場合にプロセッサ20上で実施されている処理を第2の処理に切り替える制御を行うと共に、第1の処理により要求された占有権の獲得処理をセマフォに対して繰り返し行い。第1の処理に要求された占有権が獲得できた際には、プロセッサ上の処理を第2の処理から第1の処理に切り替える制御を行う。【選択図】図1
Description
本発明は半導体装置に関し、例えば複数の処理プロセスにより共通に用いられる共有リソースを有する半導体装置に関する。
近年、プログラムを実行するプロセッサ等の半導体装置では、処理速度の向上を図るために複数の演算コアを用いる、1つの演算コア上に論理的に仮想マシンを構築する等の手法を用いて処理の並列化を行っている。このような並列処理を行う半導体装置では、1つのリソース(例えば、メモリ、DAC、タイマー等)を複数の処理で共通して用いる場合がある。このように共通して用いられるリソースを共有リソースと称す。共有リソースを利用する場合、複数の処理で共有リソースを制限なく利用すると1つの処理に起因して発生した処理結果が他の処理により破壊される、或いは、1つの処理の処理結果に基づき他の処理が動作して誤動作を発生するおそれがある。そこで、共有リソースを利用する場合には、処理間での動作干渉を避けるために共有リソースの排他制御が行われる。この供給リソースの排他制御の例が特許文献1に開示されている。
特許文献1では、1つのプロセッサ上に2つの仮想マシンを構築し、1つの共有リソースに対して2つの仮想マシンからアクセスを行う。そして、特許文献1では、共有リソースの排他制御を行うセマフォを用いてこの共有リソースに対する排他制御を行う。
しかしながら、特許文献1に記載の技術では、共有リソースに対する排他制御は行うことができるもの、排他的なアクセスが行われるように設定された共有リソースの利用効率が低く、半導体装置の処理能力を十分に発揮できない問題がある。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
一実施の形態によれば、半導体装置は、プロセッサ上で実施されている複数の処理で共通して利用される共有リソースと、
当該共有リソースの占有権を制御するセマフォと、プロセッサ上で行われている処理の要求に応じてセマフォに対して共有リソースの占有権の取得処理を行うセマフォ管理部と、有し、セマフォ管理部は、複数の処理のうち第1の処理から共有リソースの占有権の獲得要求を受けた場合において、当該占有権の取得ができなかった場合にプロセッサ上で実施されている処理を第2の処理に切り替える制御を行うと共に、第1の処理により要求された占有権の獲得処理をセマフォに対して繰り返し行い。第1の処理に要求された占有権が獲得できた際には、プロセッサ上の処理を第2の処理から第1の処理に切り替える制御を行う。
当該共有リソースの占有権を制御するセマフォと、プロセッサ上で行われている処理の要求に応じてセマフォに対して共有リソースの占有権の取得処理を行うセマフォ管理部と、有し、セマフォ管理部は、複数の処理のうち第1の処理から共有リソースの占有権の獲得要求を受けた場合において、当該占有権の取得ができなかった場合にプロセッサ上で実施されている処理を第2の処理に切り替える制御を行うと共に、第1の処理により要求された占有権の獲得処理をセマフォに対して繰り返し行い。第1の処理に要求された占有権が獲得できた際には、プロセッサ上の処理を第2の処理から第1の処理に切り替える制御を行う。
前記一実施の形態によれば、仮想マシンの処理効率を高めて半導体装置の処理能力を高めることができる。
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、CPU、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non−transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
実施の形態1
図1に実施の形態1にかかる半導体装置1のブロック図を示す。図1に示すように、実施の形態1にかかる半導体装置1は、プロセッサユニット10、クロスバスイッチ11、セマフォ12、共有リソース13を有する。なお、図1では、共有リソースとして、1つの共有リソースを示したが、共有リソースは複数設けられていても良い。
図1に実施の形態1にかかる半導体装置1のブロック図を示す。図1に示すように、実施の形態1にかかる半導体装置1は、プロセッサユニット10、クロスバスイッチ11、セマフォ12、共有リソース13を有する。なお、図1では、共有リソースとして、1つの共有リソースを示したが、共有リソースは複数設けられていても良い。
プロセッサユニット10は、例えば、内蔵メモリ(不図示)或いは外部の記憶装置(不図示)に格納されたプログラムを実行する演算部である。クロスバスイッチ11は、プロセッサユニット10、セマフォ12、共有リソース13の間のデータ、制御信号等の送受信先を切り替える。セマフォ12は共有リソース13の占有権を制御する。共有リソース13は、例えば、メモリ、タイマー、アナログデジタル変換回路、デジタルアナログ変換回路、コプロセッサ等の特定の機能を有する回路である。共有リソース13は、プロセッサユニット10上で実行される複数の処理が共通して用いるハードウェアリソースである。
実施の形態1にかかる半導体装置1では、プロセッサユニット10がプロセッサコア20、セマフォ管理部21を有する。そして、プロセッサコア20には、仮想マシン管理部30、第1の仮想マシン(例えば、仮想マシン31)、第2の仮想マシン(例えば、仮想マシン32)が構成される。仮想マシン管理部30及び仮想マシン31、32は、プロセッサコア20で実行されるオペレーティングシステム(Operating System)等の基本ソフトの機能によりプロセッサコア20上に論理的に構成されるものである。
プロセッサコア20では、仮想マシン31、仮想マシン32が別々の処理を行う。また、プロセッサコア20では、仮想マシン管理部30が仮想マシン31を動作させるか、仮想マシン32を動作させるかを時分割で切り替える。また、仮想マシン管理部30は、後述するセマフォ管理部21から発せられる割込信号に応じて動作させる仮想マシンを切り替える。また、以下の説明では、仮想マシン31が処理する内容を第1の処理、仮想マシン32が処理する内容を第2の内容と称す。そして、仮想マシン31、32は、それぞれ処理内容に応じてセマフォ12に対して処理に必要な共有リソースに関する占有権を獲得する際には、セマフォ12に占有権獲得要求を発する。
実施の形態1にかかる半導体装置1では、セマフォ12に対する占有権獲得要求を行う場合、占有権獲得要求を発した仮想マシンを特定する識別子を占有権獲得要求のための命令中にセマフォ情報として含める。占有権獲得要求は、アプリケーションソフト単位、或いは、ソフトウェアを構成するコードのステップ単位等、様々な単位で行うこともできる。
アプリケーションソフト単位で占有権獲得要求を行う場合、セマフォ情報にはアプリケーションソフトを特定するための識別子が含まれる。なお、アプリケーションソフトを特定するための識別子を利用した場合、アプリケーションソフトと仮想マシンとの対応付けを行うことが好ましい。
また、ソフトウェアを構成するコードのステップ単位で占有権獲得要求を行う場合、セマフォ情報にはアプリケーションソフトを特定するための識別子が含まれる。例えば、処理0〜処理3までを順番に処理させたい場合、処理0実行中の識別子の値は0に設定し、処理0完了後にセマフォ12内のカウンタのカウント値をインクリメントする。そして、仮想マシンは、セマフォのカウント値が1になったことに応じて処理1を開始する。仮想マシンは、以降、同様の処理を繰り返すことで処理3までの処理を実行する。なお、ステップ毎に識別子を設定する場合、仮想マシンとステップとの対応付けを行う必要がある。
セマフォ管理部21は、スピン制御部40、レジスタ41を有する。スピン制御部40は、仮想マシン31又は仮想マシン32から発せられた占有権獲得要求に基づきセマフォ12に対して占有権獲得処理を行う。レジスタ41には、スピン制御部40が行う占有権獲得処理で利用する各種情報が格納される。図1に示す例では、スピンロック制御レジスタ51、スピンロック状態レジスタ52、セマフォアドレスレジスタ53、セマフォ比較データ54、セマフォロックデータ55を有する。なお、レジスタ41には図示しないレジスタも設けられ、スピン制御部40の処理では図1に示していない情報も利用する。例えば、スピン制御部40は、占有権獲得処理において各種タイマーを利用するが、そのタイマーでどれだけの時間を計測するかの設定値を格納するレジスタがレジスタ41に設けられる。スピン制御部40の動作を含むセマフォ管理部21の具体的な動作については後述する。
スピンロック制御レジスタ51には、スタートフラグが格納される。共有リソース13の獲得要求を行う仮想マシンは、このスタートフラグを”1”とする。そしてスタートフラグが“1”となったことに応じてスピン制御部40が動作を開始する。なお、スタートフラグが”1”となっていた場合、セマフォ管理部21がビジー状態であることを示すため、仮想マシンは、占有権獲得要求を行う時点でスタートフラグが“1”となっている場合は、占有権獲得要求は失敗したものとして動作する。
スピンロック状態レジスタ52には、共有リソース13の占有権の獲得状態或いはスピンロック処理の結果を示す値が格納される。例えば、スピンロック状態レジスタ52に格納される値は、共有リソース13の占有権の獲得に成功した場合にはサクセス値となり、共有リソース13の占有権の獲得に失敗した場合にはフェイル値となり、共有リソース13の占有権を獲得するために占有権獲得処理を繰り返し行うスピンロック処理を規定時間以上行っても占有権の獲得に成功しなかった場合にはタイムアウト値となる。
セマフォアドレスレジスタ53には、セマフォ12のアドレス値が格納される。なお、セマフォ12が複数個ある場合には、セマフォ毎にスピンロック制御レジスタ51、スピンロック状態レジスタ52、セマフォアドレスレジスタ53、セマフォ比較データ54、セマフォロックデータ55のセットが設けられる。
セマフォ比較データ54には、セマフォ12が占有権をいずれの処理又は仮想マシンにも与えていない状態を示す値が期待値として格納される。例えば、セマフォ12が共有リソース13の占有権をいずれの処理或いは仮想マシンにも与えていない場合にはセマフォ比較データ54には値”0”が格納される。
セマフォロックデータ55には、スピンロック処理の実行することになった処理或いは仮想マシンの識別子の情報(例えば、セマフォロックデータ)が格納される。
セマフォ12は、プロセッサユニット10から占有権獲得要求があった場合において、共有リソース13をいずれの処理(例えば、仮想マシン)にも占有権を割り当ていなければ、占有権獲得要求を発した仮想マシンに対して共有リソース13の占有権を与える。また、セマフォ12は、プロセッサユニット10から占有権獲得要求があった場合において、共有リソース13をいずれかの処理(例えば、仮想マシン)に占有権を割り当てているときは、占有権獲得要求を発した仮想マシンに対して共有リソース13の占有権の付与を拒否する。なお、セマフォ12は、共有リソース13の占有権を与えた処理又は仮想マシンを認識する識別情報を格納するレジスタを有する。この識別情報を、セマフォ情報(例えば、セマフォロックデータ)と称す。また、実施の形態1にかかる半導体装置1では、セマフォ12への占有権獲得要求の発行はセマフォ管理部21が処理又は仮想マシンに代わって行う。セマフォ情報の詳細は、セマフォ管理部21に関する詳細な説明の中で説明する。
ここで、セマフォ管理部21の動作について詳細に説明する。セマフォ管理部21は、仮想マシン31、32から共有リソース13に関する占有権の獲得要求があった場合に、セマフォ12に対してその獲得処理を実施する。そして、共有リソース13の占有権が獲得できた場合には、スピンロック状態レジスタ52に獲得が成功したことを示すサクセス値を格納する。
一方、セマフォ管理部21は、仮想マシン31、32から共有リソース13に関する占有権の獲得要求に応じてセマフォ12に獲得処理を実施した結果、共有リソース13の占有権の獲得に失敗した場合には、スピンロック状態レジスタ52に獲得が失敗したことを示すフェイル値を格納する。ここで、フェイル値とは、例えば、セマフォ管理部21がスピンロック処理を行っている状態を示す値である。また、セマフォ管理部21は、共有リソース13の占有権に失敗した場合には、占有権の獲得処理を繰り返し行うスピンロック処理を行う。
さらに、セマフォ管理部21は、仮想マシン31、32の一方の仮想マシンが共有リソース13の占有権の獲得に失敗した場合には、動作状態となる仮想マシンを一方の仮想マシンから他方の仮想マシンに切り替えることを仮想マシン管理部30に指示すると共に、一方の仮想マシンによる共有リソース13の占有権の獲得処理を繰り返す。また、セマフォ管理部21は、一方の仮想マシンに関する共有リソースの占有権の獲得状態が失敗から成功した変化したことに応じて、仮想マシン管理部に動作状態となる仮想マシンを他方の仮想マシンから一方の仮想マシンに切り替えることを指示する。
続いて、実施の形態1にかかる半導体装置1の動作について説明する。そこで、図2に実施の形態1にかかる半導体装置1の動作を説明するタイミングチャートを示す。図2に示す例では、仮想マシン管理部30をVMM、仮想マシン31をVM1、仮想マシン32をVM2と示した。
また、図2に示す例では、仮想マシン31が共有リソース13の占有権を獲得している状態で、動作する仮想マシンが仮想マシン31から仮想マシン32に切り替えられて共有リソース13の占有権が仮想マシン31に取得された状態が維持されてしまった場合を示すものである。
図2を参照して実施の形態1にかかる半導体装置1の動作の詳細について説明する。図2に示す例では、まず、仮想マシン31がセマフォ12に共有リソース13の占有権を要求する占有権獲得要求(図2のロック要求LR(VM0))を発する。このロック要求に応じてセマフォ管理部21は、排他的ロード命令(Load Link)をセマフォ12に与え、現時点でセマフォ12に格納されているセマフォロックデータを読み込む。また、セマフォ管理部21は、仮想マシン31から受け取ったロック要求に含まれる仮想マシン31の識別子であるセマフォ情報をセマフォロックデータとしてセマフォロックデータ55に格納する。そして、図2に示す例では、セマフォ12は、この時点ではいずれの仮想マシンにも共有リソース13の占有権を与えていないため排他的ロード命令に応じて値“0”を返信する。これにより、セマフォ管理部21は、セマフォ12がいずれの仮想マシンにも供給リソース13の占有権を与えていないことを認識し、排他的ストア命令(Store Conditional)を用いて仮想マシン31から与えられたセマフォ情報をセマフォ12に書き込む。この排他的ストア命令が成功したことを図2では成功応答SRと示した。そして、セマフォ管理部21は、応答要求SRに基づきスピンロック状態レジスタ52にサクセス値を書き込む。仮想マシン31はこのサクセス値を参照して、共有リソース13の占有権を獲得したことを認識する。これにより、仮想マシン31を共有リソース13を利用した処理を継続する。
その後、予め決められた仮想マシン切り替えタイミングが来たタイミングで仮想マシン管理部30が動作させる仮想マシンを仮想マシン31から仮想マシン32に切り替える(図2のT_SCH)。そして、仮想マシン32が処理内容に応じて共有リソース13に関して占有権獲得要求を発する(図2のロック要求LR(VM1))。このとき、セマフォ管理部21は、仮想マシン32から受け取ったロック要求に含まれる仮想マシン31の識別子であるセマフォ情報をセマフォロックデータとしてセマフォロックデータ55に格納する。そして、このロック要求LR(VM1)に応じてセマフォ管理部21は、排他的ロード命令をセマフォ12に与え、現時点でセマフォ12に格納されているセマフォロックデータを読み込む。このとき、図2に示す例では、セマフォ12が仮想マシン31に共有リソース13の占有権を与えているため、セマフォ12は排他的ロード命令に応じて仮想マシン31に独占権を与えていることを示すセマフォロックデータをセマフォ管理部21に返信する。これにより、セマフォ管理部21は、セマフォ12が仮想マシン31供給リソース13の占有権を与えていることを認識する。図2に示す例では、排他的ストア命令を用いて仮想マシン31から与えられたセマフォ情報をセマフォ12に書き込む。この排他的ストア命令が成功したことを図2では、セマフォ12は仮想マシン31に独占権を与えていることを示すセマフォロックデータ返信したことを失敗応答FRと示した。
セマフォ管理部21では、スピン制御部40が失敗応答FRを受け取ったことに応じてスピンロック状態レジスタ52にフェイル値を格納する。また、スピン制御部40は、失敗応答FRに受け取ったことに応じて仮想マシン管理部30に割込信号(セマフォ割込S_INT)を発する。仮想マシン管理部30は、セマフォ割込S_INTが通知されたことに応じて動作させる仮想マシンを仮想マシン32から仮想マシン31に切り替える(図2中のS_SCH)。これにより、仮想マシン31が動作を再開する。また、スピン制御部40は、スピンロック状態レジスタ52にフェイル値を書き込んだことに応じてスピンロック処理を開始する。このスピンロック処理では、セマフォ管理部21がセマフォ12に対して仮想マシン32が発した占有権獲得要求に基づく共有リソース13の占有権の獲得処理を周期的に行う。
そして、図2に示す例では、セマフォ管理部21がスピンロック処理を継続している期間に動作を再開した仮想マシン31が占有権開放要求(図2のアンロック要求ULR(VM0))をセマフォ管理部21を介してセマフォ12に対して発する。より具体的には、案ロック要求ULR(VM0)を受け取ったセマフォ管理部21は、セマフォ12のセマフォロックデータを値“0”に書き換える排他的ストア命令をセマフォ12に発する。これにより、セマフォ12は仮想マシン31に与えていた共有リソース13の占有権を開放する。そして、その後のスピンロック処理で、セマフォ管理部21が共有リソース13に関する占有権の取得に成功すると、セマフォ12から成功応答SRが返信される。より具体的には、セマフォ管理部21は、セマフォロックデータ55に格納されているセマフォロックデータを排他的ストア命令によりセマフォ12に書き込み、その書き込みが成功したことに応じて、仮想マシン32が共有リソース13の占有権を獲得できたことを認識する。図2では、セマフォ管理部21がセマフォロックデータの書き込みに成功したことを成功応答SRと示した。
そして、セマフォ管理部21では、スピン制御部40が成功応答SRを受け取ったことに応じてスピンロック状態レジスタ52にサクセス値を格納する。また、スピン制御部40は、成功応答SRに受け取ったことに応じて仮想マシン管理部30に割込信号(セマフォ割込S_INT)を発する。仮想マシン管理部30は、セマフォ割込S_INTが通知されたことに応じて動作させる仮想マシンを仮想マシン31から仮想マシン32に切り替える(図2中のS_SCH)。これにより、仮想マシン32が共有リソース13を利用可能な状態で動作を再開する。また、スピン制御部40は、スピンロック状態レジスタ52にサクセス値を書き込んだことに応じてスピンロック処理を開始する。さらに、スピン制御部40は、スピンロック制御レジスタ51のスタートフラグの値を“1”から“0”書き換えた後にスピンロック処理を終了させて待機状態に移行する。
続いて、セマフォ管理部21の動作をフローチャートを用いて詳細に説明する。そこで、図3に実施の形態1にかかるセマフォ管理部21の動作を説明するフローチャートを示す。なお、図3及び図4の説明においては、共有リソース13に関する占有権を取得することをセマフォ獲得と表す。
図3に示すように、セマフォ管理部21は、仮想マシンからロック要求を受信したことに応じて処理を開始する。セマフォ管理部21では、スピン制御部40が処理を開始するにあたり、スピンロック制御レジスタ51のスタートフラグの値を“0”から“1”に書き換える(ステップS0)。また、図示を省略したが、ステップS0では、セマフォ管理部21は、セマフォロックデータにロック要求を発した仮想マシンに関するセマフォ情報を格納する。次いで、スピン制御部40は、セマフォ12からセマフォ12が保持しているセマフォ情報(例えば、セマフォロックデータ)を取得する(ステップS1)。ステップS1では、スピン制御部40が排他的ロード命令(Load Link)を用いた読み出し処理を行う。そして、スピン制御部40は、セマフォ12から取得したセマフォ情報とセマフォ比較データ54に格納されているセマフォ情報とを比較する(ステップS2)。図3及び図4に示す例では、セマフォ比較データ54には、セマフォ管理部21が共有リソース13の占有権をいずれの仮想マシンにも与えていないときの値(例えば、値“0”)が設定されている。
そして、ステップS2の比較処理において2つの情報が一致した場合、スピン制御部40は、排他的ストア命令(Store Conditional)を用いて、仮想マシンから与えられたセマフォ情報(例えば、セマフォロックデータ55に格納されているセマフォロックデータ)をセマフォ12に書き込むことでセマフォ獲得処理を行う(ステップS3)。そして、スピン制御部40は、セマフォの獲得に成功したことに応じてスピンロック状態レジスタ52の値(例えば、スピンロックステータス情報)をサクセス値とする(ステップS4、S5)。
一方、ステップS2の比較処理において2つの情報が不一致だった場合、又は、ステップS4でセマフォの獲得に失敗したと判断された場合、スピン制御部40は、スピンロック状態レジスタ52の値(例えば、スピンロックステータス情報)をフェイル値で更新する(ステップS6)。なお、ステップS4でのセマフォ獲得が失敗する例としては、ステップS2のセマフォ12のセマフォロックデータ確認後からステップS4のセマフォ獲得処理前の期間に何らかの処理又は仮想マシンがセマフォを獲得したことにより生じる。また、スピン制御部40は、セマフォ割込S_INTをプロセッサコア20に出力する(ステップS7)。これにより、プロセッサコア20上で動作する仮想マシンが仮想マシン32から仮想マシン31に切り替えられる。その後、スピン制御部40はスピンロック処理を行う(ステップS8)。
ここで、ステップS8のスピンロック処理について詳細に説明する。図4に実施の形態1にかかるセマフォ管理部21のスピンロック処理を説明するフローチャートを示す。図4に示すように、スピンロック処理では、スピン制御部40が予め決められたリトライサイクル時間が経過するまで、共有リソース13の占有権の獲得処理を待機する(ステップS11)。そして、リトライサイクル時間が経過するとスピン制御部40は、共有リソース13の占有権の獲得処理を開始する。
セマフォ獲得処理では、まず、スピン制御部40が、排他的ロード命令(Load Link)を用いてセマフォ12からセマフォ12が保持しているセマフォ情報を取得する(ステップS12)。そして、スピン制御部40は、セマフォ12から取得したセマフォ情報とセマフォ比較データ54に格納されている値“0”とを比較する(ステップS13)。
そして、ステップS13の比較処理において2つの情報が一致した場合、スピン制御部40は、排他的ストア命令(Store Conditional)を用いて、仮想マシンから与えられたセマフォ情報(例えば、セマフォロックデータ55に格納されているセマフォロックデータ)をセマフォ12に書き込むことでセマフォ獲得処理を行う(ステップS14)。そして、スピン制御部40は、セマフォの獲得に成功したことに応じてスピンロック状態レジスタ52の値(例えば、スピンロックステータス情報)をサクセス値とする(ステップS15、S16)。また、スピン制御部40は、セマフォ割込S_INTをプロセッサコア20に出力する(ステップS17)。これにより、プロセッサコア20上で動作する仮想マシンが仮想マシン31から仮想マシン32に切り替えられる。
一方、ステップS13の比較処理において2つの情報が不一致だった場合、又は、ステップS15でセマフォの獲得に失敗したと判断された場合、スピン制御部40は、予め設定されたタイムアウト時間が経過するまでステップS11からステップS15までの処理を繰り返す(ステップS18)。このタイムアウト時間は、処理が進まなくなることを防止するものであり、他の仮想マシンがセマフォ獲得状態を解除すると考えられる時間よりも十分に長くすることが好ましい。そして、タイムアウト時間が経過してもセマフォ管理部21がセマフォを獲得できなかった場合、スピン制御部40は、スピンロック状態レジスタ52の値(例えば、スピンロックステータス情報)をタイムアウト値で更新する(ステップS19)。また、スピン制御部40は、セマフォ割込S_INTをプロセッサコア20に出力して、仮想マシンにセマフォの獲得に失敗したことを通知する(ステップS20)。ステップS20、又は、ステップS17の処理が完了したことに応じてセマフォ理部21はスピンロック処理を終了させる。
上記説明より、実施の形態1にかかる半導体装置1は、仮想マシン(又は所定の処理単位)によって共有リソース13の占有権の獲得ができなかった場合、プロセッサコア20上の処理を占有権獲得要求を発した仮想マシン以外の仮想マシンに切り替えると共に、セマフォ管理部21を用いて本来仮想マシンが行うスピンロック処理を行う。そして、実施の形態1にかかる半導体装置1は、セマフォ管理部21の動作により共有リソース13の占有権の獲得に成功した場合には、プロセッサコア20上の処理をその時点で動作状態となっている仮想マシンから占有権獲得要求を発した仮想マシンに切り替える。
このような処理により、実施の形態1にかかる半導体装置1は、仮想マシンがスピンロック処理を行うことにより仮想マシンの処理が停滞することを防止して、半導体装置の処理効率を高めることができる。
例えば、特許文献1の技術では、仮想マシンは所定の時間間隔で切り替えられながら交互に動作状態となる。そのため、特許文献1の技術では、一方の仮想マシンがセマフォから占有権を取得している場合に一方の仮想マシンから他方の仮想マシンに処理が切り替わった場合、他方の仮想マシンがセマフォから共有リソースの占有権を取得できず、排他権の取得処理を繰り返すスピンロック処理を行う。このようなことから、特許文献1の技術では、一方の仮想マシンにより占有権の開放が行われるまで他方の仮想マシンのスピンロック処理が継続されて他方の仮想マシンの処理が進まなくなる問題がある。しかしながら、実施の形態1にかかる半導体装置1では、特許文献1に記載の技術のように仮想マシンの処理が進まなくなる問題は解消される。
実施の形態2
実施の形態2では、実施の形態1にかかる半導体装置1の別の形態となる半導体装置2について説明する。図5に実施の形態2にかかる半導体装置2のブロック図を示す。なお、実施の形態1で説明した構成要素と同じ構成要素については実施の形態1と同じ符号を付して説明を省略する。
実施の形態2では、実施の形態1にかかる半導体装置1の別の形態となる半導体装置2について説明する。図5に実施の形態2にかかる半導体装置2のブロック図を示す。なお、実施の形態1で説明した構成要素と同じ構成要素については実施の形態1と同じ符号を付して説明を省略する。
図5に示すように、実施の形態2にかかる半導体装置2は、実施の形態1にかかる半導体装置1にプロセッサユニット10bを追加したものである。また、図5では、図1に示したプロセッサユニット10の符号をプロセッサユニット10aとした。プロセッサユニット10bは、プロセッサユニット10と同じように仮想マシンが論理的に構成されるものでも良く、仮想マシンが構築されない1つの動作を行うプロセッサユニットであっても良い。つまり、実施の形態2にかかる半導体装置2では、プロセッサユニット10aとプロセッサユニット10bの少なくとも一方がプロセッサユニット10と同じ構成を有していれば良い。
続いて、実施の形態2にかかる半導体装置2の動作について説明する。図6に実施の形態2にかかる半導体装置の動作を説明するタイミングチャートを示す。図6に示す例では、プロセッサユニット10b(図6のCPU_B)が共有リソース13の占有権を獲得して、共有リソース13を利用した処理を行う。
その後、プロセッサユニット10a(図6のCPU_A)の仮想マシン31がセマフォ12に対して占有権獲得要求(図6のロック要求LR(VM0))を発する。しかしながら、共有リソース13の占有権はすでにプロセッサユニット10bに獲得されてしまっているため、セマフォ管理部21がセマフォ割込S_INTを発してプロセッサコア20上で動作する仮想マシンを仮想マシン31から仮想マシン32に切り替える。また、セマフォ管理部21は、スピンロック処理を開始する。
その後、プロセッサユニット10bが共有リソース13の占有権を開放した後に、セマフォ管理部21が共有リソース13の占有権の獲得に成功したことに応じて、セマフォ管理部21はセマフォ割込S_INTを出力し、セマフォ割込S_INTに基づき仮想マシン管理部30がプロセッサコア20上で動作する仮想マシンを仮想マシン32から仮想マシン31に戻す。これにより、仮想マシン31は共有リソース13を利用した処理を継続することができる状態となる。
上記説明より、実施の形態2にかかる半導体装置2では、セマフォ管理部21が設けられるプロセッサユニット10aとは別のプロセッサユニット10bが設けられる。このような場合においてもプロセッサユニット10aにセマフォ管理部21が設けられていることで、実施の形態2にかかる半導体装置2は、仮想マシン31、32の処理の停滞を防止して、半導体装置の処理効率を高めることができる。
実施の形態2にかかる半導体装置2の構成をまとめると、半導体装置は、複数のプロセッサ10a、10bと、複数のプロセッサにより共有される共有リソース11と、複数のプロセッサで行われている処理の単位毎に共有リソース13に関する占有権を与えるセマフォ12と、を有する。そして、半導体装置において、複数のプロセッサの少なくとも1つが、セマフォ管理部21を有する。そして、セマフォ管理部21は、自プロセッサで行われている第1の処理による共有リソース13の占有権の獲得が失敗した場合には、処理を第1の処理から第2の処理に切り替えると共に、第1の処理による共有リソース13の占有権を獲得できるまでセマフォに対して占有権の獲得処理を繰り返す。また、セマフォ管理部21は、第1の処理による共有リソースの占有権の獲得状態が失敗から成功した変化したことに応じて、自プロセッサで行われる処理を第2の処理から第1の処理に切り替える。
また、第1の処理と第2の処理を行うプロセッサは、第1の仮想マシンと第2の仮想マシンと、第1の仮想マシンと第2の仮想マシンとを切り替えながら動作を制御する仮想マシン管理部と、を有する。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
1 半導体装置
2 半導体装置
10 プロセッサユニット
10a プロセッサユニット
10b プロセッサユニット
11 クロスバスイッチ
12 セマフォ
13 共有リソース
20 プロセッサコア
21 セマフォ管理部
30 仮想マシン管理部
31 仮想マシン
32 仮想マシン
40 スピン制御部
41 レジスタ
51 スピンロック制御レジスタ
52 スピンロック状態レジスタ
53 セマフォアドレスレジスタ
54 セマフォ比較データ
55 セマフォロックデータ
2 半導体装置
10 プロセッサユニット
10a プロセッサユニット
10b プロセッサユニット
11 クロスバスイッチ
12 セマフォ
13 共有リソース
20 プロセッサコア
21 セマフォ管理部
30 仮想マシン管理部
31 仮想マシン
32 仮想マシン
40 スピン制御部
41 レジスタ
51 スピンロック制御レジスタ
52 スピンロック状態レジスタ
53 セマフォアドレスレジスタ
54 セマフォ比較データ
55 セマフォロックデータ
Claims (8)
- 第1の仮想マシンと第2の仮想マシンとが論理的に構築されるプロセッサと、
前記第1、第2の仮想マシンにより共有される共有リソースと、
前記共有リソースの占有権を前記第1の仮想マシンと前記第2の仮想マシンとのいずれか一方に与えるセマフォと、を有し、
前記プロセッサは、
前記第1、第2の仮想マシンとのいずれを動作状態とするかを切り替える仮想マシン管理部と、
セマフォ管理部と、を有し、
前記セマフォ管理部は、
前記第1、第2の仮想マシンの一方の仮想マシンが前記共有リソースの前記占有権の獲得に失敗した場合には、動作状態となる前記仮想マシンを前記一方の仮想マシンから他方の仮想マシンに切り替えることを前記仮想マシン管理部に指示すると共に、前記一方の仮想マシンによる前記共有リソースの前記占有権の獲得処理を繰り返し、
前記一方の仮想マシンに関する前記共有リソースの前記占有権の獲得状態が失敗から成功した変化したことに応じて、前記仮想マシン管理部に動作状態となる前記仮想マシンを前記他方の仮想マシンから一方の仮想マシンに切り替えることを指示する半導体装置。 - 前記セマフォ管理部は、
前記セマフォが前記占有権を与えている前記仮想マシンに関する第1のセマフォ情報を格納するセマフォ比較データレジスタを有し、
前記セマフォ比較データレジスタに格納された前記第1のセマフォ情報と、前記セマフォに対して前記占有権の獲得を要求している前記仮想マシンが前記セマフォに対して発した第2のセマフォ情報と、を比較して2つの情報が不一致であれば前記第2のセマフォ情報を用いたセマフォの獲得を周期的に繰り返す請求項1に記載の半導体装置。 - 前記第2のセマフォ情報には、前記第2のセマフォ情報を発した仮想マシンを識別する仮想マシン識別子、前記仮想マシン上で処理されているアプリケーションソフトを識別するアプリケーション識別子、及び、前記仮想マシン上で処理されているアプリケーションソフトのコード上のステップを識別するステップ識別子の少なくとも1つが含まれる請求項2に記載の半導体装置。
- 前記占有権の獲得を要求した前記仮想マシンは、前記セマフォ管理部に設けられるスピンロック状態レジスタを参照して、自信が要求した前記占有権を獲得できたか否かを判断する請求項1に記載の半導体装置。
- 前記セマフォ管理部は、前記第1の仮想マシンと前記第2の仮想マシンのいずれか一方の仮想マシンに関する前記占有権の獲得処理を前記セマフォに対して行っている場合に、他方の仮想マシンから前記占有権の獲得処理が要求された場合には前記他方の仮想マシンにビジー状態であることを通知する請求項1に記載の半導体装置。
- 少なくとも一方が前記プロセッサと同一の構成を備える第1、第2のプロセッサを有し、
前記セマフォは前記第1、第2のプロセッサのいずれのプロセッサに対しても前記共有リソースの前記占有権を与え、
前記セマフォ管理部は、前記第1の仮想マシンと前記第2の仮想マシンのいずれか一方の仮想マシンに関する前記占有権の獲得処理を前記セマフォに対して行っている場合に、他方の仮想マシンから前記占有権の獲得処理が要求された場合には前記他方の仮想マシンにビジー状態であることを通知する請求項1に記載の半導体装置。 - 複数のプロセッサと、
前記複数のプロセッサにより共有される共有リソースと、
前記複数のプロセッサで行われている処理の単位毎に前記共有リソースに関する占有権を与えるセマフォと、を有し、
前記複数のプロセッサの少なくとも1つは、セマフォ管理部を有し、
前記セマフォ管理部は、
自プロセッサで行われている第1の処理による前記共有リソースの前記占有権の獲得が失敗した場合には、処理を前記第1の処理から第2の処理に切り替えると共に、前記第1の処理による前記共有リソースの前記占有権を獲得できるまで前記セマフォに対して前記占有権の獲得処理を繰り返し、
前記第1の処理による前記共有リソースの前記占有権の獲得状態が失敗から成功した変化したことに応じて、自プロセッサで行われる処理を前記第2の処理から前記第1の処理に切り替える半導体装置。 - 前記第1の処理と前記第2の処理を行うプロセッサは、第1の仮想マシンと第2の仮想マシンと、前記第1の仮想マシンと前記第2の仮想マシンとを切り替えながら動作を制御する仮想マシン管理部と、を有する請求項7に記載の半導体装置。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017194248A JP2019067289A (ja) | 2017-10-04 | 2017-10-04 | 半導体装置 |
US16/121,327 US10884882B2 (en) | 2017-10-04 | 2018-09-04 | Semiconductor device including semaphore management |
CN201811069775.9A CN109614218B (zh) | 2017-10-04 | 2018-09-13 | 半导体器件 |
EP18195623.6A EP3467654A1 (en) | 2017-10-04 | 2018-09-20 | Semiconductor device |
TW107134592A TW201926036A (zh) | 2017-10-04 | 2018-10-01 | 半導體裝置 |
KR1020180117501A KR20190039461A (ko) | 2017-10-04 | 2018-10-02 | 반도체 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017194248A JP2019067289A (ja) | 2017-10-04 | 2017-10-04 | 半導体装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019067289A true JP2019067289A (ja) | 2019-04-25 |
Family
ID=63667732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017194248A Pending JP2019067289A (ja) | 2017-10-04 | 2017-10-04 | 半導体装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10884882B2 (ja) |
EP (1) | EP3467654A1 (ja) |
JP (1) | JP2019067289A (ja) |
KR (1) | KR20190039461A (ja) |
CN (1) | CN109614218B (ja) |
TW (1) | TW201926036A (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7207133B2 (ja) * | 2019-04-23 | 2023-01-18 | 富士通株式会社 | 情報処理装置、同期装置及び情報処理装置の制御方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6401110B1 (en) * | 1998-11-30 | 2002-06-04 | International Business Machines Corporation | Method for managing concurrent processes using dual locking |
US6757769B1 (en) * | 2000-11-28 | 2004-06-29 | Emc Corporation | Cooperative lock override procedure |
US6792497B1 (en) | 2000-12-12 | 2004-09-14 | Unisys Corporation | System and method for hardware assisted spinlock |
US7500036B2 (en) * | 2000-12-28 | 2009-03-03 | International Business Machines Corporation | Quad aware locking primitive |
TWI256553B (en) * | 2004-12-17 | 2006-06-11 | Ind Tech Res Inst | Apparatus and method for hardware semaphore |
JP3976065B2 (ja) * | 2006-01-16 | 2007-09-12 | セイコーエプソン株式会社 | マルチプロセッサシステム及びマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラム |
CN101546275B (zh) * | 2008-03-26 | 2012-08-22 | 中国科学院微电子研究所 | 一种获取多处理器硬件信号量的方法 |
US9201673B2 (en) * | 2008-07-30 | 2015-12-01 | Microsoft Technology Licensing, Llc | Efficient detection and response to spin waits in multi-processor virtual machines |
JP2010092101A (ja) * | 2008-10-03 | 2010-04-22 | Renesas Technology Corp | 情報処理装置 |
JP5349072B2 (ja) * | 2009-02-17 | 2013-11-20 | パナソニック株式会社 | 資源排他制御方法および資源排他制御装置 |
US20130111168A1 (en) * | 2011-10-27 | 2013-05-02 | Freescale Semiconductor, Inc. | Systems and methods for semaphore-based protection of shared system resources |
JP5813554B2 (ja) * | 2012-03-30 | 2015-11-17 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
JP2014182507A (ja) * | 2013-03-18 | 2014-09-29 | Mitsubishi Electric Corp | 計算機及び排他制御方法及び排他制御プログラム |
US9542238B2 (en) | 2013-05-23 | 2017-01-10 | Nxp Usa, Inc. | Systems and methods for direct memory access coherency among multiple processing cores |
US9076017B2 (en) * | 2013-11-27 | 2015-07-07 | Cisco Technology, Inc. | Hardware virtualization module for exclusive controlled access to CPU |
-
2017
- 2017-10-04 JP JP2017194248A patent/JP2019067289A/ja active Pending
-
2018
- 2018-09-04 US US16/121,327 patent/US10884882B2/en active Active
- 2018-09-13 CN CN201811069775.9A patent/CN109614218B/zh active Active
- 2018-09-20 EP EP18195623.6A patent/EP3467654A1/en not_active Withdrawn
- 2018-10-01 TW TW107134592A patent/TW201926036A/zh unknown
- 2018-10-02 KR KR1020180117501A patent/KR20190039461A/ko unknown
Also Published As
Publication number | Publication date |
---|---|
US20190102268A1 (en) | 2019-04-04 |
CN109614218A (zh) | 2019-04-12 |
EP3467654A1 (en) | 2019-04-10 |
US10884882B2 (en) | 2021-01-05 |
KR20190039461A (ko) | 2019-04-12 |
CN109614218B (zh) | 2023-10-24 |
TW201926036A (zh) | 2019-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9411646B2 (en) | Booting secondary processors in multicore system using kernel images stored in private memory segments | |
KR101664108B1 (ko) | 멀티 코어의 동기화를 효율적으로 처리하기 위한 하드웨어 가속 장치 및 방법 | |
JP5093259B2 (ja) | Biosとbmcとの間の通信パス強化方法、その装置及びそのプログラム | |
US9043806B2 (en) | Information processing device and task switching method | |
JP2016508647A5 (ja) | ||
JP2010140290A (ja) | マルチプロセッサシステム及びその排他制御の調停方法 | |
JP5445669B2 (ja) | マルチコアシステムおよび起動方法 | |
US11119948B2 (en) | Memory protection circuit and memory protection method | |
CN104104705B (zh) | 分布式存储系统的接入方法和设备 | |
WO2016092856A1 (ja) | 情報処理装置、情報処理システム、タスク処理方法、及び、プログラムを記憶する記憶媒体 | |
JP2008522277A (ja) | 優先度の付けられたタスク間の効率的な切り換え | |
JP6543219B2 (ja) | 仮想マシン配置装置およびリソース管理方法 | |
JP2019067289A (ja) | 半導体装置 | |
CN113918336A (zh) | 基于多核CPU的FreeRTOS运行任务方法及装置 | |
CN107924322B (zh) | 用于硬件虚拟化支持的设备和方法 | |
JP6442947B2 (ja) | 情報処理装置、情報処理方法及びそのプログラム | |
JP5641128B2 (ja) | マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム | |
JP2007122337A (ja) | 演算装置 | |
US20230195523A1 (en) | Semiconductor device, control method for the same, and program | |
JP6940283B2 (ja) | Dma転送制御装置、dma転送制御方法、及び、dma転送制御プログラム | |
CN113835857B (zh) | 一种外置存储设备的挂载方法、装置、设备及介质 | |
JP2010044699A (ja) | 情報処理装置 | |
JP2010020683A (ja) | スレッド制御方法およびスレッド制御装置ならびにリアルタイムシステム | |
US8566829B1 (en) | Cooperative multi-level scheduler for virtual engines | |
JP2009251681A (ja) | スタック領域の拡張方法及びプログラム |