(57)【要約】【課題】汎用ＣＰＵに対して、タスクの切替制御を高速に行う。【解決手段】タスク制御機能をハードウェアにより実行するＯＳブロック１２０は、タスクの切替え時に、汎用バス１５０を介して、メインメモリ１３０の複数の退避領域１３２に含まれた、現在のタスクと次に実行するタスクに夫々対応付けられた退避領域１３２を示す切替指示をＣＰＵ１１０に送信する。ＣＰＵ１１０の実行制御回路１１４は、ＯＳブロック１２０からの切替指示に応じて、汎用バス１５０を介して、現在実行中のタスクに対応付けられた退避領域１３２に処理レジスタ１１２のデータを退避させると共に、次に実行すべきタスクに対応付けられた退避領域１３２のデータを処理レジスタ１１２にロードする。【選択図】図１
2013125388.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、
ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）機能のうちの、少なくともタスクの切替えを制御するタスク制御機能をハードウェアにより実行するＯＳブロックと、
メインメモリと、
前記ＣＰＵと、前記ＯＳブロックと、前記メインメモリとに接続された汎用バスとを備え、
前記ＣＰＵは、
タスク実行のためのデータを一時的に保持する処理レジスタと、
前記汎用バスを介して、命令及びオペランドを前記メインメモリから前記処理レジスタにロードして前記命令とオペランドに従ってタスクを実行する実行制御回路とを有し、
前記メインメモリは、
前記処理レジスタのデータを退避させるための、複数のタスクに対して夫々対応付けられた複数の退避領域を有し、
前記ＯＳブロックは、
タスクの切替え時に、
前記汎用バスを介して、前記メインメモリの前記複数の退避領域に含まれた、現在のタスクと次に実行するタスクに夫々対応付けられた退避領域を示す切替指示を前記ＣＰＵに送信し、
前記ＣＰＵにおける前記実行制御回路は、
前記ＯＳブロックからの前記切替指示に応じて、前記汎用バスを介して、前記切替指示が示す現在のタスクに対応付けられた退避領域に前記処理レジスタのデータを退避させると共に、前記切替指示が示す次のタスクに対応付けられた退避領域のデータを前記処理レジスタにロードすることを特徴とする半導体装置。
【請求項２】
前記ＯＳブロックは、
タスクスケジューラと、
割込要求を受け付ける割込要求受付回路と、
前記タスクスケジューラが指示するタスクと、前記割込要求受付回路が受け付けた割込要求に対応するタスクについて、前記切替指示を送信するタスク切替制御回路とを含むことを特徴とする請求項１に記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードウェアによりタスクの切替えを制御する技術に関する。
【背景技術】
【０００２】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）によりＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）の機能を実現するシステムが広く知られている。
【０００３】
このようなシステムにおいて、ＣＰＵは、現在実行中のタスクのデータを格納する処理レジスタと、待機中のタスクのデータを格納する退避レジスタを備え、スケジューラまたは割込みに応じてタスクを切り替える時に、処理レジスタ内のデータを、当該タスクに対して設けられた退避レジスタに退避させると共に、切替先のタスクに対応する退避レジスタから該タスクのデータを処理レジスタにロードして該タスクを実行する。
【０００４】
このようなシステムでは、タスクの切替えに多くのクロック数が必要であり、タスクの切替えが完了するまでのレイテンシが長い。レイテンシを短縮するためには、動作周波数の高いＣＰＵを使う必要があるため、コストと消費電力の増大を招くという問題がある。
【０００５】
特許文献１には、ＣＰＵの代わりに、タスクの切替制御をタスク切替制御回路により担う技術が開示されている。この技術では、退避レジスタが、ＣＰＵの外部に設けられている。ＣＰＵは、所定のシステムコール命令を実行するときに、その旨をタスク制御回路に通知する。タスク制御回路は、ＣＰＵから通知されたシステムコール命令の実行を通知されると、実行中のタスクに対応付けられている退避レジスタに処理レジスタのデータを退避させると共に、次に実行すべきタスクを選択して、選択したタスクに対応付けられた退避レジスタのデータを処理レジスタにロードする。
【０００６】
また、特許文献２にも、ハードウェアスケジューラによりタスクの切替えを制御する技術が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】国際公開ＷＯ２００８／０２３４２６号公報
【特許文献２】特開２０１０−１６５２０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、特許文献１と特許文献２のいずれに開示された技術も、タスク制御回路またはハードウェアスケジューラがＣＰＵの処理レジスタにアクセスする必要があり、タスク制御回路とハードウェアスケジュールにより処理レジスタをアクセス可能な、特殊なＣＰＵが必要である。
【課題を解決するための手段】
【０００９】
本発明の１つの態様は、半導体装置である。この半導体装置は、ＣＰＵと、ＯＳブロックと、メインメモリと、汎用バスを備える。汎用バスは、ＣＰＵと、ＯＳブロックと、メインメモリと接続されている。
【００１０】
ＣＰＵは、処理レジスタと実行制御回路を有する。処理レジスタは、タスク実行のためのデータを一時的に保持するものである。実行制御回路は、汎用バスを介して、命令及びオペランドをメインメモリから処理レジスタにロードし、ロードした命令とオペランドに従ってタスクを実行する。
【００１１】
ＯＳブロックは、ＯＳ機能のうちの、少なくともタスクの切替えを制御するタスク制御機能をハードウェアにより実行するものである。
【００１２】
メインメモリは、処理レジスタのデータを退避させるための複数の退避領域を有し、該複数の退避領域は、複数のタスクに対して夫々対応付けられている。
【００１３】
ＯＳブロックは、タスクの切替え時に、汎用バスを介して、メインメモリの複数の退避領域に含まれた、現在のタスクと次に実行するタスクに夫々対応付けられた退避領域を示す切替指示をＣＰＵに送信する。
【００１４】
ＣＰＵの実行制御回路は、ＯＳブロックからの切替指示に応じて、汎用バスを介して、切替指示が示す現在のタスクに対応付けられた退避領域に処理レジスタのデータを退避させると共に、切替指示が示す次のタスクに対応付けられた退避領域のデータを処理レジスタにロードする。
【００１５】
なお、上記態様の装置を方法やシステムに置き換えて表現したものなども、本発明の態様としては有効である。
【発明の効果】
【００１６】
本発明にかかる技術によれば、汎用ＣＰＵに対して、タスク切替えの高速化を図ることができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の第１の実施の形態にかかる半導体装置を示す図である。
【図２】本発明の第２の実施の形態にかかるマルチＯＳシステムを示す図である。
【図３】本発明の第３の実施の形態にかかるシステムを示す図である。
【発明を実施するための形態】
【００１８】
以下、図面を参照して本発明の実施の形態について説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１９】
＜第１の実施の形態＞
図１は、本発明の第１の実施の形態に半導体装置１００を示す。半導体装置１００は、ＣＰＵ１１０、ＯＳブロック１２０、メインメモリとなるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１３０、汎用バス１５０を備える。ＣＰＵ１１０、ＯＳブロック１２０、ＲＡＭ１３０は、汎用バス１５０を介して接続されている。
【００２０】
ＣＰＵ１１０は、処理レジスタ１１２と、実行制御回路１１４を有する。処理レジスタ１１２は、タスク実行のためのデータを一時的に保持するものである。実行制御回路１１４は、汎用バス１５０を介して、命令及びオペランドをＲＡＭ１３０から処理レジスタ１１２にロードして、ロードした命令とオペランドに従ってタスクを実行する。
【００２１】
ＲＡＭ１３０は、処理レジスタ１１２のデータを退避させるための複数の退避領域１３２を有し、これらの退避領域１３２は、複数のタスクに対して夫々対応付けられている。
【００２２】
ＯＳブロック１２０は、ＯＳの機能をハードウェアにより実行するものであり、本実施の形態の半導体装置１００において、ＯＳブロック１２０は、ＯＳ機能のうちの、タスクの切替えを制御するタスク制御機能を備える。
【００２３】
図示のように、ＯＳブロック１２０は、スケジューラ１２２、割込受付回路１２４、タスク切替制御回路１２６を備える。スケジューラ１２２は、タスクのスケジューリング機能をハードウェアにより実現するものであり、例えばスケジューリングテーブルを備え、該スケジューリングテーブルに基づいて、次に実行すべきタスクをタスク切替制御回路１２６に通知する。
【００２４】
割込受付回路１２４は、割込要求を受け付け、その旨をタスク切替制御回路１２６に通知する。
【００２５】
タスク切替制御回路１２６は、スケジューラ１２２により次に実行すべきタスクを通知されたときと、割込受付回路１２４から割込みを通知されたときに、ＣＰＵ１１０に対してタスクの切替えを制御する。タスクの切替えの制御は、現在実行中のタスクを中止すると共に、次に実行すべきタスクを実行するようにＣＰＵ１１０に対する制御である。
【００２６】
タスク切替制御回路１２６は、夫々のタスクと、ＲＡＭ１３０において、該タスクに対応付けられた退避領域１３２を示す情報（アドレス情報）とを対応付けて管理しており、ＣＰＵ１１０が現在実行しているタスクを示す情報も保持している。
【００２７】
タスクの切替え時に、タスク切替制御回路１２６は、汎用バス１５０を介してＣＰＵ１１０に切替指示を送信する。この切替指示には、少なくとも、ＣＰＵ１１０が現在実行中のタスクに対応付けられた退避領域１３２を示す情報と、次に実行すべきタスクに対応付けられた退避領域１３２を示す情報とを含む。
【００２８】
ＣＰＵ１１０において、実行制御回路１１４は、ＯＳブロック１２０から切替指示を受信すると、汎用バス１５０を介して、該切替指示が示す現在実行中のタスクに対応する退避領域１３２に処理レジスタ１１２のデータを退避させると共に、切替指示が示す次のタスクに対応する退避領域１３２のデータを処理レジスタ１１２にロードする。その後、実行制御回路１１４は、処理レジスタ１１２にロードされたデータを実行する。
【００２９】
半導体装置１００によれば、タスクの切替制御は、ハードウェアにより実行されるため、ソフトウエアにより実現されるタスクの切替制御より、５倍〜１０倍の速さを得ることができる。また、動作クロック数に揺らぎが少ないため、タスクの切替え時間がほぼ一定にできる。
【００３０】
また、タスクの切替えに際して、ＯＳブロック１２０がＣＰＵ１１０の処理レジスタにアクセスする必要が無いため、汎用のＣＰＵでも対応可能である。
【００３１】
なお、本実施の形態の半導体装置１００は、タスクの切替制御のみをハードウェアにより実行するようにしているが、ＯＳの全ての機能をハードウェアにより実行するようにしてもよい。その際、半導体装置１００におけるＯＳブロック１２０と同様に、ＣＰＵ１１０にアクセスしないようにすることで、汎用のＣＰＵへの適応が可能になる。
【００３２】
＜第２の実施の形態＞
本発明にかかる技術は、マルチＯＳシステムへの適用が容易である。図２は、本発明にかかるマルチＯＳシステム２００を示す。
【００３３】
マルチＯＳシステム２００は、ＣＰＵ１１０、第１のＯＳブロック２２０、第２のＯＳブロック２３０、ＲＡＭ１３０、汎用バス１５０を備える。
【００３４】
ＣＰＵ１１０は、図１に示す半導体装置１００におけるＣＰＵ１１０と同様である。ＲＡＭ１３０には、第１のＯＳブロック２２０と第２のＯＳブロック２３０に夫々対応する２つのＯＳ毎に、複数の退避領域１３２が設けられている。
【００３５】
第１のＯＳブロック２２０は、第１のＯＳに対応し、該ＯＳのタスク切替制御をハードウェアにより実行する。第２のＯＳブロック２３０は、第２のＯＳに対応し、該ＯＳのタスク切替制御をハードウェアにより実行する。第１のＯＳブロック２２０と第２のＯＳブロック２３０は、図１に示す半導体装置１００におけるＯＳブロック１２０と同様の構成を有し、同様の動作をする。
【００３６】
ＣＰＵ１１０、第１のＯＳブロック２２０、第２のＯＳブロック２３０、ＲＡＭ１３０は、汎用バス１５０を介して接続されている。
【００３７】
すなわち、本発明の技術によれば、ＯＳブロックを追加するだけでマルチＯＳシステムを実現することができ、開発が簡単である。
【００３８】
＜第３の実施の形態＞
本発明にかかる技術によれば、ハードウェア化されたＯＳ機能のみを半導体デバイス化し、汎用マイコン（マイクロ・プロセッサ）に外付けすることもできる。図３を参照して説明する
【００３９】
図３に示すシステム３００は、マイコンである半導体装置３１０、半導体装置３２０、ＲＡＭ１３０、外部バス３５０を備える。半導体装置３１０、半導体装置３２０、ＲＡＭ１３０は、外部バス３５０を介して接続されている。
【００４０】
半導体装置３１０には、汎用ＣＰＵであるＣＰＵ１１０が設けられている。ＣＰＵ１１０は、図１に示す半導体装置１００におけるＣＰＵ１１０と同様である。
【００４１】
半導体装置３２０は、ＯＳのタスク制御機能を半導体デバイス化したものであり、ＯＳブロック１２０を備える。ＯＳブロック１２０は、図１に示す半導体装置１００におけるＯＳブロック１２０と同様である。
【００４２】
タスク切替えの際、半導体装置３２０におけるＯＳブロック１２０は、外部バス３５０を介して切替指示を半導体装置３１０に送信する。半導体装置３１０におけるＣＰＵ１１０は、該切替指示に応じて、処理レジスタのデータの退避と、次に実行すべきタスクのデータのロードを行う。なお、処理レジスタのデータの退避と、次のタスクのデータのロードのいずれも、外部バス３５０を介してＲＡＭ１３０との間で行われる。
【００４３】
このように、半導体装置３２０を既存のマイコンに外付けることにより、半導体装置３２０でのアプリケーションの実行の高速化を図ることができる。
【００４４】
以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、上述した各実施の形態に対してさまざまな変更、増減、組合せを行ってもよい。これらの変更、増減、組合せが行われた変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【００４５】
１００  半導体装置
１１０  ＣＰＵ
１１２  処理レジスタ
１１４  実行制御回路
１２０  ＯＳブロック
１２２  スケジューラ
１２４  割込受付回路
１２６  タスク切替制御回路
１３０  ＲＡＭ
１３２  退避領域
１５０  汎用バス
２００  マルチＯＳシステム
２２０  第１のＯＳブロック
２３０  第２のＯＳブロック
３００  システム
３１０  半導体装置
３２０  半導体装置
３５０  外部バス
【図１】
2013125388.tif 000003
【図２】
2013125388.tif 000004
【図３】
2013125388.tif 000005