JP2013167945A - 情報処理装置、タスク起床制御方法、及びタスク起動制御プログラム - Google Patents
情報処理装置、タスク起床制御方法、及びタスク起動制御プログラム Download PDFInfo
- Publication number
- JP2013167945A JP2013167945A JP2012029442A JP2012029442A JP2013167945A JP 2013167945 A JP2013167945 A JP 2013167945A JP 2012029442 A JP2012029442 A JP 2012029442A JP 2012029442 A JP2012029442 A JP 2012029442A JP 2013167945 A JP2013167945 A JP 2013167945A
- Authority
- JP
- Japan
- Prior art keywords
- wake
- task
- time
- information processing
- tasks
- 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
【課題】処理効率を向上させること。
【解決手段】優先度が設定された複数のタスクを実行する実行手段と、前記複数のタスクの起床時刻を予想する起床時刻予想手段と、前記複数のタスクの起床制御を行う起床制御手段であって、起床しようとするタスクの起床時刻が、該起床しようとするタスクよりも優先度が高いタスクについて前記起床時刻予想手段が予想した起床時刻を含む起床予想時間帯に該当する場合に、該起床しようとするタスクの起床を、前記優先度が高いタスクの起床よりも後に延期する起床制御手段と、を備える情報処理装置。
【選択図】図1
【解決手段】優先度が設定された複数のタスクを実行する実行手段と、前記複数のタスクの起床時刻を予想する起床時刻予想手段と、前記複数のタスクの起床制御を行う起床制御手段であって、起床しようとするタスクの起床時刻が、該起床しようとするタスクよりも優先度が高いタスクについて前記起床時刻予想手段が予想した起床時刻を含む起床予想時間帯に該当する場合に、該起床しようとするタスクの起床を、前記優先度が高いタスクの起床よりも後に延期する起床制御手段と、を備える情報処理装置。
【選択図】図1
Description
本発明は、複数のタスクを実行する情報処理装置、及びそのタスク起床制御方法、並びにタスク起動制御プログラムに関する。
従来、複数のタスクを実行する情報処理装置が知られている。タスクとは、ある程度の機能的まとまりを有する命令群であり、プロセスと称されることもある。
特許文献1には、複数のタスクを同時に並行して実行するマルチタスクプロセッサであって、プログラムを格納する命令メモリと、命令メモリに格納されたプログラムに記述された命令を読み出してデコードし、タスクとして実行する複数の命令処理部と、複数のタスクの各々に与えられる実行順序を示す優先度にもとづいて、複数の命令処理部の各々のためにタスクを選択し、選択されたタスクを複数の命令処理部に割り当てるスケジューラとを備えるマルチタスクプロセッサについて記載されている。このマルチタスクプロセッサでは、低優先度のタスクを実行しているときに高優先度のタスクが起動(起床)された場合、低優先度のタスクを中断して実行待ちとしている。
しかしながら、上記従来の装置では、タスクの切替(Dispatch)が頻発し、処理効率が低下する場合がある。
本発明は、一側面によれば、処理効率を向上させることが可能な情報処理装置、及びそのタスク起床制御方法、並びにタスク起動制御プログラムを提供することを目的の一つとする。
本発明の第1の態様は、
優先度が設定された複数のタスクを実行する実行手段と、
前記複数のタスクの起床時刻を予想する起床時刻予想手段と、
前記複数のタスクの起床制御を行う起床制御手段であって、起床しようとするタスクの起床時刻が、該起床しようとするタスクよりも優先度が高いタスクについて前記起床時刻予想手段が予想した起床時刻を含む起床予想時間帯に該当する場合に、該起床しようとするタスクの起床を、前記優先度が高いタスクの起床よりも後に延期する起床制御手段と、
を備える情報処理装置である。
優先度が設定された複数のタスクを実行する実行手段と、
前記複数のタスクの起床時刻を予想する起床時刻予想手段と、
前記複数のタスクの起床制御を行う起床制御手段であって、起床しようとするタスクの起床時刻が、該起床しようとするタスクよりも優先度が高いタスクについて前記起床時刻予想手段が予想した起床時刻を含む起床予想時間帯に該当する場合に、該起床しようとするタスクの起床を、前記優先度が高いタスクの起床よりも後に延期する起床制御手段と、
を備える情報処理装置である。
本発明の第1の態様によれば、複数のタスクの起床時刻を予想し、起床しようとするタスクの起床時刻が、起床しようとするタスクよりも優先度が高いタスクについて予想された起床時刻を含む起床予想時間帯に該当する場合に、起床しようとするタスクの起床を、優先度が高いタスクの起床よりも後に延期するため、処理効率を向上させることができる。
本発明の第1の態様において、
前記起床時刻予想手段は、前記複数のタスクの過去の起床時刻の履歴に基づいて、前記複数のタスクの次回の起床時刻を予想する手段であるものとしてもよい。
前記起床時刻予想手段は、前記複数のタスクの過去の起床時刻の履歴に基づいて、前記複数のタスクの次回の起床時刻を予想する手段であるものとしてもよい。
本発明の第1の態様において、
前記起床予想時間帯は、前記起床時刻予想手段が予想した起床時刻の所定時間前から所定時間後までの時間帯であるものとしてもよい。
前記起床予想時間帯は、前記起床時刻予想手段が予想した起床時刻の所定時間前から所定時間後までの時間帯であるものとしてもよい。
本発明の第1の態様において、
前記起床予想時間帯は、前記起床時刻予想手段が起床時刻を予想したタスクの優先度が高いほど長く設定されるものとしてもよい。
前記起床予想時間帯は、前記起床時刻予想手段が起床時刻を予想したタスクの優先度が高いほど長く設定されるものとしてもよい。
本発明の第1の態様において、
タスク毎に起床周期の種類を記憶した記憶手段を備え、
前記起床時刻予想手段は、前記記憶手段に格納された起床周期の種類に応じた手法で前記複数のタスクの次回の起床時刻を予想する手段であるものとしてもよい。
タスク毎に起床周期の種類を記憶した記憶手段を備え、
前記起床時刻予想手段は、前記記憶手段に格納された起床周期の種類に応じた手法で前記複数のタスクの次回の起床時刻を予想する手段であるものとしてもよい。
本発明の第1の態様において、
前記記憶手段に記憶された起床周期の種類は、例えば、一定周期で起床する一定周期、変動する周期で周期的に起床する変動周期、非周期に分類されている。
前記記憶手段に記憶された起床周期の種類は、例えば、一定周期で起床する一定周期、変動する周期で周期的に起床する変動周期、非周期に分類されている。
本発明の第1の態様において、
前記起床制御手段は、前記複数のタスクの起床待ち時間を計測し、該計測した起床待ち時間が規定時間を超えるタスクについては、前記起床時刻予想手段の予想結果に拘わらず起床させる手段であるものとしてもよい。
前記起床制御手段は、前記複数のタスクの起床待ち時間を計測し、該計測した起床待ち時間が規定時間を超えるタスクについては、前記起床時刻予想手段の予想結果に拘わらず起床させる手段であるものとしてもよい。
本発明の第2の態様は、
優先度が設定された複数のタスクを実行する実行手段を有する情報処理装置のタスク起床制御方法であって、
前記情報処理装置が、
前記複数のタスクの過去の起床時刻の履歴に基づいて、前記複数のタスクの次回の起床時刻を予想し、
起床しようとするタスクの起床時刻が、該起床しようとするタスクよりも優先度が高いタスクについて前記予想する処理において予想された起床時刻を含む起床予想時間帯に該当する場合に、該起床しようとするタスクの起床を、前記優先度が高いタスクの起床以降に延期することを特徴とする、
タスク起動制御方法である。
優先度が設定された複数のタスクを実行する実行手段を有する情報処理装置のタスク起床制御方法であって、
前記情報処理装置が、
前記複数のタスクの過去の起床時刻の履歴に基づいて、前記複数のタスクの次回の起床時刻を予想し、
起床しようとするタスクの起床時刻が、該起床しようとするタスクよりも優先度が高いタスクについて前記予想する処理において予想された起床時刻を含む起床予想時間帯に該当する場合に、該起床しようとするタスクの起床を、前記優先度が高いタスクの起床以降に延期することを特徴とする、
タスク起動制御方法である。
本発明の第2の態様によれば、複数のタスクの過去の起床時刻の履歴に基づいて、複数のタスクの次回の起床時刻を予想し、起床しようとするタスクの起床時刻が、起床しようとするタスクよりも優先度が高いタスクについて予想された起床時刻を含む起床予想時間帯に該当する場合に、起床しようとするタスクの起床を、優先度が高いタスクの起床よりも後に延期するため、処理効率を向上させることができる。
本発明の第3の態様は、
優先度が設定された複数のタスクを実行する実行手段を有する情報処理装置のタスク起床制御プログラムであって、
前記情報処理装置に、
前記複数のタスクの過去の起床時刻の履歴に基づいて、前記複数のタスクの次回の起床時刻を予想させ、
起床しようとするタスクの起床時刻が、該起床しようとするタスクよりも優先度が高いタスクについて前記予想する処理において予想された起床時刻を含む起床予想時間帯に該当する場合に、該起床しようとするタスクの起床を、前記優先度が高いタスクの起床以降に延期させることを特徴とする、
タスク起動制御プログラムである。
優先度が設定された複数のタスクを実行する実行手段を有する情報処理装置のタスク起床制御プログラムであって、
前記情報処理装置に、
前記複数のタスクの過去の起床時刻の履歴に基づいて、前記複数のタスクの次回の起床時刻を予想させ、
起床しようとするタスクの起床時刻が、該起床しようとするタスクよりも優先度が高いタスクについて前記予想する処理において予想された起床時刻を含む起床予想時間帯に該当する場合に、該起床しようとするタスクの起床を、前記優先度が高いタスクの起床以降に延期させることを特徴とする、
タスク起動制御プログラムである。
本発明の第3の態様によれば、複数のタスクの過去の起床時刻の履歴に基づいて、複数のタスクの次回の起床時刻を予想し、起床しようとするタスクの起床時刻が、起床しようとするタスクよりも優先度が高いタスクについて予想された起床時刻を含む起床予想時間帯に該当する場合に、起床しようとするタスクの起床を、優先度が高いタスクの起床よりも後に延期するため、処理効率を向上させることができる。
本発明は、一側面によれば、処理効率を向上させることが可能な情報処理装置、及びそのタスク起床制御方法、並びにタスク起動制御プログラムを提供することができる。
以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。
以下、図面を参照し、本発明の一実施例に係る情報処理装置、タスク起床制御方法、及びタスク起動制御プログラムについて説明する。
[構成]
図1は、本発明の一実施例に係る情報処理装置1のシステム構成例である。情報処理装置1は、主要な構成として、プログラムメモリ10と、データメモリ12と、PE(マスタコア)20#1と、PE(IOプロセッサ)20#2と、INTC(割り込みコントローラ)22と、タイマ24と、マイクロCPU30と、を備える。
図1は、本発明の一実施例に係る情報処理装置1のシステム構成例である。情報処理装置1は、主要な構成として、プログラムメモリ10と、データメモリ12と、PE(マスタコア)20#1と、PE(IOプロセッサ)20#2と、INTC(割り込みコントローラ)22と、タイマ24と、マイクロCPU30と、を備える。
プログラムメモリ10は、例えばROM(Read Only Memory)やフラッシュROM、EEPROM(Electrically Erasable and Programmable Read Only Memory)等であり、各PEにより実行される命令がタスク単位で格納されている。プログラムメモリ10は、命令バス10Aを介して各PEに接続されている。
タスクとは、ある程度の機能的まとまりを有する命令群である。タスクは、PE20#1によって実行される。本実施例において実行されるタスクには、例えば、1(最も低い)〜7(最も高い)、の7段階で優先度が設定されており、ある優先度のタスクがPE20#1により実行されているときに、それよりも優先度の高いタスクが起床する場合、PE#2は、優先度が低い方のタスクの実行を停止して優先度の高いタスクを実行するようにPE20#1を制御する。係る制御は、例えばPE20#2に常駐するハンドラによって行われる。
データメモリ12は、例えばRAM(Random Access Memory)であり、各PEの演算結果等が格納される。データメモリ12は、データバス12Aを介して各PEに接続されている。
各PE(Processor Element)は、プログラムカウンタ、命令フェッチユニット、命令バッファ、命令デコーダ、演算器、LSU(Load Store Unit)、内部レジスタ等を備えるマイクロコンピュータである。各PEは、それぞれのプログラムカウンタが示すプログラムメモリ10のアドレスに格納された命令をフェッチしてデコード(解読)し、四則演算等を行う。四則演算の結果は、内部レジスタに格納する他、必要に応じてデータメモリ12に出力して記憶させる。データメモリ12に格納された命令は、各PEによって参照可能となっており、各PEは、情報を共有しつつ独自の処理を行うことができる。
INTC22には、情報処理装置1が処理を行う対象となるセンサ出力値が入力される。本実施例の情報処理装置1は、例えば車両に搭載されたエンジン制御装置として用いられる。この場合、センサ出力値には、30CA(Crank Angle)すなわちクランク角が30度変化する毎に出力されるパルス信号、10CAすなわちクランク角が10度変化する毎に出力されるパルス信号が含まれ、PE20#1は、これに基づいてエンジンの回転数を演算する処理等を行う。INTC22は、このような外部信号が入力されると、割り込み信号をマイクロCPU30に出力する。
タイマ24は、時刻をマイクロCPU30に出力し、マイクロCPU30が定周期タスクを起床させる際のトリガとする。
マイクロCPU(Central Processing Unit)30は、各PEと同様のハードウエア構成を有するマイクロコンピュータであり、その内部機能(機能部)として、メイン管理部31と、起床時刻予想部32と、タスク起床制御部33と、タイムアウト制御部34と、を備える。また、マイクロCPU30は、専用メモリ等に(データメモリ12の特定領域を使用してもよい)、タスク起床情報35を保持している。これらの機能部は、例えばマイクロCPU30の専用プログラムメモリ(又はプログラムメモリ10)に格納されたプログラムをマイクロCPU30が実行することによって機能する。なお、マイクロCPU30の実行するプログラムは、製品の出荷時に予め格納されていてもよいし、ネットワークを介してダウンロードされてもよいし、可搬型メモリから専用プログラムメモリ等にインストールされてもよい。
まず、各機能部の機能について簡単に説明し、その後で図面を用いて詳細に説明する。メイン管理部31は、タスク起床情報35に基づきタスクの起床スケジュールを認識し、タスクの起床スケジュールに応じてタスクの起床を実際に行うようにPE20#2に指示する。また、メイン管理部31は、上記のように入力される割り込み信号や時刻の情報に基づき他の機能部に処理を実行させ、各機能部の処理結果及び決定に基づいてタスクの起床指示を修正する。
起床時刻予想部32は、タスクの過去の起床時刻の履歴に基づいて、タスクの次回の起床時刻を予想する。
タスク起床制御部33は、PE20#2が起床しようとするタスクの起床時刻が、それよりも優先度が高いタスクについて起床時刻予想部32が予想した起床時刻を含む時間帯に該当する場合には、起床しようとするタスクの起床を、上記優先度が高いタスクの起床と同時又はそれよりも後に延期する決定を行う。ここで、起床時刻を含む時間帯とは、例えば起床時刻予想部32が予想した起床時刻の所定時間前から所定時間後までの時間帯であり、この「所定時間」は、例えば優先度が高いほど長く設定される。
タイムアウト制御部34は、タスクの起床待ち時間を計測し、計測した起床待ち時間が規定時間を超えるタスクについては、起床時刻予想部32の予想結果に拘わらず起床させるように制御する。
なお、上記説明した処理の流れに代えて、PE20#2がタスクの起床スケジュールを認識して起床処理を行う主体となってもよい。この場合、PE20#2からマイクロCPU30に起床可否について問い合わせを行う。また、PE20#2とマイクロCPU30は統合され、単一の物理プロセッサであっても構わない。更に、PE20#1、PE20#2、マイクロCPU30が全て統合されても構わない。
図2は、タスク起床情報35として格納されるデータの一例である。タスク起床情報35には、タスク毎に(図中A、B、C、D、E、F、Gと表記した)、優先度、モード、周期種類、周期間隔、時間幅、最大待ち時間、前々々回イベント発生時刻、前々回イベント発生時刻、前回イベント発生時刻、次回イベント発生予想時刻、待ちフラグが格納される。
タスク起床情報35として格納されるデータのうち、優先度、モード、周期種類、周期間隔、時間幅、最大待ち時間からなるデータセット35Aは、情報処理装置1のROM等に予め格納されている値が、マイクロCPU30の専用メモリ又はデータメモリ12にロードされて用いられる固定データである。
一方、タスク起床情報35として格納されるデータのうち、前々々回イベント発生時刻、前々回イベント発生時刻、前回イベント発生時刻、次回イベント発生予想、待ちフラグからなるデータセット35Bは、マイクロCPU30の各機能部によって更新されるデータである。
以下、タスク起床情報35として格納されるデータのそれぞれについて説明する。
・タスクの優先度については前述したため説明を省略する。
・タスクのモードとは、タスク起床制御部33がタスクの起床延期を行うか否かを示すデータであり、図2の例では、最も優先度の高いタスクAのみがモード「0」すなわちタスクの起床延期が行われないタスクに指定され、他のタスクはモード「1」すなわちタスクの起床延期が行われるタスクに指定されている。
・タスクの周期種類は、例えば、タイマ24の出力によって一定間隔で起床される「一定周期」、なめらかに変動する間隔をもって周期的に起床される「変動周期」、起床タイミングが予想できない「非周期」に分類される。変動周期のタスクとしては、例えば前述した30CAや10CAに基づいてエンジンの回転数を演算する処理が該当する。エンジンの回転数は、離散的な変動ではなくなめらかな変動をするため、30CAや10CAが入力される周期もなめらかに変動する間隔をもつからである。
・タスクの周期間隔は、「一定周期」のタスクが起床する間隔であり、実時間[sec]やクロック数等で表現される。
・タスクの時間幅は、前述したタスク起床制御部33の処理における時間帯を規定する「所定時間」に該当する値である。
・タスクの最大待ち時間は、タイムアウト制御部34の処理における「規定時間」に該当する値である。
・前々々回イベント発生時刻、前々回イベント発生時刻、前回イベント発生時刻は、各タスクが起床するためのイベントが発生した時刻であり、例えば起床時刻予想部32やメイン管理部31によって書き込まれる。
・次回イベント発生予想時刻は、起床時刻予想部32による処理結果であり、起床時刻予想部32によって書き込まれる。
・待ちフラグは、タスクが待ち状態であるか否かを示すフラグデータである。
・タスクの優先度については前述したため説明を省略する。
・タスクのモードとは、タスク起床制御部33がタスクの起床延期を行うか否かを示すデータであり、図2の例では、最も優先度の高いタスクAのみがモード「0」すなわちタスクの起床延期が行われないタスクに指定され、他のタスクはモード「1」すなわちタスクの起床延期が行われるタスクに指定されている。
・タスクの周期種類は、例えば、タイマ24の出力によって一定間隔で起床される「一定周期」、なめらかに変動する間隔をもって周期的に起床される「変動周期」、起床タイミングが予想できない「非周期」に分類される。変動周期のタスクとしては、例えば前述した30CAや10CAに基づいてエンジンの回転数を演算する処理が該当する。エンジンの回転数は、離散的な変動ではなくなめらかな変動をするため、30CAや10CAが入力される周期もなめらかに変動する間隔をもつからである。
・タスクの周期間隔は、「一定周期」のタスクが起床する間隔であり、実時間[sec]やクロック数等で表現される。
・タスクの時間幅は、前述したタスク起床制御部33の処理における時間帯を規定する「所定時間」に該当する値である。
・タスクの最大待ち時間は、タイムアウト制御部34の処理における「規定時間」に該当する値である。
・前々々回イベント発生時刻、前々回イベント発生時刻、前回イベント発生時刻は、各タスクが起床するためのイベントが発生した時刻であり、例えば起床時刻予想部32やメイン管理部31によって書き込まれる。
・次回イベント発生予想時刻は、起床時刻予想部32による処理結果であり、起床時刻予想部32によって書き込まれる。
・待ちフラグは、タスクが待ち状態であるか否かを示すフラグデータである。
[タスク起床制御]
以下、タスク起床制御部33及びメイン管理部31によって実行されるタスク起床制御について説明する。図3は、タスク起床制御部33及びメイン管理部31によって実行される処理の流れを示すフローチャートである。本フローチャートは、例えば所定周期で繰り返し実行される。
以下、タスク起床制御部33及びメイン管理部31によって実行されるタスク起床制御について説明する。図3は、タスク起床制御部33及びメイン管理部31によって実行される処理の流れを示すフローチャートである。本フローチャートは、例えば所定周期で繰り返し実行される。
まず、タスク起床制御部33は、タスクの起床イベントが発生するまで待機する(S100)。
タスクの起床イベントが発生すると、タスク起床制御部33は、起床イベントが発生したタスクよりも優先度の高いタスクの次回イベント発生予想時刻及び時間幅を参照し、起床イベントが発生した時刻が、起床イベントが発生したタスクよりも優先度の高いタスクについての{次回イベント発生予想時刻±時間幅}の時間帯に該当するか否かを判定する(S102)。
起床イベントが発生した時刻が、起床イベントが発生したタスクよりも優先度の高いタスクについての{次回イベント発生予想時刻±時間幅}の時間帯に該当しない場合、タスク起床制御部33及びメイン管理部31は、起床イベントが発生したタスク、及び待ちフラグが「1」に設定されているタスクを起床させる起床指示信号をPE20#2に送信する(S104)。この結果、PE20#2のハンドラが、同時に受信した起床指示信号に含まれるタスクのうち優先度がより高いタスクを起床させ、優先度がより高いタスクの終了と共に優先度がより低いタスクを起床させる。
次に、タスク起床制御部33は、起床指示信号を送信したタスクの待ちフラグに「0」を書き込み(S106)、本フローチャートの1ルーチンが終了される。
一方、起床イベントが発生した時刻が、起床イベントが発生したタスクよりも優先度の高いタスクについての{次回イベント発生予想時刻±時間幅}の時間帯に該当する場合、タスク起床制御部33は、起床イベントが発生したタスクの待ちフラグに「1」を書き込み(S108)、本フローチャートの1ルーチンが終了される。
図4は、ある時点におけるタスク起床情報35(図4(A))の一部と、これに基づいてタスクCが起床待ち状態とされる様子(図4(B))を示す図である。図4(B)において時刻「24010」にタスクCの起床イベントが発生すると、タスク起床制御部33は、タスクCよりも優先度の高いタスクA、Bの次回イベント発生予想時刻及び時間幅を参照し、時刻「24010」が次回イベント発生予想時刻±時間幅の時間帯に該当するか否かを判定する。図4の例では、時刻「24010」がタスクBの次回イベント発生予想時刻±時間幅の時間帯に該当するため、タスクCは待ち状態とされる。
タスクCが待ち状態とされると、タスクCの待ちフラグに「1」が書き込まれる。図5は、タスクCの待ちフラグに「1」が書き込まれた様子を示す図である。
図6は、図4(B)に示す状態の後、タスクCが起床される様子を示す図である。図6(A)は、タスクBの起床に伴ってタスクCが起床される様子を示し、図6(B)は、タスクCの最大待ち時間が経過することによってタスクCが起床される様子を示す。
図6(A)に示すように、例えば時刻「24040」においてタスクBの起床イベントが発生すると、タスク起床制御部33及びメイン管理部31は、タスクBとタスクCを起床させる起床指示信号をPE20#2に送信する。PE20#2のハンドラは、同時に受信した起床指示信号に含まれるタスクのうち優先度がより高いタスクBを起床させ、優先度がより高いタスクBの終了と共に優先度がより低いタスクCを起床させる。この結果、タスクCの起床は、タスクBの起床よりも後に延期されることになる。なお、まずタスクBの起床指示信号を送信し、その後にタスクCの起床指示信号を送信してもよいが、同時に送信することによって、送信回数を一回で済ませることができる。
一方、図6(B)に示すように、タスクBが起床しないままタスクCの起床イベント発生時刻からタスクCの最大待ち時間が経過すると、タイムアウト制御部34及びメイン管理部31は、タスクCを起床させる起床指示信号をPE20#2に送信する。
[起床時刻予想処理]
以下、起床時刻予想部32により実行される起床時刻予想処理について説明する。図7は、起床時刻予想部32により実行される処理の流れを示すフローチャートである。本フローチャートは、例えば所定周期で繰り返し実行される。
以下、起床時刻予想部32により実行される起床時刻予想処理について説明する。図7は、起床時刻予想部32により実行される処理の流れを示すフローチャートである。本フローチャートは、例えば所定周期で繰り返し実行される。
まず、起床時刻予想部32は、タスクの起床イベントが発生するまで待機する(S200)。
タスクの起床イベントが発生すると、起床時刻予想部32は、起床イベントが発生したタスクのタスク起床情報35における前々回イベント発生時刻、前回イベント発生時刻、及び今回起床イベントが発生した時刻を、それぞれタスク起床情報35における前々々回イベント発生時刻、前々回イベント発生時刻、前回イベント発生時刻に繰り下げて上書きする(S202)。図8は、図4(A)に示す状態から、S202における上書き処理が行われる様子を示す図である。
次に、起床時刻予想部32は、次回イベント発生予想時刻を更新する(S204)。次回イベント発生予想時刻は、タスクの周期種類が一定周期である場合と、変動周期である場合で異なる手法により決定される。
図9は、タスクの周期種類が一定周期であるタスクCについて、次回イベント発生予想時刻が決定され、更新される様子を示す図である。タスクの周期種類が一定周期であるタスクについての次回イベント発生予想時刻は、例えば次式(1)により決定される。図9に示す例では、次回イベント発生予想時刻は、(16000+20010+24010)/3+(4000)×2=28007となる。次回イベント発生予想時刻、単に(前回イベント発生時刻)+(周期間隔)として決定されてもよい。
(次回イベント発生予想時刻)=(前々々回イベント発生時刻+前々回イベント発生時刻+前回イベント発生時刻)/3+(周期間隔)×2 …(1)
図10は、タスクの周期種類が変動周期であるタスクBについて、次回イベント発生予想時刻が決定され、更新される様子を示す図である。タスクの周期種類が変動周期であるタスクについての次回イベント発生予想時刻は、例えば次式(2)により決定される。図10に示す例では、次回イベント発生予想時刻は、20010+(24040−20010)/2×3=26055となる。
(次回イベント発生予想時刻)=(前々々回イベント発生時刻)+(前回イベント発生時刻−前々々回イベント発生時刻)×(3/2)…(2)
このように、次回イベント発生予想時刻を、タスクの周期種類が一定周期である場合と、変動周期である場合で異なる手法により決定することによって、タスクの周期種類が変動周期であるタスクについても次回イベント発生予想時刻を適切に決定することができる。
[タイムアウト制御]
以下、タイムアウト制御部34により実行されるタイムアウト制御について説明する。図11は、タイムアウト制御部34及びメイン管理部31により実行される処理の流れを示すフローチャートである。本フローチャートは、例えば所定周期で繰り返し実行される。
以下、タイムアウト制御部34により実行されるタイムアウト制御について説明する。図11は、タイムアウト制御部34及びメイン管理部31により実行される処理の流れを示すフローチャートである。本フローチャートは、例えば所定周期で繰り返し実行される。
まず、タイムアウト制御部34は、待ちフラグが「1」に設定されている各タスクについて、タスク起床イベント発生時刻(タスク起床情報35においては「前回イベント発生時刻」から最大待ち時間が経過したか否かを判定する(S300)。タスク起床イベント発生時刻から最大待ち時間が経過したタスクが存在しない場合、本フローチャートの1ルーチンが終了される。
タスク起床イベント発生時刻から最大待ち時間が経過したタスクが存在する場合、タイムアウト制御部34及びメイン管理部31は、タスク起床イベント発生時刻から最大待ち時間が経過したタスクを起床させる起床指示信号をPE20#2に送信する(S302)。この結果、PE20#2のハンドラがタスクを起床させる制御を行い、PE20#1がタスクの実行を開始する。
次に、タイムアウト制御部34は、起床指示信号を送信したタスクの待ちフラグに「0」を書き込み(S304)、本フローチャートの1ルーチンが終了される。図12は、図5に示す状態からタスクCの待ちフラグに「0」が書き込まれた様子を示す図である。図5に示す状態に対し、タイムアウト制御部34は、タスクCの起床イベント発生時刻「24010」から最大待ち時間70が経過した「24080」をタイムアウト時刻に設定し、時刻「24081」になるとタスクCを起床させるための処理を行う。
[参考手法との比較]
上記説明した各機能部の処理によって、情報処理装置1は、処理効率を向上させることができる。
上記説明した各機能部の処理によって、情報処理装置1は、処理効率を向上させることができる。
図13は、参考手法により実行される処理の流れと、本実施例の情報処理装置1による処理の流れを比較したシーケンス図である。図13(A)は、起床時刻予想処理を行わない参考手法による処理の流れを示し、図13(B)は本実施例の情報処理装置1による処理の流れを示している。
図13(A)に示すように、参考手法では、例えば優先度が「低」のタスクの実行中に優先度が「中」のタスクの起床イベントが発生し、短時間のうちに優先度が「高」のタスクの起床イベントが発生した場合、PE20#1のOS(オペレーティングシステム)は、まず優先度が「低」のタスクの実行を停止して優先度が「中」のタスクを起床させ、次に優先度が「中」のタスクの実行を停止して優先度が「高」のタスクを起床させ、優先度が「高」のタスクが終了すると優先度が「中」のタスクを再度起床させ、優先度が「中」のタスクが終了すると優先度が「低」のタスクを再度起床させる。
この結果、「低」→「中」→「高」→「中」→「低」とタスクの切替が四回発生することになり、処理時間の合計は例えば250([sec]又はクロック)となる。参考手法では、タスクの切替(Dispatch)が頻発し、処理効率が低下する場合がある。
これに対し、図13(B)に示すように、本実施例の情報処理装置1では、同様に優先度が「低」のタスクの実行中に優先度が「中」のタスクの起床イベントが発生し、短時間のうちに優先度が「高」のタスクの起床イベントが発生すると予想される場合、優先度が「中」のタスクは即座に起床されずに待ち状態とされるため、PE20#1のOSは、まず優先度が「低」のタスクの実行を停止して優先度が「高」のタスクを起床させ、優先度が「高」のタスクが終了すると優先度が「中」のタスクを再度起床させ、優先度が「中」のタスクが終了すると優先度が「低」のタスクを再度起床させる。
この結果、「低」→「高」→「中」→「低」とタスクの切替は三回となり、処理時間の合計は例えば240([sec]又はクロック)となる。従って、図13(A)に示す参考手法と比較すると、タスクの切替(Dispatch)の頻度を低下させ、処理効率を向上させることができる。
[まとめ]
以上説明した本発明の一実施例に係る情報処理装置、タスク起床制御方法、及びタスク起動制御プログラムによれば、処理効率を向上させることができる。
以上説明した本発明の一実施例に係る情報処理装置、タスク起床制御方法、及びタスク起動制御プログラムによれば、処理効率を向上させることができる。
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
1 情報処理装置
10 プログラムメモリ
10A 命令バス
12 データメモリ
12A データバス
20#1、20#2 PE
22 INTC
24 タイマ
30 マイクロCPU
31 メイン管理部
32 起床時刻予想部
33 タスク起床制御部
34 タイムアウト制御部
35 タスク起床情報
10 プログラムメモリ
10A 命令バス
12 データメモリ
12A データバス
20#1、20#2 PE
22 INTC
24 タイマ
30 マイクロCPU
31 メイン管理部
32 起床時刻予想部
33 タスク起床制御部
34 タイムアウト制御部
35 タスク起床情報
Claims (9)
- 優先度が設定された複数のタスクを実行する実行手段と、
前記複数のタスクの起床時刻を予想する起床時刻予想手段と、
前記複数のタスクの起床制御を行う起床制御手段であって、起床しようとするタスクの起床時刻が、該起床しようとするタスクよりも優先度が高いタスクについて前記起床時刻予想手段が予想した起床時刻を含む起床予想時間帯に該当する場合に、該起床しようとするタスクの起床を、前記優先度が高いタスクの起床よりも後に延期する起床制御手段と、
を備える情報処理装置。 - 請求項1記載の情報処理装置であって、
前記起床時刻予想手段は、前記複数のタスクの過去の起床時刻の履歴に基づいて、前記複数のタスクの次回の起床時刻を予想する手段である、
を備える情報処理装置。 - 請求項1又は2記載の情報処理装置であって、
前記起床予想時間帯は、前記起床時刻予想手段が予想した起床時刻の所定時間前から所定時間後までの時間帯である、
情報処理装置。 - 請求項1ないし3のいずれか1項記載の情報処理装置であって、
前記起床予想時間帯は、前記起床時刻予想手段が起床時刻を予想したタスクの優先度が高いほど長く設定される、
情報処理装置。 - 請求項1ないし4のいずれか1項記載の情報処理装置であって、
タスク毎に起床周期の種類を記憶した記憶手段を備え、
前記起床時刻予想手段は、前記記憶手段に格納された起床周期の種類に応じた手法で前記複数のタスクの次回の起床時刻を予想する手段である、
情報処理装置。 - 請求項5項記載の情報処理装置であって、
前記記憶手段に記憶された起床周期の種類は、一定周期で起床する一定周期、変動する周期で周期的に起床する変動周期、非周期に分類されている、
情報処理装置。 - 請求項6項記載の情報処理装置であって、
前記起床制御手段は、前記複数のタスクの起床待ち時間を計測し、該計測した起床待ち時間が規定時間を超えるタスクについては、前記起床時刻予想手段の予想結果に拘わらず起床させる手段である、
情報処理装置。 - 優先度が設定された複数のタスクを実行する実行手段を有する情報処理装置のタスク起床制御方法であって、
前記情報処理装置が、
前記複数のタスクの過去の起床時刻の履歴に基づいて、前記複数のタスクの次回の起床時刻を予想し、
起床しようとするタスクの起床時刻が、該起床しようとするタスクよりも優先度が高いタスクについて前記予想する処理において予想された起床時刻を含む起床予想時間帯に該当する場合に、該起床しようとするタスクの起床を、前記優先度が高いタスクの起床以降に延期することを特徴とする、
タスク起動制御方法。 - 優先度が設定された複数のタスクを実行する実行手段を有する情報処理装置のタスク起床制御プログラムであって、
前記情報処理装置に、
前記複数のタスクの過去の起床時刻の履歴に基づいて、前記複数のタスクの次回の起床時刻を予想させ、
起床しようとするタスクの起床時刻が、該起床しようとするタスクよりも優先度が高いタスクについて前記予想する処理において予想された起床時刻を含む起床予想時間帯に該当する場合に、該起床しようとするタスクの起床を、前記優先度が高いタスクの起床以降に延期させることを特徴とする、
タスク起動制御プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012029442A JP2013167945A (ja) | 2012-02-14 | 2012-02-14 | 情報処理装置、タスク起床制御方法、及びタスク起動制御プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012029442A JP2013167945A (ja) | 2012-02-14 | 2012-02-14 | 情報処理装置、タスク起床制御方法、及びタスク起動制御プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013167945A true JP2013167945A (ja) | 2013-08-29 |
Family
ID=49178313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012029442A Pending JP2013167945A (ja) | 2012-02-14 | 2012-02-14 | 情報処理装置、タスク起床制御方法、及びタスク起動制御プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013167945A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021106353A1 (ja) * | 2019-11-29 | 2021-06-03 | 日立Astemo株式会社 | 電子制御装置 |
-
2012
- 2012-02-14 JP JP2012029442A patent/JP2013167945A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021106353A1 (ja) * | 2019-11-29 | 2021-06-03 | 日立Astemo株式会社 | 電子制御装置 |
JP7333251B2 (ja) | 2019-11-29 | 2023-08-24 | 日立Astemo株式会社 | 電子制御装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10649935B2 (en) | Deferred inter-processor interrupts | |
US20100037234A1 (en) | Data processing system and method of task scheduling | |
EP2839370B1 (en) | Time slack pipeline balancing for multicore programmable logic controllers (plc) | |
TW201413594A (zh) | 多核心裝置以及其多執行緒排程方法 | |
EP2793133B1 (en) | Multi-core processor | |
US9645850B2 (en) | Task time allocation method allowing deterministic error recovery in real time | |
WO2012001835A1 (ja) | マルチプロセッサシステム | |
US10108449B2 (en) | Work item management among worker threads of a computing device | |
WO2022062580A1 (zh) | 一种信号处理器的控制方法、装置、设备以及存储介质 | |
US20030177163A1 (en) | Microprocessor comprising load monitoring function | |
US11061840B2 (en) | Managing network interface controller-generated interrupts | |
US8782293B1 (en) | Intra-processor operation control | |
WO2012036954A2 (en) | Scheduling amongst multiple processors | |
Nahas et al. | Ways for implementing highly-predictable embedded systems using time-triggered co-operative (TTC) architectures | |
JP2013167945A (ja) | 情報処理装置、タスク起床制御方法、及びタスク起動制御プログラム | |
US20050216779A1 (en) | Device and method for managing a standby state of microprocessor | |
JP2012093832A (ja) | 情報処理装置 | |
JP2011150532A (ja) | 情報処理装置 | |
KR20120003088A (ko) | 결정적 프로그레스 인덱스를 이용한 스레드 프로그레스 트래킹 방법 및 장치 | |
Wada et al. | Fast interrupt handling scheme by using interrupt wake-up mechanism | |
US20140298074A1 (en) | Method of calculating cpu utilization | |
JP2016184315A (ja) | 電子制御装置 | |
JP2013061783A (ja) | マルチコア・プロセッサ | |
US20120204184A1 (en) | Simulation apparatus, method, and computer-readable recording medium | |
JP2010102567A (ja) | 周期駆動タスク実行装置、周期駆動タスク実行方法及びプログラム |