(57)【要約】【課題】プロセッサの過負荷状態の検出の精度を向上する。【解決手段】アイドルタスクが開始されると、プロセッサ１００からのコマンドによりアイドルカウンタ４００はカウントを開始する。累積レジスタ５００は、タイマ７００に設定されたタイマ値ごとにアイドルカウンタ４００に値を累積する。第１シフトレジスタ８０１〜第５シフトレジスタ８０５は、タイマ値ごとにそれぞれ、前段の累積レジスタ５００〜第４シフトレジスタ８０４の値を入力する。減算回路９１０は、第５シフトレジスタ８０５の値から第１シフトレジスタ８０１の値を減算する。比較回路９２０は、いき値レジスタ６００の値と、減算結果とを比較し、減算結果＜いき値レジスタ６００の値であれば、負荷検出・保持回路９３０は、過負荷として過負荷情報を保持する。【選択図】      図１
2008084013.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサで実行されるアイドルタスクの実行時間に比例する値を保持するアイドルカウンタと、前記アイドルカウンタの値を、一定時間ごとに累積する累積レジスタと、前記累積レジスタの値を順次、前記一定時間ごとに格納する第１〜第ｎシフトレジスタと、「前記第１シフトレジスタの値−前記第ｎシフトレジスタの値」の減算結果＜（または、≦）いき値であれば、過負荷であることを示す過負荷情報を設定する負荷検出・保持回路とを有することを特徴とする負荷制御回路。
【請求項２】
前記いき値を格納するいき値レジスタと、「前記第１シフトレジスタの値−前記第ｎシフトレジスタの値」の減算を行う減算回路と、前記減算結果と前記いき値とを比較し比較結果を出力する比較回路と、前記比較結果が減算結果＜（または、≦）前記いき値を示せば、前記過負荷情報を設定し保持する前記負荷検出・保持回路と、前記一定時間を検出するタイマとを有することを特徴とする請求項１記載の負荷制御回路。
【請求項３】
前記プロセッサからのアイドルタスク起動に基づくカウント開始コマンドにしたがい初期化しカウントを開始し、前記プロセッサからのアプリケーションタスク起動に基づくカウント停止コマンドにしたがい初期化しカウントを停止し、前記一定時間ごとに初期化しカウントを再開する前記アイドルカウンタを有することを特徴とする請求項１、または、２記載の負荷制御回路。
【請求項４】
プロセッサと負荷制御回路とを備え、
アイドルタスク起動に基づくカウント開始コマンド、アプリケーションタスク起動に基づくカウント停止コマンドを前記負荷制御回路に出力する前記プロセッサと、
前記プロセッサからのアイドルタスク起動に基づくカウント開始コマンドにしたがい初期化しカウントを開始し、前記プロセッサからのアプリケーションタスク起動に基づくカウント停止コマンドにしたがい初期化しカウントを停止し、前記一定時間ごとに初期化しカウントを再開し、前記プロセッサで実行されるアイドルタスクの実行時間に比例する値を保持するアイドルカウンタと、前記アイドルカウンタの値を、一定時間ごとに累積する累積レジスタと、前記累積レジスタの値を順次、前記一定時間ごとに格納する第１〜第ｎシフトレジスタと、「前記第１シフトレジスタの値−前記第ｎシフトレジスタの値」の減算結果＜（または、≦）いき値であれば、過負荷であることを示す過負荷情報を設定する負荷検出・保持回路とを備える前記負荷制御回路と、
を有することを特徴とするデータ処理システム。
【請求項５】
前記いき値を格納するいき値レジスタと、「前記第１シフトレジスタの値−前記第ｎシフトレジスタの値」の減算を行う減算回路と、前記減算結果と前記いき値とを比較し比較結果を出力する比較回路と、前記比較結果が減算結果＜（または、≦）前記いき値を示せば、前記過負荷情報を設定し保持する前記負荷検出・保持回路と、前記一定時間を検出するタイマとを備える前記負荷制御回路を有することを特徴とする請求項４記載のデータ処理システム。
【請求項６】
前記過負荷情報を検知し、データ流入制限を実施するロードコントロールモジュールを実行する前記プロセッサを有することを特徴とする請求項４、または、５記載のデータ処理システム。
【請求項７】
前記第１〜第ｎシフトレジスタの値を入力する前記プロセッサを有することを特徴とする請求項４、５、または、６記載のデータ処理システム。
【請求項８】
アイドルカウンタが、プロセッサで実行されるアイドルタスクの実行時間に比例する値を保持する手順と、
累積レジスタが、前記アイドルカウンタの値を、一定時間ごとに累積する手順と、
第１〜第ｎシフトレジスタが前記累積レジスタの値を順次、前記一定時間ごとに格納する手順と、
負荷検出・保持回路が、「前記第１シフトレジスタの値−前記第ｎシフトレジスタの値」の減算結果＜（または、≦）いき値であれば、過負荷であることを示す過負荷情報を設定する手順と、
を含むことを特徴とする負荷制御方法。
【請求項９】
いき値レジスタが、前記いき値を格納する手順と、
比較回路が、「前記第１シフトレジスタの値−前記第ｎシフトレジスタの値」の減算を行う減算回路と、前記減算結果と前記いき値とを比較し比較結果を出力する手順と、
前記負荷検出・保持回路が、前記比較結果が減算結果＜（または、≦）前記いき値を示せば、前記過負荷情報を設定し保持する手順と、
タイマが、前記一定時間を検出する手順と、
を含むことを特徴とする請求項８記載の負荷制御方法。
【請求項１０】
前記アイドルカウンタが、
前記プロセッサからのアイドルタスク起動に基づくカウント開始コマンドにしたがい初期化しカウントを開始する手順と、
前記プロセッサからのアプリケーションタスク起動に基づくカウント停止コマンドにしたがい初期化しカウントを停止する手順と、
前記一定時間ごとに初期化しカウントを再開する手順と、
含むことを特徴とする請求項８、または、９記載の負荷制御方法。
【請求項１１】
プロセッサと、アイドルカウンタ、第１〜第ｎシフトレジスタ、および、負荷検出・保持回路を含む負荷制御回路とを備えるデータ処理システムにおける負荷制御方法であって、
前記プロセッサが、アイドルタスク起動に基づくカウント開始コマンド、アプリケーションタスク起動に基づくカウント停止コマンドを前記負荷制御回路に出力する手順と、
前記アイドルカウンタが、前記プロセッサからのアイドルタスク起動に基づくカウント開始コマンドにしたがい初期化しカウントを開始し、前記プロセッサからのアプリケーションタスク起動に基づくカウント停止コマンドにしたがい初期化しカウントを停止し、前記一定時間ごとに初期化しカウントを再開し、前記プロセッサで実行されるアイドルタスクの実行時間に比例する値を保持する手順と、
前記第１〜第ｎシフトレジスタが、前記アイドルカウンタの値を、一定時間ごとに累積する累積レジスタと、前記累積レジスタの値を順次、前記一定時間ごとに格納する手順と、
前記負荷検出・保持回路が、「前記第１シフトレジスタの値−前記第ｎシフトレジスタの値」の減算結果＜（または、≦）いき値であれば、過負荷であることを示す過負荷情報を設定する手順と、
を含むことを特徴とする負荷制御方法。
【請求項１２】
いき値レジスタ、減算回路、比較回路、および、タイマを含む前記負荷制御回路を備える前記データ処理システムにおける負荷制御方法であって、
いき値レジスタが、前記いき値を格納する手順と、
前記減算回路が、「前記第１シフトレジスタの値−前記第ｎシフトレジスタの値」の減算を行う手順と、
前記比較回路が、前記減算結果と前記いき値とを比較し比較結果を出力する手順と、
前記負荷制御回路が、前記比較結果が減算結果＜（または、≦）前記いき値を示せば、前記過負荷情報を設定し保持する手順と、
前記タイマが、前記一定時間を検出する手順とを含むことを特徴とする請求項１１記載の負荷制御方法。
【請求項１３】
前記プロセッサで動作するロードコントロールモジュールが、前記過負荷情報を検知し、データ流入制限を実行する手順を含むことを特徴とする請求項１１、または、１２記載の負荷制御方法。
【請求項１４】
前記プロセッサが、前記第１〜第ｎシフトレジスタの値を入力する手順を含むことを特徴とする請求項１１、１２、または、１３記載の負荷制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、負荷制御回路、データ処理システム、および、負荷制御方法に関し、特に、過負荷を検出する負荷制御回路、データ処理システム、および、負荷制御方法に関する。
【背景技術】
【０００２】
従来の負荷検出の技術の一例が特許文献１に記載されている。この従来の技術は、「デバイスドライバ、複数のタスク、アイドルタスクの順に処理優先度を付け、アイドルタスク実行時に実行回数を累積するように設定し、一定時間内における前記複数のタスクおよびアイドルタスクの処理の前後の前記実行回数の差を求め、タスクの負荷状態を前記実行回数に反比例する関係として求めるデバイスドライバの負荷分散方法」である。
【０００３】
【特許文献１】特開２００３−２４１９７８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上述した従来の技術は、負荷検出の精度が低いという問題点がある。その理由は、一定時間内における前記複数のタスクおよびアイドルタスクの処理の前後の前記実行回数の差を求めることにより負荷を算出するからである。すなわち、処理の一時的な輻輳状態により、一時的にアイドルタスク動作率が低くなってしまうことがあるが、短周期での毎回測定では、この一時的な輻輳状態によりアイドルタス動作行率の低下を検出し、負荷低減制御を頻繁に実施してしまう危険がある。
【０００５】
本発明の目的は、上述した従来の課題を解決する負荷制御回路、データ処理システム、および、負荷制御方法を提供することである。
【課題を解決するための手段】
【０００６】
本発明の第１の負荷制御回路は、プロセッサで実行されるアイドルタスクの実行時間に比例する値を保持するアイドルカウンタと、前記アイドルカウンタの値を、一定時間ごとに累積する累積レジスタと、前記累積レジスタの値を順次、前記一定時間ごとに格納する第１〜第ｎシフトレジスタと、「前記第１シフトレジスタの値−前記第ｎシフトレジスタの値」の減算結果＜（または、≦）いき値であれば、過負荷であることを示す過負荷情報を設定する負荷検出・保持回路とを有する。
【０００７】
本発明の第２の負荷制御回路は、前記第１の負荷制御回路であって、前記いき値を格納するいき値レジスタと、「前記第１シフトレジスタの値−前記第ｎシフトレジスタの値」の減算を行う減算回路と、前記減算結果と前記いき値とを比較し比較結果を出力する比較回路と、前記比較結果が減算結果＜（または、≦）前記いき値を示せば、前記過負荷情報を設定し保持する前記負荷検出・保持回路と、前記一定時間を検出するタイマとを有する。
【０００８】
本発明の第３の負荷制御回路は、前記第１、または、第２の負荷制御回路であって、前記プロセッサからのアイドルタスク起動に基づくカウント開始コマンドにしたがい初期化しカウントを開始し、前記プロセッサからのアプリケーションタスク起動に基づくカウント停止コマンドにしたがい初期化しカウントを停止し、前記一定時間ごとに初期化しカウントを再開する前記アイドルカウンタを有する。
【０００９】
本発明の第１のデータ処理システムは、プロセッサと負荷制御回路とを備え、アイドルタスク起動に基づくカウント開始コマンド、アプリケーションタスク起動に基づくカウント停止コマンドを前記負荷制御回路に出力する前記プロセッサと、前記プロセッサからのアイドルタスク起動に基づくカウント開始コマンドにしたがい初期化しカウントを開始し、前記プロセッサからのアプリケーションタスク起動に基づくカウント停止コマンドにしたがい初期化しカウントを停止し、前記一定時間ごとに初期化しカウントを再開し、前記プロセッサで実行されるアイドルタスクの実行時間に比例する値を保持するアイドルカウンタと、前記アイドルカウンタの値を、一定時間ごとに累積する累積レジスタと、前記累積レジスタの値を順次、前記一定時間ごとに格納する第１〜第ｎシフトレジスタと、「前記第１シフトレジスタの値−前記第ｎシフトレジスタの値」の減算結果＜（または、≦）いき値であれば、過負荷であることを示す過負荷情報を設定する負荷検出・保持回路とを備える前記負荷制御回路と、を有する。
【００１０】
本発明の第２のデータ処理システムは、前記第１のデータ処理システムであって、前記いき値を格納するいき値レジスタと、「前記第１シフトレジスタの値−前記第ｎシフトレジスタの値」の減算を行う減算回路と、前記減算結果と前記いき値とを比較し比較結果を出力する比較回路と、前記比較結果が減算結果＜（または、≦）前記いき値を示せば、前記過負荷情報を設定し保持する前記負荷検出・保持回路と、前記一定時間を検出するタイマとを備える前記負荷制御回路を有する。
【００１１】
本発明の第３のデータ処理システムは、前記第１、または、第２のデータ処理システムであって、前記過負荷情報を検知し、データ流入制限を実施するロードコントロールモジュールを実行する前記プロセッサを有する。
【００１２】
本発明の第４のデータ処理システムは、前記第１、第２、または、第３のデータ処理システムであって、前記第１〜第ｎシフトレジスタの値を入力する前記プロセッサを有する。
【００１３】
本発明の第１の負荷制御方法は、アイドルカウンタが、プロセッサで実行されるアイドルタスクの実行時間に比例する値を保持する手順と、累積レジスタが、前記アイドルカウンタの値を、一定時間ごとに累積する手順と、第１〜第ｎシフトレジスタが前記累積レジスタの値を順次、前記一定時間ごとに格納する手順と、負荷検出・保持回路が、「前記第１シフトレジスタの値−前記第ｎシフトレジスタの値」の減算結果＜（または、≦）前記いき値であれば、過負荷であることを示す過負荷情報を設定する手順と、を含む。
【００１４】
本発明の第２の負荷制御方法は、前記第１の負荷制御方法であって、いき値レジスタが、前記いき値を格納する手順と、比較回路が、「前記第１シフトレジスタの値−前記第ｎシフトレジスタの値」の減算を行う減算回路と、前記減算結果と前記いき値とを比較し比較結果を出力する手順と、前記負荷検出・保持回路が、前記比較結果が減算結果＜（または、≦）いき値を示せば、前記過負荷情報を設定し保持する手順と、タイマが、前記一定時間を検出する手順と、を含む。
【００１５】
本発明の第３の負荷制御方法は、前記第１、または、第２の負荷制御方法であって、前記アイドルカウンタが、前記プロセッサからのアイドルタスク起動に基づくカウント開始コマンドにしたがい初期化しカウントを開始する手順と、前記プロセッサからのアプリケーションタスク起動に基づくカウント停止コマンドにしたがい初期化しカウントを停止する手順と、前記一定時間ごとに初期化しカウントを再開する手順と、含む。
【００１６】
本発明の第４の負荷制御方法は、プロセッサと、アイドルカウンタ、第１〜第ｎシフトレジスタ、および、負荷検出・保持回路を含む負荷制御回路とを備えるデータ処理システムにおける負荷制御方法であって、前記プロセッサが、アイドルタスク起動に基づくカウント開始コマンド、アプリケーションタスク起動に基づくカウント停止コマンドを前記負荷制御回路に出力する手順と、前記アイドルカウンタが、前記プロセッサからのアイドルタスク起動に基づくカウント開始コマンドにしたがい初期化しカウントを開始し、前記プロセッサからのアプリケーションタスク起動に基づくカウント停止コマンドにしたがい初期化しカウントを停止し、前記一定時間ごとに初期化しカウントを再開し、前記プロセッサで実行されるアイドルタスクの実行時間に比例する値を保持する手順と、前記第１〜第ｎシフトレジスタが、前記アイドルカウンタの値を、一定時間ごとに累積する累積レジスタと、前記累積レジスタの値を順次、前記一定時間ごとに格納する手順と、前記負荷検出・保持回路が、「前記第１シフトレジスタの値−前記第ｎシフトレジスタの値」の減算結果＜（または、≦）いき値であれば、過負荷であることを示す過負荷情報を設定する手順と、を含む。
【００１７】
本発明の第５の負荷制御方法は、前記第４の負荷制御方法であって、いき値レジスタ、減算回路、比較回路、および、タイマを含む前記負荷制御回路を備える前記データ処理システムにおける負荷制御方法であって、いき値レジスタが、前記いき値を格納する手順と、前記減算回路が、「前記第１シフトレジスタの値−前記第ｎシフトレジスタの値」の減算を行う手順と、前記比較回路が、前記減算結果と前記いき値とを比較し比較結果を出力する手順と、前記負荷制御回路が、前記比較結果が減算結果＜（または、≦）前記いき値を示せば、前記過負荷情報を設定し保持する手順と、前記タイマが、前記一定時間を検出する手順とを含む。
【００１８】
本発明の第６の負荷制御方法は、前記第４、または、第５の負荷制御方法であって、前記プロセッサで動作するロードコントロールモジュールが、前記過負荷情報を検知し、データ流入制限を実行する手順を含む。
【００１９】
本発明の第７の負荷制御方法は、前記第４、第５、または、第６の負荷制御方法であって、前記プロセッサが、前記第１〜第ｎシフトレジスタの値を入力する手順を含む。
【発明の効果】
【００２０】
本発明は、負荷検出の精度を向上できることである。その理由は、アイドルタスクの実行時間に比例する値を一定間隔で複数のレジスタに保持し、その値を考慮して過負荷を検出するからである。
【発明を実施するための最良の形態】
【００２１】
まず、概要について説明する。本発明は、プロセッサで実行されるアイドルタスクの実行時間に比例する値を保持し、アイドルタスクの実行時間に比例する値を、一定時間間隔で累積し、累積値を順次、前記一定時間間隔で複数のレジスタに保持し、「第１番目のレジスタの値−第ｎ番目のレジスタの値」の減算結果と事前に設定されたいき値とを比較し、減算結果＜（または、≦）いき値であれば、過負荷であることを示す過負荷情報を設定する。
【００２２】
次に、本発明の第１の実施の形態について図面を参照して詳細に説明する。図１は、本発明の第１の実施の形態のデータ処理システムの構成を示すブロック図である。図１を参照すると、第１の実施の形態のデータ処理システムは、プロセッサ１００と、主記憶装置２００と、バス３００と、負荷制御回路１５０とを備える。
【００２３】
負荷制御回路１５０は、アイドルカウンタ４００と、累積レジスタ５００と、いき値レジスタ６００と、タイマ７００と、第１シフトレジスタ８０１と、第２シフトレジスタ８０２と、第３シフトレジスタ８０３と、第４シフトレジスタ８０４と、第５シフトレジスタ８０５と、減算回路９１０と、比較回路９２０と、負荷検出・保持回路９３０とを備える。
【００２４】
第１シフトレジスタ８０１〜第５シフトレジスタ８０５までの５個に限られることはなく、ｎ（２以上の自然数）個が可能である。また、図示しないクロックがプロセッサ１００、主記憶装置２００、負荷制御回路１５０に供給される。プロセッサ１００が、スリープ（消費電力を削減するためのプロセッサ１００のクロック停止による）になっても、負荷検出・保持回路９３０を動作させる構成である（たとえば、クロック供給を停止しない）。
【００２５】
プロセッサ１００と主記憶装置２００とは接続される。主記憶装置２００は、ＯＳ（オペレーティングシステム）、アイドルタスク（アイドル時に実行される）、種々のアプリケーションタスク（アプリケーションプログラムの処理時に実行される）、および、ロードコントロールモジュールを格納する。プロセッサ１００は、ＯＳ、アイドルタスク、種々のアプリケーションタスク、および、ロードコントロールモジュールを主記憶装置２００から読み出し実行する。
【００２６】
プロセッサ１００と、アイドルカウンタ４００、いき値レジスタ６００、タイマ７００、負荷検出・保持回路９３０とは、バス３００を介して接続される。プロセッサ１００からコマンドがバス３００を介して、アイドルカウンタ４００、いき値レジスタ６００、タイマ７００、負荷検出・保持回路９３０に出力される。
【００２７】
アイドルカウンタ４００は、アイドルタスク実行時にカウントアップされる。アイドルカウンタ４００の出力は、累積レジスタ５００に入力される。累積レジスタ５００は、アイドルカウンタ４００の出力を累積する。
【００２８】
第１シフトレジスタ８０１の出力は、第２シフトレジスタ８０２に入力される。第２シフトレジスタ８０２の出力は、第３シフトレジスタ８０３に入力される。第３シフトレジスタ８０３の出力は、第４シフトレジスタ８０４に入力される。第４シフトレジスタ８０４の出力は、第５シフトレジスタ８０５に入力される。タイマ７００は、アイドルカウンタ４００、累積レジスタ５００、第１シフトレジスタ８０１〜第５シフトレジスタ８０５、および、負荷検出・保持回路９３０に、ストローブ信号を出力する。
【００２９】
減算回路９１０は、第１シフトレジスタ８０１の出力から第５シフトレジスタ８０５の出力を減算し、その結果を出力する。減算回路９１０は、第１シフトレジスタ８０１の出力の最上位ビットが０で、第５シフトレジスタ８０５の出力の最上位ビットが１である場合には、第１シフトレジスタ８０１の出力の最上位ビットの上に１を付加し、第５シフトレジスタ８０５の最上位の上に０を付加し、減算を行う。これにより、累積レジスタ５００で、オーバーフローが発生する場合に対処できる。
【００３０】
いき値レジスタ６００には、事前に、プロセッサ１００からバス３００を介していき値が設定される。比較回路９２０は、減算回路９１０の出力といき値レジスタ６００の出力とを比較し、大小を示す比較結果を出力する。
【００３１】
負荷検出・保持回路９３０は、比較回路９２０の出力を入力し、負荷の状態を検出し、検出結果を内部に保持し、バス３００を介してプロセッサ１００に出力する。
【００３２】
次に、本発明の第１の実施の形態の動作について図面を参照して説明する。図２、図３、図４は、本発明の第１の実施の形態のデータ処理システム動作を示すフローチャートである。図２を参照すると、ＯＳは、プロセッサ１００にタイマ値の設定を指示する（図２ステップＳ１）。プロセッサ１００は、バス３００を介してタイマ７００にコマンド（タイマ値を含む）を出力する（ステップＳ２）。たとえば、タイマ値は、１００［ｍｓ］である。タイマ７００は、タイマ値を設定し、カウント（カウントダウンして）を開始する（ステップＳ３）。
【００３３】
起動時に、タイマ７００が、自身で自動的にタイマ値を設定する構成も可能である。タイマ７００は、第１シフトレジスタ８０１〜第５シフトレジスタ８０５、および、負荷検出・保持回路９３０に、タイマ値（１００［ｍｓ］）ごとに、ストローブ信号を出力する。
【００３４】
また、ＯＳはプロセッサ１００にいき値レジスタ６００の設定を指示する（ステップＳ４）。プロセッサ１００は、バス３００を介して、いき値レジスタ６００にコマンド（いき値を含む）を出力する（ステップＳ５）。いき値レジスタ６００は、いき値を設定する（ステップＳ６）。次に、処理すべきアプリケーションプログラム（等）が存在すると（ステップＳ７／Ｙｅｓ）、ＯＳは、アプリケーションプログラムに対応するアプリケーションタスク（複数可）を起動し（ステップＳ８）、プロセッサ１００は、アプリケーションタスクを実行する（ステップＳ９）。
【００３５】
次に、処理すべきアプリケーションプログラム（等）が存在しないと（ステップＳ７／Ｎｏ）、ＯＳは、アイドル時に実行すべきアイドルタスクを起動し（ステップＳ１０）、プロセッサ１００は、アイドルタスクを実行する（ステップＳ１１）。また、ＯＳは、プロセッサ１００にアイドルカウンタ４００のカウント開始を指示する（ステップＳ１２）。
【００３６】
プロセッサ１００は、バス３００を介してアイドルカウンタ４００に、カウント開始を示すコマンドを出力する（ステップＳ１３）。アイドルカウンタ４００は、カウント開始を示すコマンドを入力すると、カウント値を初期化（たとえば、０に）し、カウント（たとえば、カウントアップ）を開始する（ステップＳ１４）。アイドルカウンタ４００は、たとえば、１［μｓ］ごとにカウントアップする。この１［μｓ］が、アイドルタスクの実行時間に比例する値である。
【００３７】
タイマ７００は、値が０になると（すなわち、１００［ｍｓ］ごとに）、ストローブ信号を出力し、タイマ値を１００［ｍｓ］に再設定して、カウントダウンを再開する（ステップＳ１５）。累積レジスタ５００は、起動時に０に初期化されており、タイマ７００のストローブ信号を入力すると、アイドルカウンタ４００の値を入力し、自身の値と加算し累積する（図３ステップＳ１６）。すなわち、タイマ値（１００［ｍｓ］）ごとに、アイドルカウンタ４００の値を累積する。また、この時、アイドルカウンタ４００は、ストローブ信号を入力すると、値を０に初期化し（ステップ１７）、再度、カウントアップを開始する（ステップＳ１８）。
【００３８】
また、ストローブ信号を入力すると、第１シフトレジスタ８０１は、累積レジスタ５００の値を入力し、第２シフトレジスタ８０２は、第１シフトレジスタ８０１の値を入力し、第３シフトレジスタ８０３は、第２シフトレジスタ８０２の値を入力し、第４シフトレジスタ８０４は、第３シフトレジスタ８０３の値を入力し、第５シフトレジスタ８０５は、第４シフトレジスタ８０４の値を入力する（ステップＳ１９）。このようにして、ステップＳ１５〜ステップＳ１９までが繰り返される。
【００３９】
また、ＯＳは、処理すべきアプリケーションプログラム（等）が存在すると（ステップＳ７／Ｙｅｓ）、ＯＳは、アイドルカウンタ４００の停止をプロセッサ１００に指示する（ステップＳ２０）。プロセッサ１００は、バス３００を介してアイドルカウンタ４００に、カウント停止を示すコマンドを出力する（ステップＳ２１）。アイドルカウンタ４００は、カウント停止を示すコマンドを入力すると、カウント値を初期化し、カウントを停止する（ステップＳ２２）。
【００４０】
負荷制御回路１５０のアイドルカウンタ４００以外の他の回路は、アイドルタスク実行時、アプリケーションタスク実行時にかかわらず、同様に動作する。
【００４１】
減算回路９１０は、第１シフトレジスタ８０１の値から第５シフトレジスタ８０５の値を減算し減算結果を出力する（図４ステップＳ３０）。ここで、減算結果をアイドルタスク動作率と呼ぶ。比較回路９２０は、いき値レジスタ６００の値と減算回路９１０の出力値との比較を行い、いき値レジスタ６００の値＞（または、≧）減算回路９１０の出力値であるかどうかを示す比較結果情報を出力する（ステップＳ３１）。
【００４２】
負荷検出・保持回路９３０は、比較結果情報を入力し、タイマ７００からのストローブ信号により、比較結果が、いき値レジスタ６００の値＞（または、≧）減算回路９１０の出力値であれば、自身に、過負荷であることを示す過負荷情報を設定し保持する（ステップＳ３２）。負荷検出・保持回路９３０は、過負荷情報を保持すると、バス３００を介してプロセッサ１００に通知する（ステップＳ３３）。
【００４３】
ここで、プロセッサ１００が、負荷検出・保持回路９３０を監視する構成も可能である。また、負荷検出・保持回路９３０から割り込みで、プロセッサ１００に過負荷情報を通知する構成も可能である。
【００４４】
プロセッサ１００は、過負荷情報を入力すると、ロードコントロールモジュールが、過負荷情報を検知し（ステップＳ３４）、データ処理システムのデータ流入制限を実施し、データ処理量を減少させる（ステップＳ３５）。たとえば、データ処理総理が、ＴＣＰのようなプロトコルを伴うデータ通信を行っているのであれば、受信ＴＣＰパケットに対するＴＣＰアクノリッジの送信を遅らせることで、データ転送レートを減少させ、流入レートを制限することができる。
【００４５】
また、累積レジスタ５００のオーバーフローが発生すると、累積レジスタ５００は、最上位ビットを０に戻してカウントを継続する。ただしこの現象は、後述する全ての第１シフトレジスタ８０１〜第５シフトレジスタ８０５が一巡するまでの間に２回以上発生してはならない。累積レジスタ５００のビット数はこれを考慮して決定する必要がある。
【００４６】
また、起動時等、第１シフトレジスタ８０１〜第５シフトレジスタ８０５のいずれかの値が不定の間は、過負荷を検出しない等の制御を行うことは容易である。
【００４７】
次に、実際の数値を用いて詳細に説明する。図５は、本発明の第１の実施の形態の動作を示す説明図である。図５は、タイマ７００のカウント値が０になる時点ごとの各回路の保持する値を示す。いき値レジスタ６００には、３０が設定される。
【００４８】
図５を参照すると、周期＝４ｔｈでは、第１シフトレジスタ８０１〜第５シフトレジスタ８０５のいずれかの値が不定（または、起動時の初期値）の間は、過負荷情報は、０である。周期＝７ｔｈでは、前周期からの累積レジスタ５００の増分が４しかなく、アイドルタスクの動作時間が減少し、負荷が増加している。その結果、第１シフトレジスタ８０１の値−第５シフトレジスタ８０５の値である「移動平均」が減少し、いき値レジスタ６００の閾値３０を下回っており、過負荷情報に１が設定されている。
【００４９】
本発明の第１の実施の形態の第１の効果は、過負荷状態の検出の精度を向上できることである。その理由は、複数段の第１シフトレジスタ８０１〜第５シフトレジスタ８０５を設ける構成をとるからである。
【００５０】
アプリケーションタスクの処理の一時的な輻輳状態により、一時的にアイドルタスク動作率が低くなってしまうことがあるが、短周期での毎回測定では、この一時的な輻輳状態によりアイドルタスク動作率の低下を検出し、負荷低減制御を頻繁に実施してしまう危険がある。第１シフトレジスタ８０１〜第５シフトレジスタ８０５により、長周期でアイドルタスク動作率の推移を測定することが可能となり、安定した負荷低減制御を実施することが可能となる。
【００５１】
また、本発明の第１の実施の形態の第２の効果は、プロセッサ１００のスリープ（消費電力を削減するためのプロセッサ１００のクロック停止による）に対応できることである。その理由は、プロセッサ１００の外部にスリープしない負荷制御回路１５０を設けるからである。
【００５２】
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。図６は、本発明の第２の実施の形態のデータ処理システムの構成を示すブロック図である。図６を参照すると、本発明の第２の実施の形態では、プロセッサ１００が、第１シフトレジスタ８０１〜第５シフトレジスタ８０５の内容をバス３００を介して読み出すことが可能である。ロードコントロールモジュールは、第１シフトレジスタ８０１〜第５シフトレジスタ８０５の内容を取り込む。
【００５３】
したがって、本発明の第２の実施の形態の効果は、障害等が発生した場合に、負荷状態との関連を調べるための情報（第１シフトレジスタ８０１〜第５シフトレジスタ８０５の値）を入手できることである。
【図面の簡単な説明】
【００５４】
【図１】本発明の第１の実施の形態のデータ処理システムの構成を示すブロック図。
【図２】本発明の第１の実施の形態のデータ処理システム動作を示すフローチャート。
【図３】本発明の第１の実施の形態のデータ処理システム動作を示すフローチャート。
【図４】本発明の第１の実施の形態のデータ処理システム動作を示すフローチャート。
【図５】本発明の第１の実施の形態の動作を示す説明図。
【図６】本発明の第２の実施の形態のデータ処理システムの構成を示すブロック図。
【符号の説明】
【００５５】
１００    プロセッサ
１５０    負荷制御回路
２００    主記憶装置
３００    バス
４００    アイドルカウンタ
５００    累積レジスタ
６００    いき値レジスタ
７００    タイマ
８０１    第１シフトレジスタ
８０２    第２シフトレジスタ
８０３    第３シフトレジスタ
８０４    第４シフトレジスタ
８０５    第５シフトレジスタ
９１０    減算回路
９２０    比較回路
９３０    負荷検出・保持回路
【図１】
2008084013.tif 000003
【図２】
2008084013.tif 000004
【図３】
2008084013.tif 000005
【図４】
2008084013.tif 000006
【図５】
2008084013.tif 000007
【図６】
2008084013.tif 000008