JP6246603B2 - タスクスケジューラ機構、オペレーティングシステム及びマルチプロセッサシステム - Google Patents

タスクスケジューラ機構、オペレーティングシステム及びマルチプロセッサシステム Download PDF

Info

Publication number
JP6246603B2
JP6246603B2 JP2014008579A JP2014008579A JP6246603B2 JP 6246603 B2 JP6246603 B2 JP 6246603B2 JP 2014008579 A JP2014008579 A JP 2014008579A JP 2014008579 A JP2014008579 A JP 2014008579A JP 6246603 B2 JP6246603 B2 JP 6246603B2
Authority
JP
Japan
Prior art keywords
task
processor
priority
power
synchronization
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.)
Active
Application number
JP2014008579A
Other languages
English (en)
Other versions
JP2015138323A (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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2014008579A priority Critical patent/JP6246603B2/ja
Priority to US14/593,941 priority patent/US9513974B2/en
Publication of JP2015138323A publication Critical patent/JP2015138323A/ja
Application granted granted Critical
Publication of JP6246603B2 publication Critical patent/JP6246603B2/ja
Active 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • 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/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/483Multiproc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority
    • 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)
  • Power Sources (AREA)

Description

本発明は、タスクスケジューラ機構、それを組み込んだオペレーティングシステム、及びそれらが動作可能なマルチプロセッサシステムに関し、特に、マルチプロセッサシステムに含まれる高性能プロセッサと低電力プロセッサを、動的に使い分けるタスク割り付けに好適に利用できるものである。
マルチプロセッサシステムには、SMP(Symmetrical Multi-Processor)向けOS(Operating System)が組み込まれて、タスクの管理が行われる。マルチプロセッサシステムに高性能プロセッサと低電力プロセッサが含まれている場合に、性能と消費電力のバランスを考慮しながら、タスクをどちらのプロセッサで実行させるかを適切に割り付けることが求められる。
特許文献1には、主システムと補助システムを含むパーソナルコピュータにおいて、処理電力消費要件に基づくサービスのロードバランシングを行う技術が示されている。アプリケーションが実行される時に、プロセッサマネージャが、現在の主システムの負荷を判定し、動作しているコンポーネントの列挙されたリスト(たとえば、光ドライブ、ディスクドライブ、エンコーダ/デコーダなど)を参照する。プロセッサマネージャは、アプリケーションが単純な低集中型タスクである場合には、これを補助システムに切り替え、アプリケーションが集中型のタスクである場合にはこれを主システムに切り替える。
特許文献2には、タスクの優先度をテーブルにおいて管理し、タスクの処理完了までの時間的な余裕を示す余裕度や使用者の要求等を勘案して、タスクの優先度を動的に操作しながらスケジューリングを行う技術が示されている。
特開2005−332386号公報 特開平06−131201号公報
特許文献1及び2について本発明者が検討した結果、以下のような新たな課題があることがわかった。
高性能プロセッサと低電力プロセッサが含まれるマルチプロセッサシステムにおいて複数のアプリケーションが実行され、その複数のアプリケーションによって共通に利用されるタスクがある場合に、その共通のタスクをどちらのプロセッサに割り付けるべきかについて、考慮されていないことがわかった。
特許文献1では、個々のアプリケーションが、高性能の処理が要求される集中型であるか非集中型であるかによって、それぞれのアプリケーションによって起動されるタスクが、主システムと補助システムのどちらで実行されるべきかを、プロセッサマネージャが判断して制御している。このため、集中型のアプリケーションに含まれるタスクが、非集中型のアプリケーションにも含まれており、補助システムで実行されるように制御されると、集中型のアプリケーションが求められる性能を満足することができない恐れがある。これを回避するために、そのタスクを含む全てのアプリケーションを集中型として主システムで実行するように制御すれば、必要以上に電力を消費することとなる。
特許文献2に記載される技術によれば、タスクの優先度を動的に操作しながらスケジューリングを行うことができるが、タスク自体に処理完了までの時間的な要求などが規定されていることが前提とされている。そのため、アプリケーション毎に処理完了までの時間的な要求など所定の性能が規定され、それら複数のアプリケーションに共通に含まれるタスクがある場合には、そのタスクについての時間的な余裕度を一意に規定することができない。したがって、そのようなタスクをどちらのプロセッサに割り付けるべきかについて適切に制御することができない。
このような課題を解決するための手段を以下に説明するが、その他の課題と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
一実施の形態によれば、下記の通りである。
すなわち、複数のアプリケーションを実行可能な、高性能プロセッサと低電力プロセッサが含まれるマルチプロセッサシステムで実行される、タスクスケジューラ機構であって、以下のように構成される。アプリケーションは、入力によって駆動され又は他のタスクによって順次駆動される、複数のタスクを含んで構成される。入力または駆動元のタスクに応じたプライオリティを駆動先タスクに継承する同期機構と、前記駆動先タスクを、継承したプライオリティに基づいて、高性能プロセッサと低電力プロセッサのいづれかに割り付けるタスク割り付け機構とを備える。
前記一実施の形態によって得られる効果を簡単に説明すれば下記のとおりである。
すなわち、駆動先タスクが複数のアプリケーションに共通に使用されるタスクであっても、高性能プロセッサと低電力プロセッサのいづれかに適切に割り付けることができる。
図1は、実施形態1に係るデータ処理装置の構成例を表すブロック図である。 図2は、実施形態1に係るソフトウェアの構成を表す説明図である。 図3は、同期機構内管理テーブル210の構成例と、同期機構220の動作を表す説明図である。 図4は、タスク割り付け機構内管理テーブル221の構成例を示す説明図である。 図5は、同期機構210による同期処理S100の一例を示すフローチャートである。 図6は、タスク割り付け機構220によるタスク割り付け処理S200の一例を示すフローチャートである。 図7は、駆動要求元継承機構230による駆動要求元継承処理S300の一例を示すフローチャートである。 図8は、タスク間の同期状況を模式的に示す説明図である。 図9は、タスク間の同期状況における、稼動中のタスクに対する割り付け変更の動作を模式的に示す説明図である。 図10は、実施形態4に係るタスク割り付け機構220によるタスク割り付け処理S400の一例を示すフローチャートである。
1.実施の形態の概要
先ず、本願において開示される代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
〔1〕<駆動先タスクへのプライオリティの継承>
本願において開示される代表的な実施の形態に係るタスクスケジューラ機構は、複数のアプリケーションを実行可能な、高性能プロセッサ(2)と低電力プロセッサ(3)が含まれるマルチプロセッサシステム(10)で実行される、タスクスケジューラ機構(200)であって、以下のように構成される。
前記アプリケーションは、入力によって駆動され又は他のタスクによって順次駆動される、複数のタスクを含んで構成される。
前記入力または同期元のタスクに応じたプライオリティを駆動先タスクに継承する同期機構(210)と、前記駆動先タスクを、継承したプライオリティに基づいて、前記高性能プロセッサと前記低電力プロセッサのいづれに割り付けるかを決定するタスク割り付け機構(220)とを備える。
これにより、駆動先タスクが複数のアプリケーションに共通に使用されるタスクであっても、高性能プロセッサと低電力プロセッサのいづれかに適切に割り付けることができる。
〔2〕<同期機構内管理テーブル>
項1において、前記同期機構は、各タスクに対応するプライオリティを記憶し、前記同期元タスクと前記駆動先タスクとを関連付けて記憶する、第1管理テーブル(211)を有する。前記第1管理テーブルにおいて、前記駆動先タスクのプライオリティを、前記同期元タスクのプライオリティに書き換えることにより、同期元のタスクに応じたプライオリティを駆動先タスクに継承する。
これにより、同期機構の実装が簡略化される。
〔3〕<サブプロセスグループ>
項2において、前記アプリケーションは、それぞれ複数のタスクを含んで構成されるサブプロセスグループを含み、前記同期機構は、前記第1管理テーブルにおいて、1個のタスクのプライオリティを変更するときには、当該タスクと同一のサブプロセスグループに属する他のタスクのプライオリティを、同じプライオリティに変更する。
これにより、タスクの割り付けを行うタイミングの自由度を高めることができる。
〔4〕<単一のコンテキストで構成されるタスク>
項2において、前記第1管理テーブルは、前記同期元タスクと前記駆動先タスクとの関連付けに加えて、前記駆動先タスクが複数のコンテキストで同時に並行して動作することができるか否かを示すフラグ情報を記憶可能に構成される(212_1〜212_n)。
前記タスク割り付け機構は、駆動先タスクにプロセッサを割り付ける際に、前記フラグ情報を参照する。前記タスク割り付け機構は、参照したフラグ情報により、当該駆動先タスクが単一のコンテキストで構成されるタスクである場合には、当該タスクの稼働状況を取得し、当該タスクが稼動中の場合には、当該タスクを稼動中のプロセッサから他のプロセッサに移動させる制御を可能に構成される(S415HL,S415LH,S420H,S420L)。
これにより、単一のコンテキストで構成されるタスクが、既に一方のプロセッサで稼働中のときに、必要に応じて他のプロセッサに移動させることができ、タスク処理の効率を向上することができる。
〔5〕<システムの電力状況・負荷状況に応じたタスク割り付け>
項1から項4のうちのいずれか1項において、前記タスク割り付け機構は、継承した前記プライオリティに加えてさらに前記マルチプロセッサシステムの電力状況及び/又は負荷状況に基づいて、前記高性能プロセッサと前記低電力プロセッサのいづれかに割り付ける(S201、S203;S401,S403)。
これにより、マルチプロセッサシステムの消費電力と性能のバランスを適切に管理することができる。
〔6〕<タスク割り付け機構内管理テーブル>
項1において、前記タスク割り付け機構は、駆動先タスクのプライオリティと割り付け先のプロセッサとを対応付けて記憶する、第2管理テーブル(221)を有し、前記第2管理テーブルを参照することにより、前記駆動先タスクが継承したプライオリティに基づいて、前記高性能プロセッサと前記低電力プロセッサのいづれに割り付けるかを決定する(S203;S403)。
これにより、タスク割り付け機構の実装が簡略化される。
〔7〕<タスク割り付け機構内管理テーブル=項6+システムの電力状況・負荷状況>
項6において、前記第2管理テーブルは、駆動先タスクの前記プライオリティと前記マルチプロセッサシステムの電力状況及び/又は負荷状況との組合せに対応付けて、前記割り付け先のプロセッサを記憶する(図4、221)。前記タスク割り付け機構は、前記第2管理テーブルを参照することにより、継承した前記プライオリティに加えてさらに前記マルチプロセッサシステムの電力状況及び/又は負荷状況に基づいて、前記高性能プロセッサと前記低電力プロセッサのいづれかに割り付ける(S201、S203;S401,S403)。
これにより、マルチプロセッサシステムの消費電力と性能のバランスを適切に管理することができる。
〔8〕<負荷状態監視・報告機構とシステム電源状態監視・報告機構>
項7において、前記タスクスケジューラ機構は、負荷状態監視・報告機構(106)とシステム電源状態監視・報告機構(106)とをさらに備える。前記負荷状態監視・報告機構は前記マルチプロセッサシステムの負荷状況を監視し、その結果である負荷状況を前記タスク割り付け機構に供給し、前記システム電源状態監視・報告機構は、前記マルチプロセッサシステムに供給される電源の状態を監視し、その結果である電力状況を前記タスク割り付け機構に供給する。
これにより、マルチプロセッサシステムの消費電力と性能のバランスを適切に管理することができる。
〔9〕<省電力制御機構>
項8において、前記タスクスケジューラ機構は、省電力制御機構(700)をさらに備え、前記省電力制御機構は、前記負荷状態監視・報告機構から前記負荷状況が供給され、前記システム電源状態監視・報告機構から前記電力状況が供給され、前記負荷状況と前記電力状況に基づいて、前記高性能プロセッサ及び/又は前記低電力プロセッサの消費電力に関する動作状態を制御する。
これにより、マルチプロセッサシステムの消費電力と性能のバランスを、積極的に制御することができる。
〔10〕<マルチプロセッサ向けオペレーティングシステム>
項1から項9のうちのいずれか1項に記載される、タスクスケジューラ機構を備える、オペレーティングシステム(100)。
これにより、駆動先タスクが複数のアプリケーションに共通に使用されるタスクであっても、高性能プロセッサと低電力プロセッサのいづれかに適切に割り付けることができる、マルチプロセッサ向けオペレーティングシステムを提供することができる。
〔11〕<マルチプロセッサシステム>
項1から項9のうちのいずれか1項に記載される、タスクスケジューラ機構を備える、マルチプロセッサシステム(10)。
これにより、駆動先タスクが複数のアプリケーションに共通に使用されるタスクであっても、高性能プロセッサと低電力プロセッサのいづれかに適切に割り付けることができる、マルチプロセッサシステムを提供することができる。
〔12〕<駆動先タスクへのプライオリティの継承するタスクスケジューラ機構を備えたマルチプロセッサシステム>
高性能プロセッサ(2)と低電力プロセッサ(3)と不揮発性メモリを備え、複数のアプリケーション(102、103)とタスクスケジューラ機構(200)とを実行可能な、マルチプロセッサシステム(10)であって、以下のように構成される。
前記アプリケーションは、入力によって駆動され又は他のタスクによって順次駆動される、複数のタスクを含んで構成される。
前記タスクスケジューラ機構は、前記入力または同期元のタスクに応じたプライオリティを駆動先タスクに継承する同期機構(210)と、前記駆動先タスクを、継承したプライオリティに基づいて、前記高性能プロセッサと前記低電力プロセッサのいづれに割り付けるかを決定するタスク割り付け機構(220)とを備える。
前記不揮発性メモリは、前記高性能プロセッサまたは前記低電力プロセッサによって読み出され実行される、前記アプリケーションと前記タスクスケジューラ機構のプログラムコードを保持する。
これにより、駆動先タスクが複数のアプリケーションに共通に使用されるタスクであっても、高性能プロセッサと低電力プロセッサのいづれかに適切に割り付けることができる、マルチプロセッサシステムを提供することができる。前述の項1〜項9に記載される、従属的特徴は、本項12と以下の各項にも同様に従属的に組み合わせることができ、それぞれ同様の効果を奏する。
〔13〕<割り込みコントローラ>
項12において、割り込みコントローラ(5)をさらに備え、前記割り込みコントローラは、割り込み要因に対応して前記入力を前記タスクスケジューラ機構に供給する。
これにより、一連のタスクを割り込み要因と関連付けることができ、割り込み要因ごとのプライオリティ管理を容易にすることができる。
〔14〕<主記憶装置>
項12において、主記憶装置(1)をさらに備え、前記アプリケーションと前記タスクスケジューラ機構の前記プログラムコードは、前記不揮発性メモリから前記主記憶装置に一旦読み出された後に、前記高性能プロセッサと前記低電力プロセッサと一方または両方で協調して実行可能に構成される。
これにより、プログラムの読み出しが高速化される。
〔15〕<1チップ>
項12から項14のうちのいずれか1項において、少なくとも前記高性能プロセッサと前記低電力プロセッサとが同一半導体基板上に形成された、マルチプロセッサシステム。
これにより、集積化されたマルチプロセッサシステムが提供される。項13に従属する場合には割り込みコントローラが、項14に従属する場合には主記憶装置が、さらに同一半導体基板上に形成されてもよく、さらに、不揮発性メモリも含めて同一半導体基板上に形成されてもよい。
2.実施の形態の詳細
実施の形態について更に詳述する。
〔実施形態1〕
図1は、実施形態1に係るデータ処理装置の構成例を表すブロック図である。
データ処理装置10は、高性能プロセッサ2と低電力プロセッサ3とを含むマルチプロセッサシステムである。高性能プロセッサ2と低電力プロセッサ3は、バスを介して共通の主記憶装置1に接続される。データ処理装置10は、さらに割り込みコントローラ5を備える。割り込みコントローラ5は、接続される液晶表示装置(LCD)7や、タッチパネル8、タイマ9などからの割り込み要求を受け付け、高性能プロセッサ2または低電力プロセッサ3に割り込み要求を通知する。割り込みコントローラ5は、例えば割り込み通知先テーブル51を内部に備えて、割り込みの要因に応じて、割り込み要求を通知するプロセッサを決定する。データ処理装置10は、LCD7を制御しまた表示すべきデータ(LCD出力)を出力するLCDコントローラ6と、タッチパネル8を制御しタッチパネル8から入力されるタッチ位置などの情報を受信するタッチコントローラ(不図示)と、タイマ9などを、周辺回路モジュールとして備える。また、データ処理装置10は、高性能プロセッサ2と低電力プロセッサ3への電源供給を制御する電力供給コントローラ4を備える。電力供給コントローラ4は、高性能プロセッサ2と低電力プロセッサ3を休止させるときに電源供給を停止し、スタンバイ状態に遷移するときに電源電圧を低下させるなどの制御を行うことができる。また、データ処理装置10にシステム電源状態の監視も合せて行う。システム電源状態とは、例えば、電源に余裕がある状態、あるいは電力が不足している状態である。電源に余裕がある状態とは、例えば、バッテリ駆動のシステムにおいて満充電状態の動作、もしくは商用電源に接続された状態の動作を行っている状態である。また、電力が不足している状態とは、バッテリ駆動のシステムにおいてバッテリ残量が不足しつつある場合の動作を行っている状態である。主記憶装置1、高性能プロセッサ2、低電力プロセッサ3、電力供給コントローラ4、割り込みコントローラ5、LCDコントローラ6及びタイマ9などは、例えば公知の半導体製造技術によって単一チップの集積回路として構成される。
図2は、実施形態1に係るソフトウェア101の構成を表す説明図である。データ処理装置10で実行されるソフトウェア(実行プログラム)101は、主記憶装置1に展開され、高性能プロセッサ2と低電力プロセッサ3のいずれか一方で、または両方で協調して実行される。実行プログラム101には、マルチプロセッサ向けオペレーティングシステム(OS)100と各種のアプリケーションプログラムが含まれる。各種のアプリケーションプログラムは例えば、GUI処理アプリケーション102と汎用アプリケーション103であり、汎用アプリケーション103にはGUI処理タスク104とタイマ同期処理タスク105が含まれる。この他、実行プログラム101には、負荷状況監視・報告機構106とシステム電源状態監視・報告機構107が含まれてもよい。これらは図2ではアプリケーションプログラムの一種としてOS100に含まれないものとして記載されるが、OS100に含まれてもよい。
マルチプロセッサ向けオペレーティングシステム(OS)100には、プライオリティ承継型同期・スケジューラ機構200と、高性能プロセッサ用スケジューラ300と、低電力プロセッサ用スケジューラ400と、割り込み処理500と、LCD出力処理タスク600と、省電力制御機構700とが含まれる。
プライオリティ承継型同期・スケジューラ機構200には、管理テーブル211を備える同期機構210と、管理テーブル221を備えるタスク割り付け機構220と、駆動要求元継承機構230とを含んで構成される。動作については後述するが、「プライオリティ承継型」に構成されることにより、タスクを動的に適切に割り付けることができる。高性能プロセッサ用スケジューラ300と低電力プロセッサ用スケジューラ400は、それぞれタスクキューを備えて実装され、プライオリティ承継型同期・スケジューラ機構200によって割り付けられたタスクを、それぞれのタスクキューに積み、順次高性能プロセッサ2と低電力プロセッサ3によって実行されるように、スケジューリングする。
省電力制御機構700は、負荷状況監視・報告機構106とシステム電源状態監視・報告機構107から供給されるシステムの負荷状況と電源状態に基づいて、マルチプロセッサシステムであるデータ処理装置10全体の省電力制御を行う。これと合せて、上述のタスク割り付け機構220によるタスク割り付け動作の判断材料とされる情報を供給する。この動作については後述する。
割り込み処理500には、高性能要求型割り込みであるユーザ入力割り込み処理501と、それと比べて低い性能を要求するに留まる、タイマ割り込み処理502が含まれる。ユーザ入力割り込み処理501は、例えば、図1に示される、LCD同期割り込み要求やタッチパネル割り込み要求に対する割り込み処理であり、できる限り速い応答が求められるため、高性能要求型割り込みに分類される。タイマ割り込み処理502は、例えば、図1に示される、タイマ割り込み要求に対する割り込み処理であり、所定の周期で実行されるべき処理が駆動されるので、上述の高性能要求型割り込みと比べて低い性能が要求される。
LCD出力処理タスク600は、図1に示されるLCDコントローラ6を介してLCD7を制御し、表示データであるLCD出力を、LCD7に出力するタスクであり、オペレーティングシステム(OS)100におけるデバイスドライバの1つとして実装される。図示は省略されるが、OS100には、タッチパネル8を制御するタスクなど、他のデバイスドライバが適宜実装されている。
プライオリティ承継型同期・スケジューラ機構200の構成例と動作について説明する。
図3は、同期機構内管理テーブル211の構成例と、同期機構210の動作を表す説明図である。同期機構内管理テーブル211は、複数の同期構造体212_1〜212_n(nは任意の自然数)とタスクプライオリティ管理テーブル213とを含んで構成される。複数の同期構造体212_1〜212_nには、同期元のあるタスクの処理が完了した時に、次に駆動されるべき駆動先タスクが、互いに関連付けられて規定されている。それぞれの駆動先タスクが、単一コンテキストか否か、即ち複数同時に動作させることを許容しているか否かの上方も合わせて規定される。タスクプライオリティ管理テーブル213には、複数のタスクのそれぞれに対応するプライオリティ214_1〜214_m(mは任意の自然数)が規定されている。1つの同期元タスクがその処理を完了した時には、その同期元タスクに対応する同期構造体が参照され、タスクプライオリティ管理テーブル213に規定される同期元タスクのプライオリティが、タスクプライオリティ管理テーブル213内の駆動先タスクに対応するプライオリティにコピーされることにより、継承される。図3では、同期元のタスクXが完了したときに、第1の同期構造体212_1が参照されることによって、駆動先タスクがタスクYであることがわかる。タスクプライオリティ管理テーブル213において、タスクYのプライオリティがタスクXのプライオリティと同一になるように変更されることにより、プライオリティが同期元タスクタスクXから駆動先タスクタスクYに継承される。
図4は、タスク割り付け機構内管理テーブル221の構成例を示す説明図である。タスク割り付け機構内管理テーブル221には、駆動先タスクのプライオリティに基づいて、割り付け先のプロセッサが規定されている。駆動先タスクのプライオリティが高いときには高性能プロセッサ2に割り付けられ、低いときには低電力プロセッサ3に割り付けられる。図4には、さらにこの割り付けの基準がシステムの電力状況と負荷状況によって調整可能に構成される例が示される。システムの電力状況と負荷状況を表す値が最大(Max)の場合には、できるだけ多くのタスクが高性能プロセッサ2に割り付けられ、最小(min)の場合には、できるだけ多くのタスクが低電力プロセッサ3に割り付けられるように規定されている。ここで、システムの電力状況と負荷状況を表す値が最大(Max)の場合とは、例えば、電池がフル充電状態あるいは充電中であって電力供給に余裕があり、プロセッサに高い負荷を与えることができる状態を指す。また、システムの電力状況と負荷状況を表す値が最小(min)の場合とは、例えば、電池がエンプティに近い充電状態であって電力供給に余裕がなく、プロセッサに高い負荷を与えることができない状態を指す。システムの電力状況と負荷状況は、適宜数値化することによって、駆動先タスクのプライオリティに応じてどのプロセッサに割り付けるかを段階的に調整することができ、きめの細かい消費電力管理を実現することができる。
この例ではアプリケーションAにおいて同期元タスクXが駆動先タスクYを駆動するものとする。タスクYが別のアプリケーションBにおいて、上記と異なる同期元タスクタスクZによって駆動される駆動先タスクでもあるとする。このとき、アプリケーションAは、処理時間に対する余裕が小さく、高性能処理が必要なアプリケーションであり、一方、アプリケーションBは、処理時間に対する余裕が大きく、比較的低い性能の処理で良いアプリケーションであるとする。アプリケーションAを構成するタスクは高いプライオリティで実行され、アプリケーションBを構成するタスクは低いプライオリティで実行されることが期待される。アプリケーションAが開始されると、最初のタスクに高いプライオリティが付与され、上述の構成によりその高いプライオリティが、アプリケーションAを構成し順次駆動される複数のタスクの間で、順次継承されていく。そのため、アプリケーションAにおいては同期元タスクXから駆動先タスクであるタスクYに高いプライオリティが継承され、それに基づいて割り付けられるプロセッサが決まる。一方アプリケーションBを構成するタスクは、低いプライオリティを順次継承するので、同じタスクYに対しても、同期元タスクであるタスクZから低いプライオリティが継承される。
これにより、駆動先タスクが複数のアプリケーションに共通に使用されるタスクであっても、高性能プロセッサと低電力プロセッサのいづれかに適切に割り付けることができる。
図1に示したデータ処理装置10において、周辺装置として、LCD7、タッチパネル8、タイマ9などを備えたのは、一例であって、適宜変更することができる。また、バス構成も階層構造に変更するなど、任意に変更することができる。マルチプロセッサとして高性能と低電力の2個のプロセッサを備える例を示したが、同じ回路構成のプロセッサに対して供給する電源の電圧やクロックの周波数を適宜調整して、性能と消費電力を調整する構成としてもよく、その場合には、両方のプロセッサがともに高性能または低電力で動作する動作モードが含まれても構わない。さらに、マルチプロセッサを構成するプロセッサの数は、2個に限定されるものではなく、3個以上の多数個であってもよい。マルチプロセッサを構成する複数のプロセッサの命令セットは同一であり、同じ命令コードがどのプロセッサでも任意に実行可能であることが望ましい。OS100は、複数のプロセッサで協調して実行されても良く、また、いずれか1個のプロセッサで実行されてもよい。
上述の説明において、「アプリケーション」と「タスク」は、ソフトウェアの階層を示す用語として使用するものであって、「アプリケーション」に複数の「タスク」が含まれるという階層関係を意味するに過ぎない。一般用語としてのアプリケーションには、複数のプライオリティを持つタスクが発生し、それぞれが「プロセス」や「スレッド」を順次発生させながら動作する場合がある、この場合にはタスクが本願でいう「アプリケーション」に、プロセスやスレッドが本願でいうタスクに相当する。
〔実施形態2〕
図1に示したようにデータ処理装置10が、周辺装置として、LCD7、タッチパネル8、タイマ9などを備える場合の動作例について、さらに詳しく説明する。
上述のように、割り込みコントローラ5は、接続されるLCD7や、タッチパネル8、タイマ9などからの割り込み要求を受け付け、割り込み通知先テーブル51に基づいて、割り込みの要因に応じて、高性能プロセッサ2または低電力プロセッサ3に割り込み要求を通知する。
割り込みコントローラ5がタッチパネル8から割り込み要求を受けると、割り込み通知先テーブル51に基づき、高性能プロセッサ2にその要求を通知する。図2に示される実行プログラム101では、割り込み要求が通知されると、マルチプロセッサ向けオペレーティングシステム(OS)100内の割り込み処理500において割り込みが受理される。割り込み処理500において割り込み要因がタッチパネル割り込み要求であることが判断された場合に、ユーザ入力割り込み処理501が駆動される。ユーザ入力割り込み処理501では、タッチパネル8から入力されるデータを処理する。例えばタッチ座標などのデータである。
ユーザ入力割り込み処理501が完了すると、処理完了が同期機構210を経由してGUI処理アプリケーション102に通知され、ユーザ入力割り込み処理501で入力処理されたデータが別途もしくは同時にGUI処理アプリケーション102に引き渡される。GUI処理アプリケーション102は同期機構210を通じ、汎用アプリケーション103を構成するGUI処理タスク104を駆動する。GUI処理タスク104において出力すべき画面イメージを作成したのち、同期機構210を通じ、LCD出力処理タスク600が駆動される。LCD出力処理タスク600はLCDコントローラ6を操作し、LCD出力を更新する。
上記タッチパネル割り込み処理例においては、タッチパネルへの入力に対して迅速にLCD出力を更新するために、上記の処理の流れすべてが高性能プロセッサ2において実行されることが望ましいものとする。
次に、タイマ割り込みを受けた場合の例を示す。
図1に示されるタイマ9からタイマ割り込み要求を受けると、割り込みコントローラ5が割り込み通知先テーブル51に基づき、低電力プロセッサ3に要求を通達する。図2に示される実行プログラム101では、割り込み要求が通知されると、マルチプロセッサ向けオペレーティングシステム(OS)100内の割り込み処理500において割り込みが受理される。割り込み処理500において割り込み要因がタイマ割り込み要求であることが判断された場合に、タイマ割り込み処理502が駆動される。タイマ割り込み処理502では、例えば電池の監視など定時的な処理が実行される。
タイマ割り込み処理502が完了すると、処理完了が同期機構210を経由して汎用アプリケーション104を構成するタイマ同期処理タスク105が駆動される。
上記タイマ割り込み処理の例においては、処理要求速度が低い前提とし、上記の流れすべてが低電力プロセッサ3において実行されることが望ましいものとする。
以下に、本実施形態において望ましい動作を得るにあたり、必要な構成を述べる。
マルチプロセッサ向けオペレーティングシステム100の初期化において、以下の設定を事前に行う構成とする。システム動作中に動的に設定する構成としても良い。
割り込み通知先テーブル51に、割り込み要求の要因ごとに、通知されるプロセッサを定義する。本例では、タッチパネル割り込み要求が高性能プロセッサ2に送られ、タイマ割り込み要求が低電力プロセッサ3に送られることを定義する。
割り込み処理500において、タッチパネル割り込み要求であることが判断された場合に、ユーザ入力割り込み処理501が駆動されるように定義し、タイマ割り込み要求であることが判断された場合に、タイマ割り込み処理502が駆動されるように定義する。
なお、割り込み処理500における駆動先の定義は、割り込み要求が割り込み通知先テーブル51の設定内容が、後に動的に変更された場合に備え、各割り込み処理がいずれかのプロセッサで必ず実行されるような構成とすることがより好適である。即ち、低電力プロセッサ3にタッチパネル割り込み要求が入力された場合でも、また、高性能プロセッサ2にタイマ割り込み要求が入力された場合でも、正常に割り込み処理を実施し、且つ、割り込み要求を受けたプロセッサ上において、各割り込み処理を行う構成とすることがより好適である。
マルチプロセッサ向けオペレーティングシステム100、もしくは、GUI処理アプリケーション102の初期化、あるいは、任意のタスクにおいて、以下の設定を、事前に、もしくは動的に行う構成とする。
先行する割り込み処理もしくはタスクが完了した場合に、駆動されるべき次のタスクを、同期機構210内に存在する同期機構内管理テーブル211の同期構造体212_1〜212_nに、先行するタスクを「同期元タスク」として登録し、駆動されるべき次のタスクを「駆動先タスク」として登録する。本例では第i(iは自然数n以下の任意の自然数)の同期構造体212_iが用いられるものとする。一例では、同期元タスクは上記例におけるユーザ入力割り込み501であり、駆動先タスクは、GUI処理アプリケーション102であり、前記組み合わせが、第1の同期構造体212_1に登録される。また、第2の同期構造体212_2には、同期元タスクとして、GUI処理アプリケーション102、駆動先タスクにGUI処理タスク104が登録される。このように、同期構造体212_1〜212_nにより、順次駆動されるタスクの相互の関係が参照可能とされる。
各タスクの優先順位は、第j(jは自然数m以下の任意の自然数)のタスクプライオリティ214_jに登録される。各タスクのタスクプライオリティは動的に変更されるものとする。例えば、ユーザ入力割り込み501のタスクプライオリティを214_1にて管理し、GUI処理アプリケーション102のタスクプライオリティを214_mにて管理する構成とする。各タスクプライオリティの初期値については、本実施形態では内容を問わないが、定常的な動作状態に至る段階で設定・変更されるものとする。
初期化を終え、データ処理システム10全体が定常的な動作状態に入っている状態の構成を以下に示す。
負荷状態監視・報告機構106は、システム全体の負荷状態や発熱による熱設計上の余裕などのシステム状態を、省電力制御機構700に通知する。また、システム電源状態監視・報告機構107は、電源に余裕がある状態(バッテリ駆動のシステムにおいて満充電状態の動作、もしくは商用電源に接続された場合の動作)、あるいは電力が不足している状態(バッテリ駆動のシステムにおいてバッテリ残量が不足しつつある場合の動作)などのシステム状態を、省電力制御機構700に通知する。
省電力制御機構700は、後述するタスク割り付け機構220に、システムの状態を通知する。また、電力が不足している場合などのシステム状態に応じ、高性能プロセッサ用スケジューラ300において、処理すべきタスクが存在しないことが検出された場合に、電力供給コントローラ4を制御するなどの方法により高性能プロセッサ2を停止させる、もしくは処理が再び要求されるまで間欠動作の状態に設定する。
省電力制御機構700は、より好適には、システムの状態に応じて、割り込み通知先テーブル51を操作し各入力の通知先を変更する機能を有する構成とする。例えば、システム全体が重負荷であったり電力利用に制限が無く各入力を迅速に処理する必要がある場合、あるいは電力が不足していたり軽負荷な状態で特定の入力のみ迅速な処理が要求される場合において、割り込み通知先テーブル51を操作し各入力の通知先を変更する。
定常的な状態から、タッチパネル割り込み要求が入力された場合の処理に必要な構成を以下に示す。
図5と図6と図7は、同期機構210による同期処理S100の一例、タスク割り付け機構220によるタスク割り付け処理S200の一例、駆動要求元継承機構230による駆動要求元継承処理S300の一例を、それぞれ示すフローチャートである。
上記例においては、同期元タスクの処理(ユーザ入力割り込み501)の処理が進んだ場合に、次の処理を行うタスク(GUI処理アプリケーション102)を起動するイベントがプライオリティ継承型同期・スケジューラ機構200に送付される。プライオリティ継承型同期・スケジューラ機構200内の同期機構210は、同期処理S100を開始する。本例においてはユーザ入力割り込み処理501は割り込み通知先テーブル51の定義に従い、高性能プロセッサ2側で実行されている。また、タッチパネル割り込み要求については迅速な処理を実施するために、同期機構内管理テーブル211内のユーザ入力割り込み要求のタスクプライオリティ214_x(不図示)は、高優先順位と設定されている。本例では、上記状態で同期機構210の処理S100が実行される。
同期機構210において、同期構造体212(同期構造体212_1〜212_n全体を指す時は212と略記する)の中から、要求元タスクxから第xの同期構造体212_xが参照され(S101)、駆動先タスクyとして、GUI処理アプリケーション102が取得される(S102)。次に駆動要求元継承機構230による駆動要求元継承処理S300が呼び出される(S103)。
駆動要求元継承機構230によって(S300)、GUI処理アプリケーション102のタスクプライオリティ214_yには、同期元タスクのタスクプライオリティ214_xの内容が継承され(S301〜S303)、その結果、GUI処理アプリケーション102のタスクプライオリティ214_yは、高優先順位に設定される。
駆動要求元継承処理S300について、図7を引用してさらに詳しく説明する。駆動要求元継承要求を受理すると、同期構造体212の中から要求元タスクxに対応する第xのタスクプライオリティ214_xを参照し(S301)、同期構造体212の中から駆動先タスクyに対応する第yのタスクプライオリティ214_yを参照する(S302)。次に、タスクプライオリティを214_xから214_yに継承する(S303)。以上で駆動要求元継承処理S300を完了し、同期処理S100に戻る。同期処理S100では、タスク割り付け機構220に対して、駆動先タスクyの割り付け要求を発行し(S204)、同期機構処理(S100)を完了する。
この一連の処理により、駆動先タスクyとしてGUI処理アプリケーション102が選択され、タスクプライオリティとして高優先順位に設定された状態で、引き続きタスク割り付け機構220によるタスク割り付け処理S200に処理が移る構成が実現される。
タスク割り付け処理S200について、図6を引用して詳しく説明する。タスク割り付け要求を受理すると、タスク割り付け処理S200では、まず、省電力制御機構700が管理するシステム状態を参照する(S201)。次に、同期構造体212の中から駆動先タスクyに対応する第yのタスクプライオリティ214_yを参照する(S202)。次に、タスク割り付け機構内管理テーブル221を、S201で取得したシステム状態とS202で取得した第yのタスクプライオリティ214_yの内容から牽き、割り付け先のプロセッサを決定する(S203)。駆動先タスクyの割り付け先が高性能か低電力化を判断し(S210)、その結果が、高性能プロセッサ2への割り付けであるときは、高性能プロセッサ用タスクスケジューラ300に駆動先タスクyの登録を行って、タスク割り付け処理S200を完了する(S220H)。S210の判断の結果が、低電力プロセッサ3への割り付けであるときは、低電力プロセッサ用タスクスケジューラ400に駆動先タスクyの登録を行って、タスク割り付け処理S200を完了する(S220L)。
以上のように、タスク割り付け機構220において、駆動先タスクの優先順位(本例では高優先順位)と、省電力制御機構700から入力されるシステム状態を元に、タスク割り付け機構内管理テーブル221を参照して、駆動先タスクyの割り付け先のプロセッサを決定する(S201〜S203,S210)。本例では、図4に示されるように、高優先度プライオリティを持つGUI処理アプリケーション102は、電源+負荷状況値がMIN値の場合以外には、高性能プロセッサ2が選択される(S220H)。タスク割り付け機構220が、駆動先タスク(本例ではGUI処理アプリケーション102)を高性能プロセッサに割り付けることを決定した後(S210)、該当するプロセッサ用スケジューラ(本例では高性能プロセッサ用スケジューラ300)に駆動先タスクが登録される(S220H)。高性能プロセッサ用スケジューラ300は、タスクの処理状況に応じて、実際にGUI処理アプリケーション102を、高性能プロセッサ2により処理する。
上記の例では、タッチパネル割り込み要求を用いて高性能プロセッサ2によりユーザ入力割り込み処理501が実行される例を用いたが、タイマ割り込み要求から低電力プロセッサ3においてタイマ割り込み処理502が実行される場合においても同様である。タイマ割り込み処理502では、初めの同期元タスクのプライオリティが低優先順位に設定されることから、駆動要求元継承機構230によって、後続に駆動されるタスクyに低優先順位のプライオリティが継承され(S303)、タスク割り付け機構220から低電力プロセッサ用スケジューラ400に、駆動先タスクyとしてタイマ同期処理タスク105が登録される(S220L)。
なお、本実施形態では、駆動要求元継承機構230により、要求元タスクのタスクプライオリティが、駆動先タスクのタスクプライオリティに、処理を移す段階で動的に継承される。そのため、例えば、本実施形態におけるGUI処理アプリケーション102が、高性能プロセッサ2でユーザ入力割り込み処理501から駆動された場合には、高優先順位として高性能プロセッサ2で駆動されるように制御される。一方、同一のGUI処理アプリケーション102が、低電力プロセッサ3においてタイマ割り込み処理502から駆動された場合には、低優先順位が継承され、結果として低電力電力プロセッサ3により駆動されるように制御される。このように、各タスクが駆動される際に割り付け先となるプロセッサが、当該の処理の入力である割り込み処理などの同期元タスクに応じて動的に、プライオリティ継承型同期・スケジューラ機構200により決定される。
すでに述べたように、接続される割り込みの種別毎の高性能プロセッサ2または低電力プロセッサ3への割り付けは動的に割り込み通知先テーブル51によって制御され得る。本実施形態におけるタスク起動の発端を入力デバイスからの割り込みによらず、任意のタスクによるプライオリティ継承型同期・スケジューラ機構200へのソフトウェア生成のイベント送付を発端とする処理としても、同様の処理が実施される。
以上説明したように、特定の高性能要求型の入力(割り込み)に対して、高性能プロセッサでの一貫処理を行う一方で、通常の入力(割り込み)に対しては低電力プロセッサで処理を行い、かつ高性能プロセッサを休止・停止させる。それにより、高性能要求型の入力に対する十分な処理性能を実現しつつ、システム全体の消費電力を低下させることが可能である。
入力に対する処理を行う各アプリケーション、およびOS・アプリケーション内の個別の各タスクの割り付けは、プライオリティ継承型同期・スケジューラ機構により動的に行われ、各タスクを事前に静的に高性能プロセッサ向き及び低電力プロセッサ向きに多重に準備することなく、同一のタスクを、高性能要求型の入力に対する処理と、それ以外の入力に対する処理の双方で利用可能である。
〔実施形態3〕
単一もしくは複数のタスクからなるプロセスグループを設け、各プロセスグループ内に更に単一もしくは互いの処理が同期処理により連携する複数のタスクからなるサブプロセスグループを設ける。プロセスグループ内の各サブプロセスグループは固定的にタスクが割り付けられてもよいが、割り付けを固定しないタイプのプロセスグループを構成する各サブプロセスグループについては、各サブプロセスグループを構成するタスクの同期機構における他タスクとの連携状況、入出力先の使用中・不使用状態の変化などにより、プロセスグループを跨り置き換えられる。
本実施形態においては、実施形態1における第nのプライオリティ(214_n)を、サブプロセスグループを構成する各タスクで共有する。さらに、サブプロセスグループ内のタスクを起動する要因(入力)の種別、もしくは計算時間の多寡を支配する入力容量・種別、オペレーティングシステム(OS)100が管理する各タスク単位のプライオリティにより、動的に各サブプロセスグループにプライオリティを付与する、サブプロセスグループ管理ガバナー800(不図示)をOS100内に追加する。
前記サブプロセスグループ管理ガバナー800によって、サブプロセスグループ単位で動的に付与されたプライオリティは、サブプロセスグループ内の各タスク毎のプライオリティ214として、タスク割り付け機構220および、駆動要求元継承機構230から参照される。そのため、要求元タスクが所属するサブプロセスグループのプライオリティが、駆動先タスクが所属するサブプロセスグループに継承される(S303)。その後、タスク割り付け機構220内での処理におけるタスク割り付け(S203)により、高性能プロセッサ用スケジューラ300または低電力プロセッサ用スケジューラ400に、駆動先タスクが登録される(S220HまたはS220L)。
以上のように、本実施形態3に係るOS100は、各タスクの高性能プロセッサ、低電力プロセッサへの割り振りを、サブプロセスグループ単位で決定している。入力が行われるタイミングで割り付けを確定させる実施形態1と2に比べ、割り付けを決定するタイミングの自由度が高く、入力時もしくは同期機構起動時以外に、定期的なプライオリティ見直しにより間欠的に割り付け先を確定させても良い。
本実施形態においては、サブプロセスグループ内の一部のタスクに対するプライオリティが設定・変更された段階で、サブプロセスグループ内のすべてのタスクが連動して変更される。このため、直接的にプライオリティ継承型同期・スケジューラ機能200を経由した、タスク間の同期処理を行わないタスク間においても、高性能プロセッサ2への割り付けまたは低電力プロセッサ3への割り付けを同期させることが可能となる。
例えば、実施形態2におけるユーザ入力割り込み処理501によるタスク駆動例において、LCD出力処理タスク600と直接同期しない、LCD画面明度管理タスク(不図示)が同一サブプロセスグループに存在した場合、実施形態2においては、LCD出力処理タスク600とLCD画面明度管理タスク(不図示)が異なるプライオリティとなる可能性がある。このため、LCD7の出力変化と画面明度変化が同期しなくなる恐れがある。しかし、本実施形態3においては、同一のプライオリティとなり、ともに高性能プロセッサ2に割り付けられ、同期した操作が可能となる。
〔実施形態4〕
マルチプロセッサ向けオペレーティングシステム100の機能として、1つのタスクが複数のコンテキストで動作することを可能とすることができる。例えば以上説明した実施形態1〜3では、プライオリティ継承型同期・スケジューラ機構230において、後続の駆動先タスクを駆動する際、後続の駆動先タスクが同期の単位毎に複数のコンテキストで動作することが可能である。また、後続のタスクを駆動する時点におけるプライオリティ・電力状況・負荷状況に応じて高性能プロセッサ側もしくは低電力プロセッサ側に、独立したコンテキストとして割り付けることができる。即ち、各個別のタスク、例えばGUI処理アプリケーション102は、高性能プロセッサ2と低電力プロセッサ3のそれぞれで、独立したタスクとして複数のコンテキストで動作することが可能である。
しかし、全てのマルチプロセッサ向けオペレーティングシステム100が、そのような機能を備えているとは限らない。本実施形態4は、全てあるいは一部のタスクが、単一もしくは同期の単位以下の少数のコンテキストでのみ動作する場合における、実施の形態である。以下、単純化のため、あるタスクが単一のコンテキストで稼働し、一時点においては全プロセッサ中で一つのプロセッサ上にのみ存在が許される場合について説明する。このとき、低電力プロセッサ側で動作中のタスクと同じタスクが、高プライオリティの入力に由来する条件で駆動される場合が発生し得る。
図8は、タスク間の同期状況を模式的に示す説明図である。タッチパネル8から入力されるタッチパネル割り込み要求に由来して、タスクA、タスクB、タスクC、タスクDが順次駆動される。これと並行して、タイマ9から入力されるタイマ割り込み要求に由来して、タスクA’、タスクe、タスクD’ が順次駆動される。タスクAとタスクA’は複数コンテキストで同時に動作することができるものとし、タスクDとタスクD’は単一コンテキスト動作の事例である。
図9は、タスク間の同期状況における、稼動中のタスクに対する割り付け変更の動作を模式的に示す説明図である。タッチパネル割り込み要求に由来する一連のタスクは、高性能プロセッサ2に割り付けられ、タイマ割り込み要求に由来する一連のタスクは低電力プロセッサ3に割り付けられるものとする。図9は横軸方向に時間をとり、縦軸方向に各プロセッサの処理能力を示す。高性能プロセッサ2は低電力プロセッサよりも処理能力が高い。タスクAはタッチパネル割り込み要求に由来するときは、高性能プロセッサ2に割り付けられる。同じタスクAがタイマ割り込み要求に由来するときは、別のコンテキストであるタスクA’として、低電力プロセッサ3に割り付けられる。同じタスクAとA’であっても、高性能プロセッサ2に割り付けられタスクAとして処理されるときは、別のコンテキストのタスクA’として低電力プロセッサ3で処理されるときよりも短時間でタスク(コンテキスト)処理が完了する。その後、低電力プロセッサ3では、タスクeとタスクD’が順次駆動される。一方、これと並行して高性能プロセッサ2ではタスクBとタスクCが順次駆動され、タスクCの完了後にタスクDが駆動されようとする。しかしそのとき既に、タスクDの1つのコンテキストであるタスクD’が低電力プロセッサ3によって実行されている。このとき、高性能プロセッサ2が、低電力プロセッサ3によりタスクD’の処理が完了するのを待たされると、高性能プロセッサ2の処理時間に無駄な空白が生じてしまい、リソースの利用効率が低下するばかりか、タッチパネル割り込み要求に由来する時間的な要求性能を満たせなくなる恐れがある。そこで、本実施形態4では、低電力プロセッサ3により稼動中のタスクD’の割り付け変更を実施する。即ち、タスクD’を高性能プロセッサ2に割り付けて、残りの処理を完了させ、その後、タスクCによって駆動される、本来のタスクDを実行する。
例えば、GUI処理タスク104が、タイマ割り込み処理502から駆動され、低電力プロセッサ3において処理されている状態で、ユーザ入力割り込み処理501に起因する同期イベントにより、後からGUI処理タスク104を高性能プロセッサ2により処理をすべき状態になった場合である。GUI処理タスク104を高性能プロセッサ2により処理をすべき状態になったにも関わらず、GUI処理タスク104の実装上の要因により、高性能プロセッサ2と低電力プロセッサ3で同時に並行して複数動作させることが出来ないために、ユーザ入力割り込み処理501に関連する処理が、タイマ割り込み処理502に由来する処理の完了を、待たねばならない。
本実施形態4では、図3に示されるように、プライオリティ継承型同期・スケジューラ機構200内の同期処理210において参照される同期構造体212_1〜212_nのそれぞれに、次に駆動されるべきタスクが、単一のコンテキストで構成されるか否かのフラグを設ける。
図10は、実施形態4に係るタスク割り付け機構220によるタスク割り付け処理S400の一例を示すフローチャートである。タスク割り付け機構220は、タスク割り付け要求を受理すると、省電力制御機構700が管理するシステム状態を参照する(S401)。次に、同期構造体212の中から駆動先タスクyに対応する第yのタスクプライオリティ214_yを参照する(S402)。次に、タスク割り付け機構内管理テーブル221を、S401で取得したシステム状態とS402で取得した第yのタスクプライオリテ214_yの内容から牽き、割り付け先のプロセッサを決定する(S403)。次に、駆動先タスクyが複数同時動作可能か、単一のコンテキストで構成されるタスクかを、同期構造体212_1〜212_nに設けた上記フラグに基づいて判定する(S404)。駆動先タスクyが単一のコンテキストで構成されるタスクである場合には、駆動先タスクyの割り付け先は高性能プロセッサか低電力プロセッサか、また稼働中で割付変更が必要かを判断する(S405)。
S404の判断の結果、駆動先タスクyが複数動作可能であるか、単一のコンテキストで構成されるタスクであっても、S405の判断の結果、駆動先タスクyが他のプロセッサで稼働していない場合は、駆動先タスクyの割り付け先が高性能プロセッサ2か低電力プロセッサ3かを判断する(S410)。その結果が、高性能プロセッサ2への割り付けであるときは、高性能プロセッサ用タスクスケジューラ300に駆動先タスクyの登録を行って、タスク割り付け処理S400を完了する(S420H)。S410の判断の結果が、低電力プロセッサ3への割り付けであるときは、低電力プロセッサ用タスクスケジューラ400に駆動先タスクyの登録を行って、タスク割り付け処理S400を完了する(S420L)。
S405の判断の結果、タスクyが既に低電力プロセッサで稼働中で、さらに高性能プロセッサに割り付けられた場合は、低電力プロセッサ用スケジューラ400に駆動先タスクyの一時停止を指示し、停止するまで待機する(S415LH)。低電力プロセッサ3でタスクyが停止した後、高性能プロセッサ用タスクスケジューラ300に駆動先タスクyの登録を行って、タスク割り付け処理S400を完了する(S420H)。
S405の判断の結果、タスクyが既に高性能プロセッサ2で稼働中で、さらに低電力プロセッサ3に割り付けられた場合は、高性能プロセッサ用スケジューラ300に駆動先タスクyの一時停止を指示し、停止するまで待機する(S415HL)。高性能プロセッサ2でタスクyが停止した後、低電力プロセッサ用タスクスケジューラ400に駆動先タスクyの登録を行って、タスク割り付け処理S400を完了する(S420L)。
このように、駆動先タスクが単一のコンテキストで構成されるタスクであり、且つ、既に駆動先タスクが稼働中であった場合には、駆動先タスクのプライオリティ・電力状況・負荷状況に応じて高性能プロセッサ側もしくは低電力プロセッサ側から、他の側にタスクを移動させる(S415LHあるいはS415HL)。
これにより、単一コンテキストのタスクのプライオリティ変更が生じた場合でも適切な割り付けが可能となる。低電力プロセッサで処理していたタスクを、高プライオリティの要求元タスクからの同期要求により、高性能プロセッサに移すこと、あるいは、高性能プロセッサで処理していたタスクを、システム状態の変化などにより低電力プロセッサに移すことで、より適切なタスク割り付けを行うことが出来る。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
1 主記憶装置
2 高性能プロセッサ
3 低電力プロセッサ
4 電力供給コントローラ
5 割り込みコントローラ
51 割り込み通知先テーブル
6 LCDコントローラ
7 LCD
8 タッチパネル
9 タイマ
10 データ処理装置
100 マルチプロセッサ向けオペレーティングシステム(OS)
101 実行プログラム(ソフトウェア)
102 GUI処理アプリケーション
103 汎用アプリケーション
104 GUI処理タスク
105 タイマ同期処理タスク
106 負荷状況監視・報告機構
107 システム電源状態監視・報告機構
200 プライオリティ承継型同期・スケジューラ機構
210 同期機構
211 同期機構内管理テーブル
212_1〜212_n 同期構造体
213 タスクプライオリティ管理テーブル
214_1〜214_m タスクプライオリティ
220 タスク割り付け機構
221 タスク割り付け機構内管理テーブル
230 駆動要求元承継機構
300 高性能プロセッサ用スケジューラ
400 低電力プロセッサ用スケジューラ
500 割り込み処理
501 ユーザ入力割り込み処理
502 タイマ割り込み処理
600 LCD出力処理タスク
700 省電力制御機構
800 サブプロセスグループ管理ガバナー
S100 同期機構210による同期処理
S101〜S104 同期処理S100内の各ステップ
S200 タスク割り付け機構220によるタスク割り付け処理
S201〜S203,S210,S220H,S220L タスク割り付け処理S200内の各ステップ
S300 駆動要求元継承機構230による駆動要求元継承処理
S301〜S303 駆動要求元継承処理S300内の各ステップ
S400 実施形態4に係るタスク割り付け機構220によるタスク割り付け処理
S401〜S405,S410,S415HL,S415LH,S420H,S420L タスク割り付け処理S400内の各ステップ

Claims (13)

  1. 複数のアプリケーションを実行可能な、高性能プロセッサと低電力プロセッサが含まれるマルチプロセッサシステムで実行される、タスクスケジューラ機構であって、前記アプリケーションは、入力によって駆動され又は他のタスクによって順次駆動される、複数のタスクを含んで構成され、
    前記入力または同期元のタスクに応じたプライオリティを駆動先タスクに継承する同期機構と、前記駆動先タスクを、継承したプライオリティに基づいて、前記高性能プロセッサと前記低電力プロセッサのいれに割り付けるかを決定するタスク割り付け機構とを備え
    前記同期機構は、各タスクに対応するプライオリティを記憶し、前記同期元タスクと前記駆動先タスクとを関連付けて記憶する、第1管理テーブルを有し、前記第1管理テーブルにおいて、前記駆動先タスクのプライオリティを、前記同期元タスクのプライオリティに書き換えることにより、同期元のタスクに応じたプライオリティを駆動先タスクに継承し、
    前記第1管理テーブルは、前記同期元タスクと前記駆動先タスクとの関連付けに加えて、前記駆動先タスクが複数のコンテキストで同時に並行して動作することができるか否かを示すフラグ情報を記憶可能に構成され、
    前記タスク割り付け機構は、駆動先タスクにプロセッサを割り付ける際に、前記フラグ情報を参照することにより、当該駆動先タスクが単一のコンテキストで構成されるタスクである場合には、当該タスクの稼働状況を取得し、当該タスクが稼動中の場合には、当該タスクを稼動中のプロセッサから他のプロセッサに移動させる制御を可能に構成される、タスクスケジューラ機構。
  2. 請求項において、前記アプリケーションは、それぞれ複数のタスクを含んで構成されるサブプロセスグループを含み、前記同期機構は、前記第1管理テーブルにおいて、1個のタスクのプライオリティを変更するときには、当該タスクと同一のサブプロセスグループに属する他のタスクのプライオリティを、同じプライオリティに変更する、タスクスケジューラ機構。
  3. 請求項1において、前記タスク割り付け機構は、継承した前記プライオリティに加えてさらに前記マルチプロセッサシステムの電力状況及び/又は負荷状況に基づいて、前記高性能プロセッサと前記低電力プロセッサのいれかに割り付ける、タスクスケジューラ機構。
  4. 請求項1において、前記タスク割り付け機構は、駆動先タスクのプライオリティと割り付け先のプロセッサとを対応付けて記憶する、第2管理テーブルを有し、前記第2管理テーブルを参照することにより、前記駆動先タスクが継承したプライオリティに基づいて、前記高性能プロセッサと前記低電力プロセッサのいれに割り付けるかを決定する、タスクスケジューラ機構。
  5. 請求項において、前記第2管理テーブルは、駆動先タスクの前記プライオリティと前記マルチプロセッサシステムの電力状況及び/又は負荷状況との組合せに対応付けて、前記割り付け先のプロセッサを記憶し、前記タスク割り付け機構は、前記第2管理テーブルを参照することにより、継承した前記プライオリティに加えてさらに前記マルチプロセッサシステムの電力状況及び/又は負荷状況に基づいて、前記高性能プロセッサと前記低電力プロセッサのいれかに割り付ける、タスクスケジューラ機構。
  6. 請求項において、前記タスクスケジューラ機構は、負荷状態監視・報告機構とシステム電源状態監視・報告機構とをさらに備え、前記負荷状態監視・報告機構は前記マルチプロセッサシステムの負荷状況を監視し、その結果である負荷状況を前記タスク割り付け機構に供給し、前記システム電源状態監視・報告機構は、前記マルチプロセッサシステムに供給される電源の状態を監視し、その結果である電力状況を前記タスク割り付け機構に供給する、タスクスケジューラ機構。
  7. 請求項において、前記タスクスケジューラ機構は、省電力制御機構をさらに備え、前記省電力制御機構は、前記負荷状態監視・報告機構から前記負荷状況が供給され、前記システム電源状態監視・報告機構から前記電力状況が供給され、前記負荷状況と前記電力状況に基づいて、前記高性能プロセッサ及び/又は前記低電力プロセッサの消費電力に関する動作状態を制御する、タスクスケジューラ機構。
  8. 請求項1に記載される、タスクスケジューラ機構を備える、オペレーティングシステム。
  9. 請求項1に記載される、タスクスケジューラ機構を備える、マルチプロセッサシステム。
  10. 高性能プロセッサと低電力プロセッサと不揮発性メモリを備え、複数のアプリケーションとタスクスケジューラ機構とを実行可能な、マルチプロセッサシステムであって、
    前記アプリケーションは、入力によって駆動され又は他のタスクによって順次駆動される、複数のタスクを含んで構成され、
    前記タスクスケジューラ機構は、前記入力または同期元のタスクに応じたプライオリティを駆動先タスクに継承する同期機構と、前記駆動先タスクを、継承したプライオリティに基づいて、前記高性能プロセッサと前記低電力プロセッサのいれに割り付けるかを決定するタスク割り付け機構とを備え、
    前記不揮発性メモリは、前記高性能プロセッサまたは前記低電力プロセッサによって読み出され実行される、前記アプリケーションと前記タスクスケジューラ機構のプログラムコードを保持し、
    前記同期機構は、各タスクに対応するプライオリティを記憶し、前記同期元タスクと前記駆動先タスクとを関連付けて記憶する、第1管理テーブルを有し、前記第1管理テーブルにおいて、前記駆動先タスクのプライオリティを、前記同期元タスクのプライオリティに書き換えることにより、同期元のタスクに応じたプライオリティを駆動先タスクに継承し、
    前記第1管理テーブルは、前記同期元タスクと前記駆動先タスクとの関連付けに加えて、前記駆動先タスクが複数のコンテキストで同時に並行して動作することができるか否かを示すフラグ情報を記憶可能に構成され、
    前記タスク割り付け機構は、駆動先タスクにプロセッサを割り付ける際に、前記フラグ情報を参照することにより、当該駆動先タスクが単一のコンテキストで構成されるタスクである場合には、当該タスクの稼働状況を取得し、当該タスクが稼動中の場合には、当該タスクを稼動中のプロセッサから他のプロセッサに移動させる制御を可能に構成される、
    マルチプロセッサシステム。
  11. 請求項10において、割り込みコントローラをさらに備え、前記割り込みコントローラは、割り込み要因に対応して前記入力を前記タスクスケジューラ機構に供給する、マルチプロセッサシステム。
  12. 請求項10において、主記憶装置をさらに備え、前記アプリケーションと前記タスクスケジューラ機構の前記プログラムコードは、前記不揮発性メモリから前記主記憶装置に一旦読み出された後に、前記高性能プロセッサと前記低電力プロセッサと一方または両方で協調して実行可能に構成される、マルチプロセッサシステム。
  13. 請求項10において、少なくとも前記高性能プロセッサと前記低電力プロセッサとが同一半導体基板上に形成された、マルチプロセッサシステム。
JP2014008579A 2014-01-21 2014-01-21 タスクスケジューラ機構、オペレーティングシステム及びマルチプロセッサシステム Active JP6246603B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014008579A JP6246603B2 (ja) 2014-01-21 2014-01-21 タスクスケジューラ機構、オペレーティングシステム及びマルチプロセッサシステム
US14/593,941 US9513974B2 (en) 2014-01-21 2015-01-09 Task scheduler mechanism, operating system, and multiprocessor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014008579A JP6246603B2 (ja) 2014-01-21 2014-01-21 タスクスケジューラ機構、オペレーティングシステム及びマルチプロセッサシステム

Publications (2)

Publication Number Publication Date
JP2015138323A JP2015138323A (ja) 2015-07-30
JP6246603B2 true JP6246603B2 (ja) 2017-12-13

Family

ID=53544897

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014008579A Active JP6246603B2 (ja) 2014-01-21 2014-01-21 タスクスケジューラ機構、オペレーティングシステム及びマルチプロセッサシステム

Country Status (2)

Country Link
US (1) US9513974B2 (ja)
JP (1) JP6246603B2 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9785481B2 (en) * 2014-07-24 2017-10-10 Qualcomm Innovation Center, Inc. Power aware task scheduling on multi-processor systems
KR102247742B1 (ko) * 2015-04-21 2021-05-04 삼성전자주식회사 애플리케이션 프로세서와 시스템 온 칩
JP6515771B2 (ja) * 2015-10-07 2019-05-22 富士通コネクテッドテクノロジーズ株式会社 並列処理装置及び並列処理方法
US9977488B1 (en) * 2016-03-10 2018-05-22 Changming Kong Electronic device with smart power management system
CN106406494B (zh) * 2016-08-29 2019-07-12 深圳市金立通信设备有限公司 一种处理器调度的方法及终端
JP6859642B2 (ja) * 2016-09-23 2021-04-14 カシオ計算機株式会社 制御装置、電子時計、処理制御方法、及びプログラム
KR101783148B1 (ko) 2016-10-17 2017-09-28 고려대학교 산학협력단 에너지 효율적인 모바일 웹 브라우징을 위한 태스크 스케줄링 방법 이를 수행하는 모바일 기기
CN106791152B (zh) * 2016-12-30 2019-08-27 Oppo广东移动通信有限公司 一种通信方法及移动终端
US11353868B2 (en) * 2017-04-24 2022-06-07 Intel Corporation Barriers and synchronization for machine learning at autonomous machines
US10884811B2 (en) 2017-06-04 2021-01-05 Apple Inc. Scheduler for AMP architecture with closed loop performance controller using static and dynamic thread grouping
JP6919371B2 (ja) * 2017-07-04 2021-08-18 富士通株式会社 情報処理装置及びリソース割当方法
KR102452205B1 (ko) * 2017-11-20 2022-10-06 삼성전자주식회사 멀티 코어 제어 시스템
WO2019104087A1 (en) * 2017-11-21 2019-05-31 Google Llc Managing processing system efficiency
CN111132282B (zh) 2018-11-01 2021-06-01 华为终端有限公司 一种应用于移动终端的应用处理器唤醒方法及装置
US11232834B2 (en) 2019-10-29 2022-01-25 Qualcomm Incorporated Pose estimation in extended reality systems
US11755100B2 (en) * 2021-03-18 2023-09-12 Dell Products L.P. Power/workload management system
US20230076061A1 (en) * 2021-09-07 2023-03-09 Hewlett Packard Enterprise Development Lp Cascaded priority mapping
CN118519408B (zh) * 2024-07-22 2024-09-20 国网浙江省电力有限公司桐庐县供电公司 一种基于控制器的任务调度方法、系统、设备和存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5515538A (en) * 1992-05-29 1996-05-07 Sun Microsystems, Inc. Apparatus and method for interrupt handling in a multi-threaded operating system kernel
JPH06131201A (ja) 1992-10-15 1994-05-13 Toyota Motor Corp 情報処理装置
JP2000322278A (ja) * 2000-01-01 2000-11-24 Hitachi Ltd プロセス実行制御方法
US7620706B2 (en) * 2004-03-13 2009-11-17 Adaptive Computing Enterprises Inc. System and method for providing advanced reservations in a compute environment
US7152171B2 (en) 2004-04-28 2006-12-19 Microsoft Corporation Task-oriented processing as an auxiliary to primary computing environments
TWI251171B (en) * 2004-09-21 2006-03-11 Univ Tsinghua Task scheduling method with low power consumption and a SOC using the method
JP2006318420A (ja) * 2005-05-16 2006-11-24 Renesas Technology Corp 携帯情報機器用データ処理装置
US20080127192A1 (en) * 2006-08-24 2008-05-29 Capps Louis B Method and System for Using Multiple-Core Integrated Circuits
JP5515810B2 (ja) * 2010-02-05 2014-06-11 日本電気株式会社 負荷制御装置

Also Published As

Publication number Publication date
US9513974B2 (en) 2016-12-06
US20150205644A1 (en) 2015-07-23
JP2015138323A (ja) 2015-07-30

Similar Documents

Publication Publication Date Title
JP6246603B2 (ja) タスクスケジューラ機構、オペレーティングシステム及びマルチプロセッサシステム
JP6646114B2 (ja) 動的仮想マシンサイジング
CN111176828B (zh) 包括多核处理器的片上系统及其任务调度方法
JP6483609B2 (ja) マルチcpuシステム
JP6199477B2 (ja) ゲストオペレーティングシステムおよび仮想プロセッサとともにハイパーバイザを使用するシステムおよび方法
US8291422B2 (en) Energy-aware computing environment scheduler
CN104252390B (zh) 资源调度方法、装置和系统
US20080046621A1 (en) Information Processing Apparatus, Interrupt Process Control Method, and Computer Program
US20130167152A1 (en) Multi-core-based computing apparatus having hierarchical scheduler and hierarchical scheduling method
GB2544609A (en) Granular quality of service for computing resources
WO2006059543A1 (ja) スケジューリング方法、スケジューリング装置およびマルチプロセッサシステム
JP2009140157A (ja) 仮想計算機システム、仮想計算機の制御方法及びプログラム
JP2008257578A (ja) 情報処理装置、スケジューラおよび情報処理置のスケジュール制御方法
WO2015097839A1 (ja) 優先度割込み対応リアルタイムハイパバイザ
JP5458998B2 (ja) 仮想マシンシステムおよび仮想マシン管理方法
JP5345990B2 (ja) 特定のプロセスを短時間で処理する方法およびコンピュータ
JP5355592B2 (ja) ハイブリッド型のコンピューティング環境を管理するためのシステムおよび方法
JP2010044784A (ja) システムにおける要求のスケジューリング
WO2012016472A1 (zh) 多核CPU加载Linux操作系统的方法及系统
JP5820525B2 (ja) 仮想計算機のスケジュールシステム及びその方法
JP4409568B2 (ja) 帯域制御プログラム及びマルチプロセッサシステム
JP2005092780A (ja) リアルタイムプロセッサシステム及び制御方法
KR101865994B1 (ko) 가상 클러스터 관리 시스템 및 이를 제어하기 위한 방법
CN115454640A (zh) 任务处理系统及自适应任务调度的方法
JP5772040B2 (ja) データ転送システム,データ転送スケジューリングプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161026

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20170330

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170821

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170829

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171023

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: 20171107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171115

R150 Certificate of patent or registration of utility model

Ref document number: 6246603

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150