JP4965638B2 - タスクの切り換えを制御するシステムおよび方法 - Google Patents

タスクの切り換えを制御するシステムおよび方法 Download PDF

Info

Publication number
JP4965638B2
JP4965638B2 JP2009293912A JP2009293912A JP4965638B2 JP 4965638 B2 JP4965638 B2 JP 4965638B2 JP 2009293912 A JP2009293912 A JP 2009293912A JP 2009293912 A JP2009293912 A JP 2009293912A JP 4965638 B2 JP4965638 B2 JP 4965638B2
Authority
JP
Japan
Prior art keywords
instruction
task
cpu
executed
processing
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.)
Expired - Fee Related
Application number
JP2009293912A
Other languages
English (en)
Other versions
JP2011134162A (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2009293912A priority Critical patent/JP4965638B2/ja
Priority to US12/954,949 priority patent/US8601488B2/en
Publication of JP2011134162A publication Critical patent/JP2011134162A/ja
Application granted granted Critical
Publication of JP4965638B2 publication Critical patent/JP4965638B2/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/461Saving or restoring of program or task context
    • 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
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、マルチタスクシステムにおけるタスク制御に関し、特に各タスクの処理時間の制御に関する。
コンピュータによる処理の実行環境として、複数の処理を並列に実行するマルチタスク環境がある。マルチタスク環境では、所定の条件に基づいて処理が実行されるタスクを切り替えるタスク切り替え処理(タスクスイッチ)が、例えばOS(Operating System)によって行われ、これにより各タスクの処理が順次実行される。一般に、タスク切り替え処理は、所定のタスクを実行中にタスクを切り替えるための一連の操作を行う割り込み処理を実行することにより行われる(例えば、特許文献1参照)。
マルチタスク環境において、あるタスクの処理がリアルタイム処理である場合、その処理は予め定められた時間内に終了することが保証される必要がある。ここで、CPU命令の処理時間は、通常、論理演算では数ns(ナノ秒:10億分の1秒)程度であるのに対し、I/O命令では数μs(マイクロ秒:100万分の1秒)以上かかり、桁違いに大きい。また、I/O命令は、タスクの切り替えによって処理の実行を一旦キャンセルした後に再実行すると、再実行までの間にアクセス先のデバイス等の状態が変わってしまい、問題が生じる可能性がある。したがって、あるタスクの処理で開始されたI/O命令を中断することはできない。
そのため、リアルタイム処理を伴うマルチタスク制御では、タスクに割り当てられた時間(以下、切り替え時間)が切れる直前に長い処理時間を要するI/O命令が実行される場合にも、リアルタイム性を保証するために各タスクの実行に対して割り当てられる最長の処理時間(以下、最長処理時間)を越えないように、切り替え時間および最長処理時間を設定する必要がある。
特開2008−171293号公報
リアルタイム処理を伴うマルチタスク制御では、切り替え時間が切れる直前にI/O命令が実行されても最長処理時間を超えないように切り替え時間および最長処理時間が設定される。しかし、各タスクの切り替え時間を短くすると、最長処理時間のうち、余裕をもたせるための時間(以下、余裕時間)の割合が大きくなる。そのため、タスク切り替えの回数が多くなり、システム全体の処理効率の低下を招く。また、十分な余裕時間を得るために必要な最長処理時間を予想することが困難になり、最長処理時間および切り替え時間を設定することができなくなる可能性もある。
本発明は、上記の課題に鑑み、マルチタスク制御においてリアルタイム性を保証し、かつシステムの処理効率の向上を図ることを目的とする。
上記の目的を達成するため、本発明は、次のようなシステムとして実現される。このシステムは、プロセッサが複数のタスクを切り替えながら処理を実行するシステムにおいて、タスクを切り替えながら各タスクにおける命令を実行する実行手段と、実行対象の命令が予め定められた特定の命令か否かを識別する識別手段と、実行対象の命令が前記特定の命令である場合に、所定の条件に基づき、実行手段に特定の命令を実行させるか、または、特定の命令を実行せずにタスク切り替え処理を行わせるかを判断する判断手段と、を備える。
ここで、より詳細には、判断手段は、実行中のタスクに割り当てられた処理時間に対する残り時間と予め設定された閾値とを比較し、残り時間が閾値よりも短い場合に、実行手段に特定の命令を実行せずにタスク切り替え処理を行わせるように判断する。
さらに好ましくは、識別手段による命令の識別および判断手段による命令を実行するか否かの判断は、各命令に対する命令パイプラインの工程において行われる
また、好ましくは、実行手段は、判断手段の判断に基づくタスク切り替え処理を行うための割り込みハンドラを備え、判断手段は、割り込みハンドラを呼び出して、実行手段にタスク切り替え処理を行わせる。
また、本発明のシステムを、汎用CPUと、特定の命令を実行するための専用プロセッサとを別個に備えて構成し、識別手段、判断手段および実行手段の機能を専用プロセッサにより実現しても良い。
または、本発明のシステムにおいて、識別手段は、実行手段の機能を実現するプロセッサによるメモリからの命令の読み込みをバス・モニタ回路にて監視し、この命令の内容、またはプロセッサがアクセスしたメモリアドレス、もしくはその両方に基づき、この命令が特定の命令か否かを識別する構成としても良い。
また、本発明は、次のようなシステムとしても実現される。このシステムは、プロセッサが複数のタスクを切り替えながら処理を実行するシステムにおいて、汎用CPUと、予め定められた特定の命令を実行するための専用プロセッサとを備え、専用プロセッサは、実行対象の命令が予め定められた特定の命令か否かを識別する識別部と、実行対象の命令が特定の命令である場合に、実行中のタスクに割り当てられた処理時間に対する残り時間と予め設定された閾値とを比較し、残り時間が閾値よりも短い場合に、特定の命令を実行するか、または、特定の命令を実行せずにタスク切り替え処理を行うかを判断する判断部と、判断部によりタスク切り替え処理を行うと判断された場合に、割り込みを発生させてタスク切り替え処理を行うタスク切り替え処理部と、を備える。
さらにまた、本発明は、次のような方法としても実現される。この方法は、プロセッサが複数のタスクを切り替えながら処理を実行する方法において、実行対象の命令が予め定められた特定の命令か否かを識別するステップと、実行対象の命令が特定の命令である場合に、所定の条件に基づき、この特定の命令を実行するか、または、この特定の命令を実行せずにタスク切り替え処理を行うかを判断するステップと、タイマー割り込みによりタスク切り替え処理を行いながら各タスクにおける命令を実行し、判断するステップでタスク切り替えを行うと判断した場合は、その判断に基づく割り込みによりタスク切り替え処理を行うステップと、を含む。
本発明によれば、タスクの残り時間が短い場合には命令を実行せずにタスク切り替え処理を行うため、マルチタスク制御においてリアルタイム性を保証し、かつシステムの処理効率の向上を図ることができる。
本実施形態の基本構成を示す図である。 第1の実施例によるタスク切り替えシステムが適用されるコンピュータのハードウェア構成例を示す図である。 第1の実施例によるタスク制御の方法を示すフローチャートである。 第1の実施例によるタスク切り替えの様子を示すタイムチャートである。 本実施形態において、メモリからの読み込みとI/Oデバイスからの読み込みを行うための命令シーケンスの例を示す図である。 命令パイプラインの構成を模式的に表す図である。 第2の実施例によるタスク切り替えシステムの構成例を示す図である。 第2の実施例における割り込み用プロセッサの詳細構成を示す模式図である。 第2の実施例によるタスク制御の方法を示すフローチャートである。 第2の実施例によるタスク切り替えの様子を示すタイムチャートである。 第3の実施例によるタスク切り替えシステムの構成例を示す図である。 本実施形態におけるクリティカル・セクションを含むタスクの処理の様子を示すタイムチャートである。
以下、添付図面を参照して、本発明の実施形態について詳細に説明する。
<基本構成>
図1は、本実施形態の基本構成を示す図である。
図1に示すように、本実施形態のタスク切り替えシステムは、CPUが実行する命令が予め定められた特定の命令か否かを識別するための識別手段10と、識別手段10により識別された特定の命令について、即時実行するか、保留するかを判断する判断手段20とを備える。また、本実施形態のシステムは、判断手段20の判断結果にしたがって、マルチタスク制御により命令を実行する実行手段30を備える。
識別手段10は、あるタスクでCPUが命令を実行する際に、その命令が予め定められた特定の命令か否かを識別する。命令を識別するための具体的な手段として、本実施形態では、CPUにより実行される命令群(命令セット)に識別対象となる命令を導入する手段と、特別の追加ハードウェアによりCPUが実行しようとする命令を解析する手段とを提案する。これらの具体的な手段の詳細については後述する。
判断手段20は、CPUが実行しようとする命令が上記の特定の命令である場合に、その命令を即時実行するか、保留するかを判断する。具体的には、その特定の命令を実行するのに要する処理時間に基づいて予め閾値を設定しておき、判断手段20は、CPUが命令を実行しようとする際に、そのタスクにおける最長処理時間までの残り時間が閾値を下回っているか否かを調べる。そして、残り時間が閾値を下回ると判断手段20が判断した場合には、実行手段30は、その命令の実行を保留する。
実行手段30は、CPUを構成要素に含む。そして、マルチタスク制御によるタスク切り替え処理を行いながら、命令を実行する。本実施形態では、実行手段30は、識別手段10により特定の命令以外の命令と判断された命令と、識別手段10により特定の命令と判断された命令のうち判断手段20により即時実行すると判断された命令とを直ちに実行する。また、実行手段30は、識別手段10により特定の命令と判断された命令のうち判断手段20により保留すると判断された命令は実行せずにタスク切り替え処理を行う。そして、次にそのタスクの実行順が回ってきたときに保留した命令を実行する。
以上のような構成とすることにより、本実施形態は、CPUが特定の命令を実行しようとする際に、その命令の実行に要する処理時間よりも現在のタスクに割り当てられた最長処理時間の残り時間が短い場合には、その命令の実行を保留する。これにより、あるタスクにおける処理に要する時間が最長処理時間を超えてしまうことを回避し、タスク切り替えのタイミングを正確に制御することが可能となる。
次に、本実施形態による具体的なシステムの実施例について説明する。以下では、識別手段10として、識別対象となる命令を導入する手段を適用した2つの実施例と、追加ハードウェアにより命令を解析する手段を適用した1つの実施例について説明する。
<第1の実施例>
第1の実施例によるシステムでは、コンピュータのCPU自体の機能として識別手段10および判断手段20を実現する。そして、識別手段10の実現方法として、CPUにより実行される命令群に特定の命令を導入する。導入される特定の命令は、判断手段20の判断結果に応じて実行が保留される場合がある命令であり、遅延実行可能命令(postponable instruction:以下、P命令と記す)と呼ぶ。第1の実施例において、CPUは、命令を実行する際に、実行しようとする命令がP命令か否かを識別する。
P命令は、CPUが実行可能な命令セットに含まれるCPU命令として、システムの仕様や動作環境、用途等に応じて適宜設定される。特に、load/store命令や、並列処理されている一連の命令の同期を取るためのsync命令等、処理時間が不確定で長時間となる可能性があるCPU命令に関しては、その命令を実行することによってタスクに割り当てられた最長処理時間を超えてしまうことを回避する観点から、P命令を設定することが望ましい。
<第1の実施例の構成例>
図2は、第1の実施例によるタスク切り替えシステムが適用されるコンピュータのハードウェア構成例を示す図である。
図2に示すコンピュータ100は、演算手段であるCPU(Central Processing Unit)100aと、主記憶手段であるメモリ100cを備える。また、外部デバイスとして、磁気ディスク装置(HDD:Hard Disk Drive)100g、ネットワーク・インタフェース・カード100f、ビデオ・カード100dおよび表示装置100j、音声機構100h、キーボードやマウス等の入力デバイス100i等を備える。
図2に示す構成例では、メモリ100cおよびビデオ・カード100dは、システム・コントローラ100bを介してCPU100aに接続されている。また、ネットワーク・インタフェース・カード100f、磁気ディスク装置100g、音声機構100hおよび入力デバイス100iは、I/Oコントローラ100eを介してシステム・コントローラ100bと接続されている。各構成要素は、システム・バスや入出力バス等の各種のバスによって接続される。また、特に図示していないが、各外部デバイスとCPU100aとの間には、割り込みコントローラが設けられている。なお、図2は、第1の実施例が適用されるのに好適なコンピュータのハードウェア構成を例示するに過ぎない。本実施例はマルチタスク環境が実現された情報処理システムに広く適用できるものであり、図示の構成においてのみ本実施例が実現されるのではない。
図2において、磁気ディスク装置100gにはOSやアプリケーション・ソフトのプログラムが格納されている。そして、これらのプログラムがメモリ100cに読み込まれてCPU100aに実行されることにより、図1に示した実行手段30を含む各種の機能が実現される。また、第1の実施例では、CPU100aが実行可能な命令セットにP命令が含まれている。
さらに第1の実施例におけるCPU100aは、DECレジスタ(Decrementer Register)101aと、THレジスタ(Threshold Register)101bとを備える。
DECレジスタ101aは、タスク切り替え時に、OSによりそのタスクの最長処理時間に相当する値(タイムアウト値)がセットされ、CPUクロックごとに1ずつカウントダウンされる。したがって、DECレジスタ101aの値によりタスクの残り時間が示される。
THレジスタ101bは、判断手段20がP命令を即時実行するか保留するかを判断するための基準となる閾値がセットされる。すなわち、判断手段20は、DECレジスタ101aの値(残り時間)がTHレジスタ101bの値(閾値)よりも大きければ、P命令(CPU命令)を即時実行すると判断する。反対に、DECレジスタ101aの値がTHレジスタ101bの値よりも小さければ、P命令を保留すると判断する。
ここで、閾値を0とし、タスクの残り時間が0である場合にP命令を保留する制御を行うならば、THレジスタ101bは設ける必要はない。しかし、THレジスタ101bを設けることにより、P命令の種類に応じて異なる閾値を設定することが可能となる。例えば、通常、store命令はload命令より早く完了する可能性が高い。そこで、store命令用の閾値として小さい値を設定し、load命令用の閾値としてstore命令用の閾値よりも大きい値を設定することができる。なお、複数の閾値を設定する場合は、THレジスタ101bも複数用意することとなる。
<第1の実施例によるタスク制御>
図3は、第1の実施例によるタスク制御の方法を示すフローチャートである。
図3を参照すると、CPU100aは、実行しようとするCPU命令に着目すると(ステップ301)、まず識別手段10としての機能により、そのCPU命令がP命令か否かを判断する(ステップ302)。P命令でなければ、CPU100aは、実行手段30としての機能により、直ちにそのCPU命令を実行する(ステップ305)。そして、ステップ301に戻り、次の実行対象のCPU命令に着目する。
実行しようとするCPU命令がP命令であった場合、次にCPU100aは、判断手段20としての機能により、DECレジスタ101aの値(以下、DEC値)とTHレジスタ101bの値(以下、TH値)とを比較し、CPU命令(P命令)を即時実行するか否かを判断する(ステップ303)。図3の例では、DEC値がTH値以上であれば、CPU100aは、実行手段30としての機能により、直ちにそのCPU命令を実行する(ステップ305)。そして、ステップ301に戻り、次のCPU命令に着目する。
実行しようとするCPU命令がP命令であり、かつDEC値がTH値よりも小さい場合、CPU100aは、判断手段20としての機能により、割り込み(P命令例外と呼ぶ)を発生させる(ステップ304)。これにより、一般の割り込み処理(例外処理)と同様に、OSのP命令例外用の割り込みハンドラが呼び出され、コンテキスト情報が保存された後、実行対象のタスクが切り替わる。割り込みハンドラによって今回の実行が終了したタスクが次に実行される際には、このCPU命令(P命令)から処理が再開される。
図4は、第1の実施例によるタスク切り替えの様子を示すタイムチャートである。
図4において、1行目の時間軸はOSによる処理が行われる時間を示し、2行目から4行目の時間軸は、3つのタスク(タスクA〜C)の処理が順番に行われる様子を示す。
図4を参照すると、通常のタスク切り替え処理は、OSがタイマー割り込み等を用いて一定時間ごとに行う。例えば、タスクAからタスクBへ切り替わる場合、まずタスクAの処理(例えば処理A1)の実行中にタイマー割り込みが発生し、OSが割り込み処理を行った後にタスクBの処理(処理B1)が開始される。上述したように、OSは、タスク切り替え処理を行った際に、CPU100aのDECレジスタ101aにタイムアウト値を設定する。通常は、各タスクにおける処理時間がこのタイムアウト値に達した場合にタイマー割り込みが発生し、タスク切り替え処理が行われる。
ここで、図4に示す各処理のうち、タスクBの処理B2において、DEC値<TH値となる時間に、P命令が実行対象になったものとする。すると、図3を参照して説明した動作を経てP命令例外が発生し、OSのP命令例外用の割り込みハンドラが呼び出される。すなわち、処理B2は、タスクBの最長処理時間に達してタイマー割り込みにより終了する前に、P命令例外によって終了する。そして、OSのタスク切り替え処理が行われた後、タスクCの処理C2が開始される。
以上のように、DEC値<TH値となるタイミングでP命令が実行対象になった場合に、そのP命令の実行を保留してタスクを切り替えることにより、P命令を実行中にタスクに割り当てられた最長処理時間に達してしまうことを回避することができる。そのため、タスク切り替えのタイミングを正確に制御し、各タスクの処理のリアルタイム性を保証することができる。
<P命令の導入方法>
P命令の導入方法には、いくつかの方法が考えられる。ここでは、I/O命令をP命令に設定する場合を例として、CPUが扱うアドレス空間がI/O空間とメモリ空間とで区別されない場合と、区別される場合について、導入方法の一例を説明する。
CPUには、様々な仕様があり、アドレスの割り当て方法として、I/O空間とメモリ空間に対するアドレスの割り当てに着目した場合、これらを区別せずにアドレスを割り当てる方法と、I/O用のアドレス空間とメモリ用のアドレス空間とを別個に用意する方法とがある。前者の場合、例えばロード(load)命令のアクセス先がメモリかI/Oデバイスかは、アドレス値のみによって区別され、命令自体によって区別することができない。そこで、この場合のP命令の導入方法として、CPUが実行可能な命令セットにP命令としての命令を追加することが考えられる。
図5は、メモリからの読み込みとI/Oデバイスからの読み込みを行うための命令シーケンスの例を示す図である。
図5に示す例では、読み込み(load)命令として、通常の読み込み命令(lwz)と、P命令として通常の命令とは別に設定された読み込み命令(lwzd)の2種類が存在する。また、図5に示す命令シーケンスにおいて、1行目および2行目は、DDRメモリアドレス「0x00000100」をレジスタr3にセットすることを指示する。3行目は、レジスタr3の値+オフセット0のデータを読み込んでレジスタr4にセットすることを指示する。4行目および5行目は、I/Oデバイスのアドレス「0xF0000400」をレジスタr3にセットすることを指示する。6行目は、レジスタr3の値+オフセット0のデータを読み込んでレジスタr5にセットすることを指示する。
ここで、3行目と6行目の命令に着目すると、3行目では高速なDDRメモリからの読み込みであり、6行目は処理に時間がかかる可能性のあるI/Oデバイスからの読み込みである。そのため、3行目には通常の読み込み命令(lwz)が用いられており、6行目にはP命令である読み込み命令(lwzd)が用いられている。識別手段10としてのCPU100aは、この命令の種別により実行対象の命令がP命令か否かを判断する。
以上、読み込み命令に対してP命令を設定した例を説明したが、読み込み命令以外の種々のCPU命令に対してもP命令を設定して良い。また、実際のプログラムにおいて、どの処理に対してP命令を使用するか(通常の命令とP命令の使い分け)は、個々のプログラムの個別的な条件に応じて適宜決定し得る。例えば、図5の3行目では高速なDDRメモリからの読み込みであるために通常の読み込み命令(lwz)を用いたが、安全を期すためにP命令(lwzd)を用いても良い。また、図5の6行目の処理が必ずタスクの最長処理時間に近いタイミングでは実行されないことが保証されるのであれば、通常の読み込み命令(lwz)を用いても良い。
次に、I/O用のアドレス空間とメモリ用のアドレス空間とが別個に用意されている場合について説明する。
この場合、例えば読み込み(load)命令では、アクセス先のアドレス空間が異なるので、識別手段10としてのCPU100aは、実行対象の命令がI/O命令か否かを命令自体によって判断することができる。したがって、例えばI/O命令を一括してP命令に設定することが可能である。CPU100aは、識別手段10の機能により実行対象のCPU命令がI/O命令か否かを判断し、I/O命令であればすなわちP命令であるので、判断手段20の機能によりDEC値とTH値の比較を行う。なお、この例においては、I/O命令のようにP命令に設定された命令は全てP命令として固定的に扱われるので、図5を参照して説明した場合のように、ある処理を行うためにP命令を用いるか否かを、プログラムごとに個別的に決定することはできない。
<第1の実施例の実装例>
第1の実施例において、P命令の識別およびP命令を即時実行するか否かの判断は、CPU命令の実行(例えばload命令の実行そのもの)に先立って行われるのであって、CPU命令の実行そのものには影響を与えない。また、P命令を実行するためには、CPUが実行可能な命令セットにP命令が含まれており、かつCPUがP命令を実行する際に識別手段10および判断手段20として動作すれば良い。したがって、第1の実施例の実装方法は、システムの仕様等に応じて適宜定め得る。以下に、実装例の一つとして、命令パイプラインを用いた実装について説明する。
図6は、命令パイプラインの構成を模式的に表す図であり、図6(a)は通常の命令パイプラインを示し、図6(b)は第1の実施例を実装した命令パイプラインを示す。
図6(a)に示す命令パイプラインは、「命令フェッチ」、「デコード」、「実行」、「ライトバック」の4段階の工程で構成されている。これに対し、第1の実施例を実装する図6(b)に示す命令パイプラインは、「命令フェッチ」、「デコード」、「遅延判定」、「実行」、「ライトバック」の5段階の工程で構成されている。
図6(b)に示す例では、「デコード」において、識別手段10の機能である、P命令の識別が行われる。そして、「実行」の前に挿入された「遅延判定」において、判断手段20の機能である、DEC値とTH値に基づくP命令を即時実行するか否かの判断が行われる。DEC値がTH値よりも小さい場合は、そのP命令の実行は保留されるので、CPUは、パイプラインのデータを全て破棄し、割り込みベクタに命令ポインタを設定して命令をフェッチし直す。
このように、命令パイプラインを用いて実装すると、識別手段10および判断手段20の機能による動作は、並列に実行される各工程の中で実行されるため、大きなオーバーヘッドは生じない。なお、図6に示した命令パイプラインは、基本的なパイプラインの構成を模式的に表したものであり、実際には、さらに多くの工程が並列に実行される。したがって、第1の実施例を実装することによる相対的なオーバーヘッドの度合いはさらに小さくなる。
<第2の実施例>
第2の実施例によるシステムでは、CPUとは別に設けられる専用プロセッサのハードウェア制御により、識別手段10および判断手段20の機能と、実行手段30におけるタスク切り替え処理を行う機能とを実現する。識別手段10の実現方法としては、第1の実施例と同様に、P命令を導入する。
<第2の実施例の構成例>
図7は、第2の実施例によるタスク切り替えシステムの構成例を示す図である。
図7に示すシステムは、汎用CPUであるCPU100aと、本実施形態を実現するための専用プロセッサである割り込み用プロセッサ110とを備える。CPU命令は、その種類に応じてCPU100aまたは割り込み用プロセッサ110に読み込まれ、実行される。また、割り込み用プロセッサ110に読み込まれたCPU命令がP命令である場合は、即時実行するか否かの判断が行われる。図7に示すように、CPU100aおよび割り込み用プロセッサ110は、ローカルバス102を介してメモリ100c、I/Oデバイス103と接続されている。なお、このシステムは、例えば図2に示したコンピュータ100に、割り込み用プロセッサ110を追加することにより実現される。
図7に示すシステムにおいて、割り込み用プロセッサ110は、割り込み検知部110aと、割り込み処理選択部110bと、割り込み処理実行ユニット110cと、内部メモリ110dとを備える。そして、割り込み処理実行ユニット110cは、識別部111と、判断部112と、タスク切り替え処理部113とを備える。識別部111は、実行対象の命令がP命令か否かを識別する。判断部112は、実行対象の命令がP命令である場合に、そのP命令を即時実行するか、または実行せずにタスク切り替え処理を行うかを判断する。タスク切り替え処理部113は、タスク切り替え処理を実行する。
また、第2の実施例では、図7に示すように、割り込み用プロセッサ110の割り込み処理実行ユニット110cが、DECレジスタ101aとTHレジスタ101bとを備える。タスク切り替え時に行われるDECレジスタ101aのタイムアウト値の設定は、割り込み処理実行ユニット110cが行う。
ここで、識別部111は、図1に示した識別手段10として機能し、判断部112は、図1に示した判断手段20として機能する。また、タスク切り替え処理部113は、図1に示した実行手段30におけるタスク切り替え処理を実行する機能を担う。さらに、割り込み用プロセッサ110自身は、図1に示した実行手段30として、割り込み用プロセッサ110において実行されるべきCPU命令(リアルタイム性を必要とする処理等)を実行する。識別部111、判断部112およびタスク切り替え処理部113は、論理回路にて構成される。また、図7に示すシステムにおいて、CPU100aは、割り込み用プロセッサ110において実行されないCPU命令(リアルタイム性を必要としない処理等)を実行する。
割り込み検知部110aは、I/Oデバイス103からの割り込み要求を検知する。割り込み検知部110aは、割り込み要求を直接CPU100aへ通知するのではなく、割り込み処理選択部110bへ通知する。割り込み処理選択部110bは、割り込み処理をCPU100aで実行するか、割り込み処理実行ユニット110cで実行するかを選択する。
割り込み処理プログラムは、CPU100aからローカルバス102を介して割り込み用プロセッサ110内の内部メモリ110dにダウンロードしておく。そして、割り込み要求を受け付けた割り込み処理実行ユニット110cは、内部メモリ110dから対応する割り込み処理プログラムを呼び出して割り込み処理を実行し、割り込み処理の完了をCPU100aに通知する。
図8は、割り込み用プロセッサ110の詳細構成を示す模式図である。
図8において、各I/Oデバイス103からの割り込み要求のうち、最大n個(nは自然数)の割り込み要求が割り込み処理実行ユニット110cへ通知される。ここでnは固定値であり、割り込み処理実行ユニット110cをSoC(System on Chip)に組み込む時点でハードウェア的に決定される。内部メモリ110dにはn個の割り込み処理ルーチンがCPU100aからローカルバス102を介して事前にダウンロードされている。また、図8において、制御レジスタ110fは、割り込み処理ルーチンPiの数に対応し、例えば32ビットレジスタとして構成されている。
割り込み処理実行ユニット110cは、内部メモリ110dに記憶されている割り込み処理ルーチンP0、P1、・・・Pn−1を順次切り替えながら実行する。割り込み処理ルーチンPi(iは0〜n−1の整数)が実行されるのは、割り込み処理ルーチンPiが有効であり、割り込み要求がアクティブである場合のみである。そして、必要な場合には最後にCPU100aに対して割り込み要求を通知する。
割り込み処理の実行中に他の処理が割り込むことは無いが、一定時間内に割り込み処理ルーチンが終了しない場合には、割り込み処理実行ユニット110cは強制的に次の割り込み処理ルーチンPi+1に制御を渡す。割り込み処理ルーチンを切り替える場合のコンテキスト情報の保存は、割り込み処理実行ユニット110cによりハードウェア的に実行される。
<第2の実施例によるタスク制御>
図9は、第2の実施例によるタスク制御の方法を示すフローチャートである。
図9を参照すると、識別部111は、実行しようとするCPU命令に着目すると(ステップ901)、まず識別手段10としての機能により、そのCPU命令がP命令か否かを判断する(ステップ902)。P命令でなければ、タスク切り替え処理部113はタスク切り替え処理を行わず、実行手段30であるCPU100aは、直ちにそのCPU命令を実行する(ステップ905)。そして、ステップ901に戻り、次の実行対象のCPU命令に着目する。
実行しようとするCPU命令がP命令であった場合、次に、判断部112が、DEC値とTH値とを比較し、CPU命令(P命令)を即時実行するか否かを判断する(ステップ903)。図9の例では、DEC値がTH値以上であれば、判断部112はCPU命令(P命令)を即時実行すると判断し、実行手段30であるCPU100aは、直ちにそのCPU命令を実行する(ステップ905)。そして、ステップ901に戻り、次のCPU命令に着目する。
実行しようとするCPU命令がP命令であり、かつDEC値がTH値よりも小さい場合、判断部112は、そのCPU命令(P命令)を即時実行せずタスク切り替え処理を行うと判断する。そして、タスク切り替え処理部113は、割り込み(P命令例外)を発生させてタスク切り替え処理を実行する(ステップ904)。これにより、CPU100aが実行するタスクが切り替わる。
ところで、マルチタスク環境では、実行しようとするCPU命令がP命令か否かに関わらず、またDEC値の如何に関わらず、タイマー割り込みを用いてタスク切り替え処理が行われる。第2の実施例においては、図7および図8を参照して説明したように、このタイマー割り込みによる通常のタスク切り替え処理をタスク切り替え処理部113が行う。
図10は、第2の実施例によるタスク切り替えの様子を示すタイムチャートである。
第2の実施例では、上記のように割り込み用プロセッサ110のタスク切り替え処理部113が強制的にタスク切り替え処理を行う。したがって、図10において、OSによる処理が行われる時間を示す時間軸は記載されていない。1行目から3行目の時間軸は、3つのタスク(タスクA〜C)の処理が順番に行われる様子を示す。
図10を参照すると、通常のタスク切り替え処理は、タイマー割り込みにより一定時間ごとに行われる。例えば、タスクAからタスクBへ切り替わる場合、まずタスクAの処理(例えば処理A1)の実行中にタイマー割り込みが発生し、強制的にタスクBの処理(処理B1)に切り替わる。上述したように、タスク切り替え処理を行った際には、DECレジスタ101aにタイムアウト値が設定される。通常は、各タスクにおける処理時間がこのタイムアウト値に達した場合に、タスク切り替え処理が行われる。
ここで、図10に示す各処理のうち、タスクBの処理B2において、DEC値<TH値となる時間に、P命令が実行対象になったものとする。すると、図9を参照して説明した動作を経て、タスク切り替え処理が行われる。すなわち、処理B2は、タスクBの最長処理時間に達してタイマー割り込みにより終了する前に、強制的に終了し、タスクCの処理C2が開始される。
以上のように、DEC値<TH値となるタイミングでP命令が実行対象になった場合に、そのP命令の実行を保留してタスクを強制的に切り替えることにより、P命令を実行中にタスクに割り当てられた最長処理時間に達してしまうことを回避することができる。そのため、タスク切り替えのタイミングを正確に制御し、各タスクの処理のリアルタイム性を保証することができる。
また、第2の実施例における割り込み用プロセッサ110は、処理のリアルタイム性を高めるためのものであり、通常のCPU(例えばCPU100a)で行われるタスク切り替えの時間と比較して桁違いに短い時間での切り替えを前提としている。そのようなシステムの場合、本実施形態によるタスク制御は特に有効である。
以上説明した第2の実施例において、THレジスタ101bの有無およびTH値の設定については、第1の実施例と同様である。また、P命令の導入方法も第1の実施例で説明した通りである。第2の実施例の実装に関しても、命令パイプラインを用いた実装を行うことができることを含め、第1の実施例と同様である。
<第3の実施例>
第3の実施例によるシステムでは、CPUとは別に設けられる専用プロセッサのハードウェア制御により、識別手段10および判断手段20の機能を実現する。識別手段10は、上記第1、第2の実施例とは異なり、通常のCPU命令と異なるP命令を導入するのではなく、CPUがメモリから読み込むCPU命令を専用プロセッサが解析することにより実現される。
<第3の実施例の構成例>
図11は、第3の実施例によるタスク切り替えシステムの構成例を示す図である。
図11に示すシステムは、CPU100aと、本実施形態によるタスク制御のための割り込みを行う割り込み装置120とを備える。図11に示すように、CPU100aおよび割り込み装置120は、ローカルバス102を介してメモリ100cと接続されている。また、割り込み装置120は、他のI/Oデバイス103からの割り込み要求を制御する割り込みコントローラ104と共に、論理和回路を介してCPU100aに接続されている。なお、このシステムは、例えば図2に示したコンピュータ100に、割り込み装置120を追加することにより実現される。
図11に示すシステムにおいて、割り込み装置120は、解析部121と、判断部122と、割り込み要求生成部123とを備える。解析部121は、CPU100aによる命令フェッチを監視し、フェッチされたCPU命令を解析する。判断部122は、実行対象の命令がP命令である場合に、そのP命令を即時実行するか、または実行せずにタスク切り替え処理を行うかを判断する。割り込み要求生成部123は、CPU100aに対する割り込み要求を生成する。
また、第3の実施例では、図11に示すように、割り込み装置120の判断部122が、DECレジスタ101aとTHレジスタ101bとを備える。タスク切り替え時に行われるDECレジスタ101aのタイムアウト値の設定は、判断部122が行う。
ここで、解析部121は、図1に示した識別手段10として機能し、判断部122は、図1に示した判断手段20として機能する。解析部121、判断部122および割り込み要求生成部123は、論理回路にて構成される。また、図11に示すシステムにおいて、CPU100aは、図1に示した実行手段30として機能する。
解析部121は、バス・モニタ回路とアドレス/データ比較回路とを備える。そして、バス・モニタ回路の機能により、ローカルバス102のアドレスおよびデータラインを監視し、CPU100aがメモリ100cから読み込んだCPU命令を取得する。また、アドレス/データ比較回路の機能により、取得したCPU命令が判断部122による判断の対象となるCPU命令(第1、第2の実施例におけるP命令に相当する)か否かを判定する。なお、第3の実施例では、少なくとも判断部122による判断の対象となるCPU命令は、メモリ100cにおけるキャッシュされないメモリ領域に記憶されていることが望ましい。CPU100aがメモリ100cからCPU命令を読み込む際にバス・モニタ回路にてそのCPU命令を取得するので、CPU100aがCPU命令をキャッシュしてしまうと、キャッシュから読み込む命令を解析部121が取得できないためである。
また、解析部121は、アドレスレジスタ121aとデータレジスタ121bおよびマスクレジスタ121cとを備える。これらは、判断部122による判断の対象となるCPU命令の数に応じて設けられる。図11に示す例では、アドレスレジスタ121aがn個設けられている。また、データレジスタ121bとマスクレジスタ121cとは個別に対応しており、各々m個ずつ設けられている。
解析部121は、取得したCPU命令からCPU100aがアクセスしたアドレスを抽出し、得られたアドレスがいずれかのアドレスレジスタ121aの値にマッチするか否かを調べる。そして、いずれかのレジスタ値とマッチするならば、そのCPU命令は判断部122による判断の対象となるCPU命令であると判定する。
また、解析部121は、取得したCPU命令のデータ(すなわちCPU命令そのもの)が、いずれかのデータレジスタ121bの値にマッチするか否かを調べる。ただし、このマッチングでは、CPU命令のデータのうち、各データレジスタ121bに対応するマスクレジスタ121cで指定されたビットのみを比較する。そして、いずれかのレジスタ値とマッチするならば、そのCPU命令は判断部122による判断の対象となるCPU命令であると判定する。
ここで、CPU命令のうち、マスクレジスタ121cで指定されたビットのみをデータレジスタ121bの値と比較するのは、CPU命令のOPコードの部分のみを比較するためである。機械語で記述されたCPU命令は上位桁に記述されるOPコードと下位桁に記述されるレジスタ値との組み合わせで構成されている。そこで、マスクレジスタ121cの値を用いてCPU命令のレジスタ値の部分をマスクする。
なお、ここでは、取得したCPU命令のメモリアドレスまたはCPU命令自体に基づいて判断部122による判断の対象となるCPU命令か否かを判定することとしたが、これらを組み合わせた複合条件に基づき判定しても良い。例えば、特定のアドレスから読み出された特定の命令のみを判断部122による判断の対象となるCPU命令と判定することができる。また、CPU命令のメモリアドレスまたはCPU命令自体のいずれか一方のみを判定条件としても良い。例えば全てのCPU命令に対して、その種類のみに基づいて判断部122による判断の対象となるCPU命令か否かを判定する仕様を採用することができる。この場合、解析部121においてアドレスレジスタ121aは必須の構成要件ではなく、省略して良い。
また、解析部121によるCPU命令の取得は、通常、数ワード単位で行われるが、どの単位でレジスタと比較が行われるかは、特に限定しない。例えば、32バイト単位でコードがフェッチされる32ビットのRISCプロセッサの場合、データ(マスク)レジスタのビット幅は32ビット(1命令分)にしておき、32バイトデータを8つの部分に分解して同時に比較しても良い。
判断部122は、解析部121において、取得したCPU命令が判断部122による判断の対象となるCPU命令であると判断された場合、そのCPU命令に関して、即時実行するか否かを判断する。具体的な判断手法は、第1、第2の実施例と同様である。すなわち、DEC値(タスクの残り時間)とTH値(閾値)とを比較して、DEC値<TH値である場合には、そのCPU命令を即時実行せず、タスク切り替え処理を行うと判断する。
割り込み要求生成部123は、判断部122がタスク切り替え処理を行うと判断した場合、割り込み要求を生成してCPU100aに送る。また、割り込み要求生成部123は、ステータスレジスタ123aを備える。
CPU100aは、この割り込み要求を受けて、OSが提供する割り込みハンドラを実行する。この際、割り込み要求生成部123のステータスレジスタ123aを読むことにより、割り込みコントローラ104による割り込みではなく、割り込み装置120による割り込みであることがわかる。
以上説明した第3の実施例によれば、割り込み装置120がCPU命令を解析して割り込みを発生させ、タスク切り替え処理を実行させるので、第1、第2の実施例のようにCPU100aが実行する命令セットを拡張する必要はない。なお、第3の実施例において、THレジスタ101bの有無およびTH値の設定については、第1の実施例と同様である。
<クリティカル・セクションへの応用>
次に、本実施形態のクリティカル・セクションへの応用について説明する。
CPUがプログラムのクリティカル・セクションを実行する場合、排他制御等によりその領域の不可分性を確保する必要がある。そのため、マルチタスク制御において、あるタスクのクリティカル・セクションの実行中には割り込みを発生させることができず、タスク切り替え処理を行うことができない。したがって、リアルタイム処理を要するマルチタスク制御では、クリティカル・セクションの存在によってリアルタイム性が損なわれる可能性があった。
これに対し、本実施形態を応用することにより、クリティカル・セクションが存在する場合にも確実にリアルタイム性を確保することが可能となる。具体的には、プログラミングの際に、クリティカル・セクションの直前に必ずP命令を記述するようにする。このようにすれば、CPUがクリティカル・セクションを実行する際には、それに先立って必ずP命令が実行されることとなる。そのため、クリティカル・セクションに入る直前のP命令を実行する時点でタスクの残り時間が閾値よりも短くなっていれば、P命令は実行されず、クリティカル・セクションにも入ることなくタスクが切り替わる。これにより、クリティカル・セクションに入ったためにタスクの最長処理時間に達してもタスクを切り替えることができず、リアルタイム性を損なうことを防止することができる。
図12は、クリティカル・セクションを含むタスクの処理の様子を示すタイムチャートである。図12(a)はクリティカル・セクションの直前にP命令を挿入しない場合の動作を示し、図12(b)はクリティカル・セクションの直前にP命令を挿入した場合の動作を示す。
図12(a)の時間軸を参照すると、クリティカル・セクションの実行中に、タスクに割り当てられた最長処理時間に達している。しかし、クリティカル・セクションに入る際に排他制御により割り込み禁止となり、クリティカル・セクションが終わるまで割り込みは許可されないため、最長処理時間となってもタスクを切り替えることができない。
一方、図12(b)の時間軸を参照すると、クリティカル・セクションに入る直前にP命令が読み込まれ、タスクの残り時間が短いために、クリティカル・セクションを含むP命令以降の処理が実行されずにタスク切り替え処理が行われる。そして、次に同タスクが実行される際に、P命令から処理が再開され、クリティカル・セクションが実行される。
なお、上記のように本実施形態をクリティカル・セクションに応用する場合、クリティカル・セクションの実行に要する時間に応じて閾値(THレジスタの値)を設定する必要がある。また、上記の例では、クリティカル・セクションの直前に第1、第2の実施例で用いたP命令を記述する例について説明したが、第3の実施例も同様にクリティカル・セクションに応用することができる。
また、本実施形態をクリティカル・セクションに応用する場合、クリティカル・セクションの直前に記述されるP命令は、クリティカル・セクションに入るか否かを判断するために用いられるのであり、その命令自体の内容は特に限定されない。そこで、例えば実体的な処理が行われないNOP命令等をP命令として設定し、クリティカル・セクションの前に記述することができる。
以上、本実施形態について説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。例えば、第1、第2の実施例では、即時実行するか否かを判断する必要がある各CPU命令(load/store命令や、並列処理されている一連の命令の同期を取るためのsync命令等、処理時間が不確定で長時間となる可能性があるCPU命令)に対して個別にP命令を設定した。これに対し、これらのCPU命令自体に対してP命令を設定するのではなく、これらのCPU命令の直前にP命令として設定されたNOP命令等を記述することで、本実施形態を実現することも可能である。その他、上記実施形態に、種々の変更または改良を加えたものも、本発明の技術的範囲に含まれることは、特許請求の範囲の記載から明らかである。
10…識別手段、20…判断手段、30…実行手段、100a…CPU(Central Processing Unit)、101a…DECレジスタ、101b…THレジスタ

Claims (7)

  1. プロセッサが複数のタスクを切り替えながら処理を実行するシステムにおいて、
    タスクを切り替えながら各タスクにおける命令を実行する実行手段と、
    実行対象の命令が予め定められた特定の命令か否かを識別する識別手段と、
    実行対象の命令が前記特定の命令である場合に、実行中のタスクに割り当てられた処理時間に対する残り時間と予め設定された閾値とを比較し、当該残り時間が当該閾値よりも長いときに前記実行手段に当該特定の命令を実行させ、当該残り時間が当該閾値よりも短いときに前記実行手段に当該特定の命令を実行せずにタスク切り替え処理を行わせることを判断する判断手段と、を備える、システム。
  2. 前記実行手段は、前記判断手段の判断に基づくタスク切り替え処理を行うための割り込みハンドラを備え、
    前記判断手段は、前記割り込みハンドラを呼び出して、前記実行手段にタスク切り替え処理を行わせる、請求項1に記載のシステム。
  3. 汎用CPUと、前記特定の命令を実行するための専用プロセッサとを別個に備え、
    前記専用プロセッサは、前記識別手段及び前記判断手段の機能を実現するとともに、前記実行手段が行う機能のうち、タスクを切り替える機能と前記実行対象の命令が前記特定の命令である場合に、前記残り時間が前記閾値よりも長いときに当該特定の命令を実行する機能を実現し、
    前記汎用CPUは、前記実行手段が行う機能のうち、前記実行対象の命令が前記特定の命令ではない場合に、前記実行対象の命令を実行する機能を実現する、請求項1に記載のシステム。
  4. 前記識別手段による命令の識別および前記判断手段による命令を実行するか否かの判断は、各命令に対する命令パイプラインの工程において行われる、請求項1乃至請求項のいずれかに記載のシステム。
  5. 前記識別手段は、
    前記実行手段の機能を実現するプロセッサによるメモリからの命令の読み込みをバス・モニタ回路にて監視し、
    当該命令の内容、または当該プロセッサがアクセスしたメモリアドレス、もしくはその両方に基づき、当該命令が前記特定の命令か否かを識別する、請求項1に記載のシステム。
  6. プロセッサが複数のタスクを切り替えながら処理を実行するシステムにおいて、
    汎用CPUと、
    予め定められた特定の命令を実行するための専用プロセッサとを備え、
    前記専用プロセッサは、
    実行対象の命令が予め定められた特定の命令か否かを識別する識別部と、
    実行対象の命令が前記特定の命令である場合に、実行中のタスクに割り当てられた処理時間に対する残り時間と予め設定された閾値とを比較し、当該残り時間が当該閾値よりも短い場合に、当該特定の命令を実行するか、または、当該特定の命令を実行せずにタスク切り替え処理を行うかを判断する判断部と、
    前記判断部によりタスク切り替え処理を行うと判断された場合に、割り込みを発生させてタスク切り替え処理を行うタスク切り替え処理部と、
    前記判断部が前記特定の命令を実行すると判断したときに、前記特定の命令を実行する実行手段と、を備え、
    前記汎用CPUは、前記識別部が実行対象の命令が前記特定の命令ではないと識別した場合に、前記実行対象の命令を実行する機能を実現する、システム。
  7. プロセッサが複数のタスクを切り替えながら処理を実行する方法において、
    実行対象の命令が予め定められた特定の命令か否かを識別するステップと、
    実行対象の命令が前記特定の命令である場合に、実行中のタスクに割り当てられた処理時間に対する残り時間と予め設定された閾値とを比較し、当該残り時間が当該閾値よりも長いときに当該特定の命令を実行し、当該残り時間が当該閾値よりも短いときに当該特定の命令を実行せずにタスク切り替え処理を行うことを判断するステップと、
    タイマー割り込みによりタスク切り替え処理を行いながら各タスクにおける命令を実行し、前記判断するステップでタスク切り替えを行うと判断した場合は、当該判断に基づく割り込みによりタスク切り替え処理を行うステップと、を含む、方法。
JP2009293912A 2009-12-25 2009-12-25 タスクの切り換えを制御するシステムおよび方法 Expired - Fee Related JP4965638B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009293912A JP4965638B2 (ja) 2009-12-25 2009-12-25 タスクの切り換えを制御するシステムおよび方法
US12/954,949 US8601488B2 (en) 2009-12-25 2010-11-29 Controlling the task switch timing of a multitask system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009293912A JP4965638B2 (ja) 2009-12-25 2009-12-25 タスクの切り換えを制御するシステムおよび方法

Publications (2)

Publication Number Publication Date
JP2011134162A JP2011134162A (ja) 2011-07-07
JP4965638B2 true JP4965638B2 (ja) 2012-07-04

Family

ID=44189105

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009293912A Expired - Fee Related JP4965638B2 (ja) 2009-12-25 2009-12-25 タスクの切り換えを制御するシステムおよび方法

Country Status (2)

Country Link
US (1) US8601488B2 (ja)
JP (1) JP4965638B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013095337A1 (en) * 2011-12-19 2013-06-27 Intel Corporation A system and deterministic method for servicing msi interrupts using direct cache access
GB2517494B (en) * 2013-08-23 2021-02-24 Advanced Risc Mach Ltd Handling time intensive instructions
JP6129702B2 (ja) * 2013-09-24 2017-05-17 株式会社東芝 情報処理装置、情報処理システム、プログラム
JP2016091076A (ja) * 2014-10-30 2016-05-23 日本電気株式会社 情報処理装置
JP6445876B2 (ja) * 2015-01-26 2018-12-26 日本電信電話株式会社 リソース割当装置、リソース割当システム、および、リソース割当方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04137046A (ja) * 1990-09-28 1992-05-12 Toshiba Corp 電子計算機のオペレーティングシステム
JPH0588918A (ja) * 1991-04-30 1993-04-09 Internatl Business Mach Corp <Ibm> マシン・サイクルの浪費を回避する方法
CN1113289C (zh) * 1997-03-04 2003-07-02 松下电器产业株式会社 能执行多异步运行任务中的异步事件任务的处理器
US6157989A (en) * 1998-06-03 2000-12-05 Motorola, Inc. Dynamic bus arbitration priority and task switching based on shared memory fullness in a multi-processor system
JP3981238B2 (ja) * 1999-12-27 2007-09-26 富士通株式会社 情報処理装置
US20010034751A1 (en) * 2000-04-21 2001-10-25 Shinichiro Eto Real-time OS simulator
JP3610930B2 (ja) * 2001-07-12 2005-01-19 株式会社デンソー オペレーティングシステム、プログラム、車両用電子制御装置
JP2003131892A (ja) * 2001-10-25 2003-05-09 Matsushita Electric Ind Co Ltd タスク実行制御装置及びタスク実行制御方法
JP2004157636A (ja) * 2002-11-05 2004-06-03 Renesas Technology Corp データ処理装置
JP3862715B2 (ja) * 2004-06-01 2006-12-27 株式会社ソニー・コンピュータエンタテインメント タスク管理方法、タスク管理装置、半導体集積回路、電子装置、およびタスク管理システム
JP2007026095A (ja) * 2005-07-15 2007-02-01 Matsushita Electric Ind Co Ltd 並列演算装置
JP2007095040A (ja) * 2005-08-31 2007-04-12 Matsushita Electric Ind Co Ltd データ処理装置、プログラム、記録媒体、コンテンツ再生装置
JP2007219937A (ja) * 2006-02-17 2007-08-30 Toyota Infotechnology Center Co Ltd タスク管理システム、タスク管理方法およびタスク管理プログラム
JP4127848B2 (ja) * 2006-08-24 2008-07-30 ネットクリアスシステムズ株式会社 タスク処理装置
US7698541B1 (en) * 2006-10-31 2010-04-13 Netapp, Inc. System and method for isochronous task switching via hardware scheduling
US8341641B2 (en) * 2007-08-16 2012-12-25 Kernelon Silicon Inc. Task processor
JP4591580B2 (ja) * 2008-02-07 2010-12-01 株式会社デンソー 周期信号処理装置
JP5119994B2 (ja) * 2008-03-14 2013-01-16 富士通株式会社 性能モニタリングプログラム、性能モニタリング方法、性能モニタリング装置

Also Published As

Publication number Publication date
JP2011134162A (ja) 2011-07-07
US20110161982A1 (en) 2011-06-30
US8601488B2 (en) 2013-12-03

Similar Documents

Publication Publication Date Title
JP6903187B2 (ja) タイミングを中断させるモードにおけるソフトウェアの後方互換性テスト
EP1421490B1 (en) Methods and apparatus for improving throughput of cache-based embedded processors by switching tasks in response to a cache miss
JP4837305B2 (ja) マイクロプロセッサ及びマイクロプロセッサの制御方法
US7774585B2 (en) Interrupt and trap handling in an embedded multi-thread processor to avoid priority inversion and maintain real-time operation
EP2315113A1 (en) Multi-threaded processors and multi-processor systems comprising shared resources
US20140129784A1 (en) Methods and systems for polling memory outside a processor thread
JP4965638B2 (ja) タスクの切り換えを制御するシステムおよび方法
JP2005518606A (ja) メモリアクセスを制御する方法及び装置
JP2020507848A (ja) メモリシステムへの加速されたアクセスを提供するための方法及び機器
US20090007124A1 (en) Method and mechanism for memory access synchronization
US8117425B2 (en) Multithread processor and method of synchronization operations among threads to be used in same
WO2009098737A1 (ja) 外部デバイスアクセス装置、その制御方法及びシステムlsi
US7870311B2 (en) Preemptive packet flow controller
US7831979B2 (en) Processor with instruction-based interrupt handling
JPWO2003040948A1 (ja) コンピュータ及び制御方法
EP0952527B1 (en) Interrupt processing
US6775740B1 (en) Processor having a selector circuit for selecting an output signal from a hit/miss judgement circuit and data from a register file
JPH1049373A (ja) パイプライン・デジタル・プロセッサにおいて多重で高精度の事象を操作する方法と装置
US7877533B2 (en) Bus system, bus slave and bus control method
JP2011070290A (ja) データプロセッサ
JP4878050B2 (ja) コンピュータ及び制御方法
US11216277B2 (en) Apparatus and method of capturing a register state
JPH06324861A (ja) Cpu制御システム及び制御方法
US20050268074A1 (en) Method and apparatus for determining the criticality of a micro-operation
JPH0683621A (ja) フェッチ方式

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120224

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

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20120313

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120329

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150406

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees