JPWO2011104812A1 - マルチコアプロセッサシステム、割込プログラム、および割込方法 - Google Patents

マルチコアプロセッサシステム、割込プログラム、および割込方法 Download PDF

Info

Publication number
JPWO2011104812A1
JPWO2011104812A1 JP2012501551A JP2012501551A JPWO2011104812A1 JP WO2011104812 A1 JPWO2011104812 A1 JP WO2011104812A1 JP 2012501551 A JP2012501551 A JP 2012501551A JP 2012501551 A JP2012501551 A JP 2012501551A JP WO2011104812 A1 JPWO2011104812 A1 JP WO2011104812A1
Authority
JP
Japan
Prior art keywords
thread
core
event
applications
executed
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.)
Granted
Application number
JP2012501551A
Other languages
English (en)
Other versions
JP5673666B2 (ja
Inventor
浩一郎 山下
浩一郎 山下
宏真 山内
宏真 山内
清志 宮▲崎▼
清志 宮▲崎▼
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2011104812A1 publication Critical patent/JPWO2011104812A1/ja
Application granted granted Critical
Publication of JP5673666B2 publication Critical patent/JP5673666B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Stored Programmes (AREA)
  • Power Sources (AREA)

Abstract

アプリ(A)において排他開始イベントが検出されると、スレッド(B)に割込信号(排他開始)を通知する。排他開始イベントの通知を受け付けると、スレッド(B)を退避させることでスレーブCPU(102)が開放される。スレッドキューにはスレッド(Y)があるため、スレーブCPU(102)にはスレッド(Y)が割り当てられる。これにより、スレーブCPU(102)では、スレッド(Y)が実行される。スレッド(Y)が終了すると、スレッドキューは空であるため低電力モードに移行する。このあと、アプリ(A)において、排他終了イベントが検出されると、アプリ(A)からスレーブCPU(102)に対し割込信号(排他終了)を通知する。スレーブCPU(102)では、排他終了イベントの通知を受け付けると、スレッド(B)をスレーブCPU(102)に復元する。これにより、スレッド(B)を退避させた位置から再実行することができる。

Description

本発明は、スレッドの割込を制御するマルチコアプロセッサシステム、割込プログラム、および割込方法に関する。
従来からマルチコアプロセッサシステムが開示されている。たとえば、スレーブCPU(Central Processing Unit)ではOS(Operating System)のカーネルを動作させずに、マスタCPUからの起動要求に対し、スレーブライブラリをスレッド起動するマルチコアプロセッサシステムがある(たとえば、下記特許文献1〜4を参照。)。この場合、スレーブCPUではカーネルは動作させず、必要最低限のスレッド実行手続きとマスタCPUからの割り込み制御機能のみを有することで、OSのカーネルによるオーバーヘッドを最小限にする。
たとえば、マスタCPUで実行されているライブラリスレッドがスレーブCPUに対しスレーブライブラリスレッドの呼び出しがあった場合、マスタCPUおよびスレーブCPUで並列実行が実現できる。
特開2005−25726号公報 特開平6−243102号公報 特開平6−149752号公報 特開2006−185348号公報
しかしながら、上述した従来技術では、スレーブCPUは、マスタCPUから呼び出しがあればスレッドを実行するが、呼び出しがない場合、休止状態が継続することとなる。マスタCPUとスレーブCPUは常時並列実行する場合は少なく、通常は、スレーブCPUはマスタCPUからの呼び出しがあるまで休止状態となる。
このように、動作させるソフトウェアの並列実行可能な比率により、システムの利用効率が決定する(アムダールの法則)が、プロセッサ数が増えるに従い、あるいはソフトウェアのもつ並列実行可能な比率が下がるに従い、極端に利用効率が悪化して性能が劣化するという問題があった。
一方、マルチプロセッサの各CPUにOSを走行させると、各CPUでアプリケーションが実行されるが、同時に実行されるアプリケーションに対し排他制御などを施す必要が生じる。このように、OSのカーネルによりきめこまかい制御が可能となるが、その管理機構によるオーバーヘッドが発生するという問題があった。特に、携帯端末のような組み込みシステムにおいては、管理機構によるオーバーヘッドが無視できない負荷になるという問題があった。
本発明は、上述した従来技術による問題点を解消するため、低負荷でかつプロセッサの利用効率の向上を図ることができるマルチコアプロセッサシステム、割込プログラム、および割込方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、本マルチコアプロセッサシステム、割込プログラム、および割込方法は、OSおよび複数のアプリケーションが実行される一のコアと前記複数のアプリケーションのスレッドが割り当てられる他のコアとを有するマルチコアプロセッサシステムであって、前記複数のアプリケーションのうち一のアプリケーションにおいて発生したイベントを指定する割込信号を前記一のコアから受信し、受信された割込信号で指定されたイベントが、前記他のコアで現在実行中のスレッドに対する排他または同期の開始イベントであるか否かを判断し、前記開始イベントであると判断された場合、前記現在実行中のスレッドを前記他のコアから退避させ、前記複数のアプリケーションの実行待ちスレッド群のうち退避させられたスレッド以外の他のスレッドを前記他のコアの実行対象スレッドに割り当てることを要件とする。
本マルチコアプロセッサシステム、割込プログラム、および割込方法によれば、低負荷でかつプロセッサの利用効率の向上を図ることができるという効果を奏する。
本実施の形態にかかるマルチコアプロセッサシステムのハードウェア構成を示すブロック図である。 本実施の形態にかかるマルチコアプロセッサシステムでの実行処理手順を示すフローチャートである。 割込制御の具体例1を示すシーケンス図である。 割込制御の具体例2を示すシーケンス図である。 割込制御の具体例3を示すシーケンス図である。 割込制御の具体例4を示すシーケンス図である。
以下に添付図面を参照して、この発明にかかるマルチコアプロセッサシステム、割込プログラム、および割込方法の実施の形態を詳細に説明する。なお、本実施の形態のマルチコアプロセッサシステムにおいて、マルチコアプロセッサとは、コアが複数搭載されたプロセッサである。コアが複数搭載されていれば、複数のコアが搭載された単一のプロセッサでもよく、シングルコアのプロセッサが並列されているプロセッサ群でもよい。なお、本実施の形態では、説明を単純化するため、シングルコアのプロセッサが並列されているプロセッサ群を例に挙げて説明する。
(マルチコアプロセッサシステムのハードウェア構成)
図1は、本実施の形態にかかるマルチコアプロセッサシステムのハードウェア構成を示すブロック図である。図1において、マルチコアプロセッサシステム100は、マスタCPU101と一または複数のスレーブCPU102(図1では1個)とメモリ103とがバス104を介して接続されて構成されている。マスタCPU101およびスレーブCPU102にはキャッシュメモリが内蔵されている。
マスタCPU101は、メモリ管理やスレーブCPU102を制御するOS110が走行する。OS110はマスタCPU101でのみ走行する。また、マスタCPU101では、OS110に対応する複数のアプリケーションが、OS110のスケジューリングによりタイムスライスで動作する。アプリケーションAにはその動作中に起動するスレッドBが含まれており、アプリケーションXにはその動作中に起動するスレッドYが含まれる。
スレーブCPU102は、割込プログラム120を実行する。また、マスタCPU101で実行されているアプリケーションのスレッドも実行される。スレーブCPU102では、OS110が走行しないため、1個だけで独立動作することとなる。
メモリ103は、OS110やアプリケーション、その他各種情報を記憶したり、マスタCPU101およびスレーブCPU102のワークエリアとして使用される。メモリ103は、具体的には、たとえば、ROM(Read Only Memory)、RAM(Random Access Memory)、フラッシュメモリ、ハードディスクドライブなどの記憶装置である。
図1では、マスタCPU101ではOS110上で動作するアプリケーションA,Xがタイムスライス動作しており、スレーブCPU102ではアプリケーションAのスレッドBが独立動作している。なお、アプリケーションXのスレッドYはマスタCPU101のスレッドキューで待機している。
本実施の形態では、排他または同期のイベントが発生した場合、スレーブCPU102を効率よく運用する。ここで、同期の例について説明する。たとえば、アプリケーションAに、ファイル読み込みを行ってメモリ103上に展開する機能があり、同時実行中のスレッドBはメモリ103上に展開されたファイルのデータを利用するものとする。このとき、スレッドBはアプリケーションAによるファイル読み出しとメモリ展開が完了するまで待機することになる。すなわちデータが展開されるメモリ領域は、ファイル読み出しと同時にアプリケーションAにより排他監視下におかれ、一時的にスレーブCPU102からスレッドBが開放される。このあと、メモリ展開後にスレッドBとデータを共用(同期)することになる。
また、排他の例について説明する。たとえば、アプリケーションAがブラウザ、スレッドBがブラウザ内で動作する動画再生プログラムとする。また、アプリケーションXがメーラ、スレッドYがメールの問合わせプログラムとする。
マスタCPU101では、アプリケーションA(ブラウザ)とアプリケーションX(メーラ)が時分割で動作しているものとする。スレッドB(動画再生プログラム)が動画配信サーバからの動画の再生中に、スレッドY(メールの問合わせプログラム)の起動タイミングがきた場合、OS110は、スレーブCPU102にスレッドY(メールの問合わせプログラム)を実行させるため、スレッドB(動画再生プログラム)を排他制御する。これにより、スレーブCPU102からスレッドB(動画再生プログラム)が開放されて、スレーブCPU102においてスレッドY(メールの問合わせプログラム)が実行されることとなる。
(マルチコアプロセッサシステム100での割込処理手順)
図2は、本実施の形態にかかるマルチコアプロセッサシステム100での実行処理手順を示すフローチャートである。図2において、マスタCPU101の処理手順は、OS110の管理処理手順を示しており、スレーブCPU102の処理手順は、マスタCPU101からのスレッドの割込制御処理手順を示している。
まず、マスタCPU101でのOS110の管理処理手順について説明する。OS110は、マスタプロセスを並列起動する(ステップS201)。具体的には、たとえば、マスタプロセスであるアプリケーションA,Xをタイムスライス動作させる。
また、起動されたマスタプロセスが実行されると、マスタCPU101は、OS110により、マスタプロセスの実行状況に応じてマスタプロセスのスレッドをスレッドキュー200に設定する(ステップS202)。具体的には、たとえば、スレッドB,Yを設定する。スレッドキュー200のステータスは、たとえば、メモリ103に書き込まれており、スレーブCPU102から参照可能となっている。
そして、マスタCPU101は、OS110により、イベントの発生を検出する(ステップS203)。ここで、イベントとは、スレッドの起動や停止、割込、排他、同期、シグナル・メッセージなどがある。イベントは、OS110上で実行されているアプリケーションやスレーブCPU102で実行されているスレッドにより発生する。
OS110がイベントの発生を検出すると、そのイベント種別を判別する(ステップS204)。イベントが排他または同期に関するイベントである場合(ステップS204:排他・同期)、マスタCPU101は、OS110により、割込信号の上位ビットに排他または同期を示す識別子を印加して(ステップS205)、ステップS206に移行する。
一方、ステップS204において、イベント種別が排他・同期以外のイベントである場合(ステップS204:その他)、ステップS206に移行する。ステップS206では、マスタCPU101は、OS110により、ステップS204で判別されたイベントに応じた割込信号をスレーブCPU102に通知する(ステップS206)。このように、マスタCPU101は、OS110により、マスタプロセスにおいてイベントが発生すると割込信号をスレーブCPU102に通知するとともに、スレッドキュー200に必要なスレッドを投入して、実行待ちスレッドにする。
また、スレーブCPU102は、割込プログラム120により、スレッドの起動を待ち受け(ステップS210)、スレッドが起動されると、スレーブCPU102は、割込プログラム120により、スレッドを実行する(ステップS211)。このスレッド動作は割込信号を受信するまでおこなわれる。また、割込信号の受信前にスレッドが終了した場合は、ステップS216に移行する。
また、スレーブCPU102がマスタCPU101から割込信号の通知を受けると、スレーブCPU102は、割込プログラム120により、割込受信処理を実行する(ステップS212)。そして、スレーブCPU102は、割込プログラム120により、割込信号で指定されたイベントの種別を判断する(ステップS213)。イベントが、排他または同期に関するイベント以外の他のイベントである場合(ステップS213:その他)、スレーブCPU102は、割込プログラム120により、他のイベントに応じたイベント処理を実行して(ステップS214)、ステップS211に戻る。
一方、イベント種別が排他または同期の開始イベントである場合(ステップS213:排他開始・同期開始)、スレーブCPU102は、割込プログラム120により、現在実行中のスレッドを退避させる(ステップS215)。具体的には、たとえば、現在実行中のスレッドが利用していたスレーブCPU102のキャッシュメモリ上のデータをメモリ103にフラッシュし、メモリ103上のコンテキスト領域を開放することなく、これまで動作していたプログラムカウンタの位置を保存する。これにより、スレーブCPU102が実行していたスレッドから開放される。
スレッドが退避されると、割込プログラム120は、割込プログラム120により、OS110のスレッドキュー200のステータスをチェックする(ステップS216)。スレッドキュー200が空集合でない場合(ステップS216:キュー≠Φ)、割込プログラム120は、割込プログラム120により、スレッドキュー200の先頭のスレッド(退避させられたスレッドではない)を実行対象スレッドに設定して当該スレッドを実行する(ステップS217)。そして、ステップS211に戻る。
一方、スレッドキュー200のステータスが空集合である場合(ステップS216:キュー=Φ)、割込プログラム120は、割込プログラム120により、スレーブCPU102を低電力モードに設定して(ステップS218)、ステップS210のスレッド起動待ち受けに移行する。
また、ステップS213において、イベント種別が、排他解除(終了)または同期終了である場合(ステップS213:排他解除・同期終了)、割込プログラム120は、割込プログラム120により、退避スレッドを復元する(ステップS219)。具体的には、退避スレッドについては、スレーブCPU102を開放してもメモリ103のコンテキスト領域は開放していないため、退避スレッドが用いていたメモリ領域は保護されている。
単純に、スレーブCPU102のレジスタ(メモリ103でもよい)に保存していた退避スレッドのプログラムカウンタを復元するのみで、退避スレッドを再開(復元)することができる。そして、ステップS211に戻る。このように、以上の操作により、従来では排他または同期待ちのため休止していたスレーブCPU102をより効率的に運用することが可能となる。
(割込制御の具体例)
つぎに、図3〜図6を用いて割込制御の具体例を説明する。
図3は、割込制御の具体例1を示すシーケンス図である。図3では、マスタCPU101においてアプリケーションA,XがOS110上でタイムスライス動作しており(実際には、OS110、A、Xがタイムスライス動作)、スレーブCPU102にはスレッドBが実行されているものとする。また、OS110のスレッドキュー200には実行待ちスレッドとしてスレッドYが待機しているものとする。
アプリケーションAにおいて排他開始イベントが検出されると、アプリケーションAからスレッドBに対し割込信号(排他開始)を通知する。スレーブCPU102では、排他開始イベントの通知を受け付けると、スレッドBを退避させることでスレーブCPU102が開放される。スレッドキュー200にはスレッドYがあるため、スレーブCPU102にはスレッドYが割り当てられる。これにより、スレーブCPU102では、スレッドYが実行される。このあと、スレッドYが終了すると、スレッドキュー200は空であるため低電力モードに移行する。
このあと、アプリケーションAにおいて、排他終了イベントが検出されると、アプリケーションAからスレーブCPU102に対し割込信号(排他終了)を通知する。スレーブCPU102では、排他終了イベントの通知を受け付けると、スレッドBをスレーブCPU102に復元する。これにより、スレッドBを退避させた位置から再実行することができる。
また、同期についても同様に、アプリケーションAにおいて同期開始イベントが検出されると、アプリケーションAからスレッドBに対しコヒーレント処理およびスレーブCPU102への通知をおこなう。このとき、スレーブCPU102では一時的にスレッドBが退避させられるが、すぐに復元する。そして、同期開始のタイミングになると、アプリケーションAおよびスレッドBが同期して実行される。
図4は、割込制御の具体例2を示すシーケンス図である。図4では、マスタCPU101においてアプリケーションA,XがOS110上でタイムスライス動作しており、スレーブCPU102にはスレッドBが実行されているものとする。そして、スレッドBがその親となるマスタプロセスではないアプリケーションXに排他をかける例である。
スレッドBがアプリケーションXに対する排他開始イベントを検出すると、OS110に通知する。OS110では、アプリケーションXの停止イベントを検出することとなり、それ以降は、OS110とアプリケーションAとでタイムスライス動作することとなる。このあと、スレッドBがアプリケ−ションXに対する排他終了イベントを検出すると、OS110に通知する。マスタCPU101では、その後、アプリケーションXが復元され、OS110、アプリケーションA,Xがタイムスライス動作することとなる。このように、スレーブCPU102で排他イベントが検出される場合でも、マルチコアプロセッサシステム100は問題なく動作することとなる。
図5は、割込制御の具体例3を示すシーケンス図である。図5では、マスタCPU101においてアプリケーションA,XがOS110上でタイムスライス動作しており、スレーブCPU102にはスレッドBが実行されているものとする。そして、スレッドBがその親となるマスタプロセスのアプリケーションAに排他をかける例である。
スレッドBがアプリケーションAに対する排他開始イベントを検出すると、OS110に通知する。OS110では、アプリケーションAの停止イベントを検出することとなり、それ以降は、OS110とアプリケーションXとでタイムスライス動作することとなる。このあと、スレッドBがアプリケ−ションAに対する排他終了イベントを検出すると、OS110に通知する。マスタCPU101では、その後、アプリケーションAが復元され、OS110、アプリケーションA,Xがタイムスライス動作することとなる。このように、スレーブCPU102で排他イベントが検出される場合でも、マルチコアプロセッサシステム100は問題なく動作することとなる。
図6は、割込制御の具体例4を示すシーケンス図である。図6は、図5において、OS110のスレッドキュー200にスレッドYが設定されている例である。スレッドBがアプリケーションAに対する排他開始イベントを検出すると、OS110に通知する。OS110では、アプリケーションAの停止イベントを検出することとなり、アプリケーションAが停止させられる。
図6では、このあと、OS110とアプリケーションXのタイムスライス動作となるが、アプリケーションXにおいてスレッドYを起動させたい場合、スレーブCPU102ではスレッドBが実行中であるため、スレッドYを実行できない。これにより、アプリケーションXの実行も中断することとなり、マスタCPU101ではOS110のみが実行されることとなる。
このあと、排他終了イベントがスレーブCPU102で検出されると、スレッドBからOS110に通知される。これにより、スレッドBが終了するとともに、マスタCPU101では、OS110、アプリケーションX,Aがタイムスライス動作することとなる。
このように、本実施の形態にかかるマルチコアプロセッサシステム100では、マスタCPU101とスレーブCPU102のうちどのCPUで排他や同期のイベントが発生しても、効率的な運用を図ることができる。
以上説明したように、本実施の形態にかかるマルチコアプロセッサシステム100、割込プログラム120、および割込方法によれば、OS110をマスタCPU101でのみ走行させ、スレーブCPU102には割込プログラム120を実行させているにすぎないため、低負荷での運用を図ることができる。
また、マスタCPU101からスレーブCPU102のスレッドに対し排他または同期をかけることで、実行中のスレッドを退避させるとともに、退避後の空き状態では実行待ちスレッドを割り当てて実行させる。これにより、スレーブCPU102では、休止状態の期間が大幅に短縮され効率的な運用を図ることができる。また、実行待ちスレッドがない場合には、低電力モードに移行するため、低消費電力化を図ることができる。
100 マルチコアプロセッサシステム
101 マスタCPU
102 スレーブCPU
103 メモリ
104 バス
120 割込プログラム
A,X アプリケーション
B,Y スレッド

Claims (6)

  1. OSおよび複数のアプリケーションが実行される一のコアと前記複数のアプリケーションのスレッドが割り当てられる他のコアとを有するマルチコアプロセッサシステムであって、
    前記複数のアプリケーションのうち一のアプリケーションにおいて発生したイベントを指定する割込信号を前記一のコアから受信する受信手段と、
    前記受信手段によって受信された割込信号で指定されたイベントが、前記他のコアで現在実行中のスレッドに対する排他または同期の開始イベントであるか否かを判断する判断手段と、
    前記判断手段によって前記開始イベントであると判断された場合、前記現在実行中のスレッドを前記他のコアから退避させる退避手段と、
    前記複数のアプリケーションの実行待ちスレッド群のうち前記退避手段によって退避させられたスレッド以外の他のスレッドを前記他のコアの実行対象スレッドに割り当てる割当手段と、
    を備えることを特徴とするマルチコアプロセッサシステム。
  2. 前記退避手段によって前記現在実行中のスレッドが退避させられた場合、前記実行待ちスレッド群の有無を特定する特定手段を備え、
    前記割当手段は、
    前記特定手段によって前記実行待ちスレッド群があると特定された場合、前記実行待ちスレッド群のうち前記退避手段によって退避させられたスレッド以外の他のスレッドを前記他のコアの実行対象スレッドに割り当てることを特徴とする請求項1に記載のマルチコアプロセッサシステム。
  3. 前記特定手段によって前記実行待ちスレッド群がないと特定された場合、前記他のコアを現在の電力よりも低電力の状態に設定する設定手段を備えることを特徴とする請求項2に記載のマルチコアプロセッサシステム。
  4. 前記割当手段は、
    前記判断手段によって、前記割込信号で指定されたイベントが、前記退避手段によって退避させられたスレッドに対する排他または同期の終了イベントであると判断された場合、前記退避手段によって退避させられたスレッドを前記他のコアの実行対象スレッドに割り当てることを特徴とする請求項1〜3のいずれか1つに記載のマルチコアプロセッサシステム。
  5. OSおよび複数のアプリケーションが実行される一のコアと前記複数のアプリケーションのスレッドが割り当てられる他のコアとを有するマルチコアプロセッサシステムにおいて、前記他のコアで実行される割込プログラムであって、
    前記複数のアプリケーションのうち一のアプリケーションにおいて発生したイベントを指定する割込信号を前記一のコアから受信する受信工程と、
    前記受信工程によって受信された割込信号で指定されたイベントが、前記他のコアで現在実行中のスレッドに対する排他または同期の開始イベントであるか否かを判断する判断工程と、
    前記判断工程によって前記開始イベントであると判断された場合、前記現在実行中のスレッドを前記他のコアから退避させる退避工程と、
    前記複数のアプリケーションの実行待ちスレッド群のうち前記退避工程によって退避させられたスレッド以外の他のスレッドを前記他のコアの実行対象スレッドに割り当てる割当工程と、
    を前記他のコアに実行させることを特徴とする割込プログラム。
  6. OSおよび複数のアプリケーションが実行される一のコアと前記複数のアプリケーションのスレッドが割り当てられる他のコアとを有するマルチコアプロセッサシステムにおいて、前記他のコアが、
    前記複数のアプリケーションのうち一のアプリケーションにおいて発生したイベントを指定する割込信号を前記一のコアから受信する受信工程と、
    前記受信工程によって受信された割込信号で指定されたイベントが、前記他のコアで現在実行中のスレッドに対する排他または同期の開始イベントであるか否かを判断する判断工程と、
    前記判断工程によって前記開始イベントであると判断された場合、前記現在実行中のスレッドを前記他のコアから退避させる退避工程と、
    前記複数のアプリケーションの実行待ちスレッド群のうち前記退避工程によって退避させられたスレッド以外の他のスレッドを前記他のコアの実行対象スレッドに割り当てる割当工程と、
    を実行することを特徴とする割込方法。
JP2012501551A 2010-02-23 2010-02-23 マルチコアプロセッサシステム、割込プログラム、および割込方法 Expired - Fee Related JP5673666B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/052733 WO2011104812A1 (ja) 2010-02-23 2010-02-23 マルチコアプロセッサシステム、割込プログラム、および割込方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2015000562A Division JP5867630B2 (ja) 2015-01-05 2015-01-05 マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム

Publications (2)

Publication Number Publication Date
JPWO2011104812A1 true JPWO2011104812A1 (ja) 2013-06-17
JP5673666B2 JP5673666B2 (ja) 2015-02-18

Family

ID=44506258

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012501551A Expired - Fee Related JP5673666B2 (ja) 2010-02-23 2010-02-23 マルチコアプロセッサシステム、割込プログラム、および割込方法

Country Status (5)

Country Link
US (1) US20120317403A1 (ja)
EP (1) EP2541406A4 (ja)
JP (1) JP5673666B2 (ja)
CN (1) CN102754080B (ja)
WO (1) WO2011104812A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2761436A1 (de) * 2012-01-31 2014-08-06 Siemens Aktiengesellschaft Verfahren zum betreiben eines prozessors
CN103440169B (zh) * 2013-08-21 2017-07-28 华为技术有限公司 一种进程中断处理的方法及装置
US9804846B2 (en) * 2014-03-27 2017-10-31 International Business Machines Corporation Thread context preservation in a multithreading computer system
JP2016091076A (ja) * 2014-10-30 2016-05-23 日本電気株式会社 情報処理装置
JP6464982B2 (ja) * 2015-10-07 2019-02-06 株式会社デンソー 並列化方法、並列化ツール、車載装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4995548A (ja) * 1973-01-12 1974-09-10
JPH06149752A (ja) 1992-11-12 1994-05-31 Kubota Corp 並列計算機のバリア同期方式
JPH06243102A (ja) 1993-02-18 1994-09-02 Hitachi Ltd 多重情報処理システムの割込み同期方法
JPH0981526A (ja) * 1995-09-08 1997-03-28 Hitachi Ltd マルチプロセッサシステム
JPH09269934A (ja) * 1996-04-02 1997-10-14 Hitachi Ltd 共有メモリのデータ一致化方法および伝送システム
JP3969308B2 (ja) * 2002-03-20 2007-09-05 日本電気株式会社 シングルプロセッサ向けosによる並列処理システム
GB2403561A (en) 2003-07-02 2005-01-05 Advanced Risc Mach Ltd Power control within a coherent multi-processor system
JP4433782B2 (ja) * 2003-12-17 2010-03-17 株式会社日立製作所 情報処理装置及びオペレーティングシステム
US20060136919A1 (en) * 2004-12-17 2006-06-22 Sun Microsystems, Inc. System and method for controlling thread suspension in a multithreaded processor
JP2006185348A (ja) 2004-12-28 2006-07-13 Fujitsu Ltd マルチプロセッサシステム及びロックフラグ操作方法
JP4389797B2 (ja) * 2005-01-28 2009-12-24 セイコーエプソン株式会社 プロセッサおよび情報処理方法
US7882339B2 (en) * 2005-06-23 2011-02-01 Intel Corporation Primitives to enhance thread-level speculation
CN101013388A (zh) * 2007-01-26 2007-08-08 浙江大学 面向异构多核体系的进程调度方法
CN100535865C (zh) * 2007-09-20 2009-09-02 中兴通讯股份有限公司 一种用于多核多线程处理器的单线程复位方法
JP2009277007A (ja) * 2008-05-14 2009-11-26 Mitsubishi Electric Corp 計算機装置及びプログラム
JP5453825B2 (ja) * 2009-02-05 2014-03-26 日本電気株式会社 プログラム並列実行システム、マルチコアプロセッサ上のプログラム並列実行方法
CN101561764B (zh) * 2009-05-18 2012-05-23 华为技术有限公司 一种多核环境下的补丁方法与补丁装置

Also Published As

Publication number Publication date
EP2541406A4 (en) 2013-06-05
CN102754080B (zh) 2015-05-13
CN102754080A (zh) 2012-10-24
WO2011104812A1 (ja) 2011-09-01
US20120317403A1 (en) 2012-12-13
EP2541406A1 (en) 2013-01-02
JP5673666B2 (ja) 2015-02-18

Similar Documents

Publication Publication Date Title
US9672075B2 (en) Method, apparatus, and system for implementing hot migration of virtual machine
US9335998B2 (en) Multi-core processor system, monitoring control method, and computer product
US8261269B2 (en) System and method for synchronizing transient resource usage between virtual machines in a hypervisor environment
US9798595B2 (en) Transparent user mode scheduling on traditional threading systems
US9892481B2 (en) CPU/GPU synchronization mechanism
RU2437144C2 (ru) Способ устранения исключительной ситуации в одном из ядер многоядерной системы
US11194740B2 (en) System and method for application migration for a dockable device
US20130097382A1 (en) Multi-core processor system, computer product, and control method
JP5673666B2 (ja) マルチコアプロセッサシステム、割込プログラム、および割込方法
WO2014139379A1 (zh) 一种异构操作系统中内核运行的方法及装置
JP2015075898A (ja) 処理再開方法、処理再開プログラムおよび情報処理システム
JP2008108075A (ja) タスク切替え制御方法及びコンピュータシステム
US8732441B2 (en) Multiprocessing system
CN106775846B (zh) 用于物理服务器的在线迁移的方法及装置
JP5867630B2 (ja) マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム
JP5996110B2 (ja) 計算機システム及び制御方法
US9690619B2 (en) Thread processing method and thread processing system for setting for each thread priority level of access right to access shared memory
JP2012003510A (ja) 計算機及び転送プログラム
US11640246B2 (en) Information processing device, control method, and computer-readable recording medium storing control program
JP2022055002A (ja) 情報処理装置、情報処理方法および情報処理プログラム
CN114443255A (zh) 一种线程调用方法和装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130604

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130805

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140311

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140512

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141202

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141215

R150 Certificate of patent or registration of utility model

Ref document number: 5673666

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees