(57)【要約】【課題】  複数のプロセッサを用いて通信データをパイプライン処理する場合に、バッファメモリへの通信データの書き込み状態に応じて、前記下流側のプロセッサを省電力状態に遷移させる。【解決手段】    パイプラインを形成する複数のプロセッサと、前記パイプラインの上流側のプロセッサと下流側のプロセッサとの間で上流側のプロセッサから前記下流側のプロセッサに対して出力された通信データを一時的に記憶するバッファメモリとを備える情報処理装置において、バッファメモリへの通信データの書き込み状態に応じて、前記下流側のプロセッサを省電力状態にするように制御することを特徴とする。【選択図】  図２
2014059711.tif 000002
【特許請求の範囲】
【請求項１】
パイプラインを形成する複数のプロセッサと、
前記パイプラインの上流側のプロセッサと下流側のプロセッサとの間で前記上流側のプロセッサから前記下流側のプロセッサに対して出力された通信データを一時的に記憶するバッファメモリと、
前記バッファメモリへの前記通信データの書き込み状態に応じて、前記下流側のプロセッサを省電力状態にする制御手段と、を備えることを特徴とする情報処理装置。
【請求項２】
前記制御手段は、
前記下流側のプロセッサから前記バッファメモリに前記通信データを取り込む要求を行った場合に、前記バッファメモリへの前記通信データの書き込み状態に応じて、前記下流側のプロセッサを省電力状態にする、ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記制御手段は、
前記バッファメモリに前記通信データが無い空状態の場合に、前記下流側のプロセッサを省電力状態にする、ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記省電力状態は、前記下流側のプロセッサがデータ処理を実行できない状態であることを特徴とする、請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記制御手段は、前記下流側のプロセッサの特定のポートに特定の信号を出力することによって、前記プロセッサを前記省電力状態にする、ことを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記制御手段は、前記下流側のプロセッサに入力されるべきクロック信号をゲートすることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項７】
前記バッファメモリは、ＦＩＦＯ式である、ことを特徴とする請求項１乃至６の何れか1項に記載の情報処理装置。
【請求項８】
パイプラインを形成する複数のプロセッサと、前記パイプラインの上流側のプロセッサと下流側のプロセッサとの間で前記上流側のプロセッサから前記下流側のプロセッサに対して出力された通信データを一時的に記憶するバッファメモリと、を備える情報処理装置の制御方法であって、
前記バッファメモリへの前記通信データの書き込み状態に応じて、前記下流側のプロセッサを省電力状態にする制御工程と、を備えることを特徴とする情報処理装置の制御方法。
【請求項９】
パイプラインを形成する複数のプロセッサと、前記パイプラインの上流側のプロセッサと下流側のプロセッサとの間で前記上流側のプロセッサから前記下流側のプロセッサに対して出力された通信データを一時的に記憶するバッファメモリと、を備える情報処理装置を制御するコンピュータを、
前記バッファメモリへの前記通信データの書き込み状態に応じて、前記下流側のプロセッサを省電力状態にする制御手段として機能させるプログラム。
【請求項１０】
パイプラインを形成する複数のプロセッサと、前記パイプラインの上流側のプロセッサと下流側のプロセッサとの間で前記上流側のプロセッサから前記下流側のプロセッサに対して出力された通信データを一時的に記憶するバッファメモリと、を備える情報処理装置を制御するコンピュータを、
前記バッファメモリへの前記通信データの書き込み状態に応じて、前記下流側のプロセッサを省電力状態にする制御手段として機能させるプログラムを記録したコンピュータが読み取り可能な記憶媒体。
【請求項１１】
パイプラインを形成する複数のプロセッサと、
前記パイプラインの上流側のプロセッサと下流側のプロセッサとの間で前記上流側のプロセッサから前記下流側のプロセッサに対して出力された通信データを一時的に記憶するバッファメモリと、
前記バッファメモリへの前記通信データの書き込み状態に応じて、前記上流側のプロセッサを省電力状態にする制御手段と、を備えることを特徴とする情報処理装置。
【請求項１２】
前記制御手段は、
前記上流側のプロセッサから前記バッファメモリに前記通信データを書き込む要求を行った場合に、前記バッファメモリへの前記通信データの書き込み状態に応じて、前記上流側のプロセッサを省電力状態にする、ことを特徴とする請求項１１に記載の情報処理装置。
【請求項１３】
前記制御手段は、
前記バッファメモリに前記通信データが満杯状態の場合に、前記上流側のプロセッサを省電力状態にする、ことを特徴とする請求項１１又は１２に記載の情報処理装置。
【請求項１４】
前記省電力状態は、前記上流側のプロセッサがデータ処理を実行できない状態であることを特徴とする、請求項１１乃至１３のいずれか１項に記載の情報処理装置。
【請求項１５】
前記制御手段は、前記上流側のプロセッサの特定のポートに特定の信号を出力することによって、前記プロセッサを前記省電力状態にする、ことを特徴とする請求項１１乃至１４のいずれか１項に記載の情報処理装置。
【請求項１６】
前記制御手段は、前記上流側のプロセッサに入力されるべきクロック信号をゲートすることを特徴とする請求項１１乃至１４のいずれか１項に記載の情報処理装置。
【請求項１７】
前記バッファメモリは、ＦＩＦＯ式である、ことを特徴とする請求項１１乃至１６の何れか1項に記載の情報処理装置。
【請求項１８】
パイプラインを形成する複数のプロセッサと、前記パイプラインの上流側のプロセッサと下流側のプロセッサとの間で前記上流側のプロセッサから前記下流側のプロセッサに対して出力された通信データを一時的に記憶するバッファメモリと、を備える情報処理装置の制御方法であって、
前記バッファメモリへの前記通信データの書き込み状態に応じて、前記上流側のプロセッサを省電力状態にする制御工程を備えることを特徴とする情報処理装置の制御方法。
【請求項１９】
パイプラインを形成する複数のプロセッサと、前記パイプラインの上流側のプロセッサと下流側のプロセッサとの間で前記上流側のプロセッサから前記下流側のプロセッサに対して出力された通信データを一時的に記憶するバッファメモリと、を備える情報処理装置を制御するコンピュータを、
前記バッファメモリへの前記通信データの書き込み状態に応じて、前記上流側のプロセッサを省電力状態にする制御手段として機能させるプログラム。
【請求項２０】
パイプラインを形成する複数のプロセッサと、前記パイプラインの上流側のプロセッサと下流側のプロセッサとの間で前記上流側のプロセッサから前記下流側のプロセッサに対して出力された通信データを一時的に記憶するバッファメモリと、を備える情報処理装置を制御するコンピュータを、
前記バッファメモリへの前記通信データの書き込み状態に応じて、前記上流側のプロセッサを省電力状態にする制御手段として機能させるプログラムを記録したコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサと、バッファメモリとを用いて通信データをパイプライン処理する情報処理装置、情報処理装置の制御方法、及びプログラムに関ものである。
【背景技術】
【０００２】
プログラムを格納したＲＯＭやプログラムを実行するためのＲＡＭへアクセスするメモリインタフェースとは異なるデータ入出力インタフェースを有するプロセッサがある。このようなプロセッサを複数有し、前記データ入出力インタフェースを用いた画像データの入出力を各プロセッサ間を接続するＦＩＦＯバッファを介して行い、複数のプロセッサを協調動作させて画像処理を行うシステムがある。このような  バッファとプロセッサ間の省電力方法として特許文献１のような技術がある。
【０００３】
特許文献１に記載の装置では信号処理プロセッサ（ＤＳＰ）等で、バッファを間にしたフロントエンド部とバックエンド部の処理速度差があり、バックエンド部がフロントエンド部より処理速度が速い構成である。その構成において、バッファが満状態になってからバックエンド部を稼働し、バッファ内のデータ量が予め設定された閾値以下になるとバックエンド部を停止させることで電力消費を低減させている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２０１１−５１８３６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、プロセッサ間をバッファで接続した画像処理の場合は、特許文献１に記載の装置のようにバッファを境にしたフロントエンド側が一定の速度でバッファへデータ入力するとは限らない。同様に、バッファを境にしたバックエンド側が一定の速度でバッファからデータを取り出すとは限らない。さらに、フロントエンド側とバックエンド側はそれぞれの処理内容に応じてバッファへの入出力が速くなったり遅くなったりする。このようなシステムでは特許文献１に記載の方法では省電力することが難しい。
【０００６】
一方、バッファからデータ入力を行い、プログラムによる画像処理を行うプロセッサの場合、プログラムによりバッファからデータを読み出す命令を実行する際にバッファに対しデータ取り出し要求を出す。このときバッファ内にデータが無い空状態であった場合は、プロセッサはデータが取り出せる状態、すなわちバッファが空状態でなくなるまでバッファが空状態かどうかを監視し続け、次の命令を実行することはない。つまり、バッファが空状態の間、バッファが空状態かどうかを監視する動作を繰り返すだけの無駄な電力消費が課題になっている。
【０００７】
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、複数のプロセッサを用いて通信データをパイプライン処理する場合に、バッファメモリへの通信データの書き込み状態に応じて、前記下流側のプロセッサを省電力状態に遷移させることができる仕組みを提供することである。
【課題を解決するための手段】
【０００８】
上記目的を達成する本発明の情報処理装置は以下に示す構成を備える。
パイプラインを形成する複数のプロセッサと、前記パイプラインの上流側のプロセッサと下流側のプロセッサとの間で前記上流側のプロセッサから前記下流側のプロセッサに対して出力された通信データを一時的に記憶するバッファメモリと、前記バッファメモリへの前記通信データの書き込み状態に応じて、前記下流側のプロセッサを省電力状態にする制御手段と、を備えることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、複数のプロセッサを用いて通信データをパイプライン処理する場合に、バッファメモリへの通信データの書き込み状態に応じて、前記下流側のプロセッサを省電力状態に遷移させることができる。
【図面の簡単な説明】
【００１０】
【図１】情報処理装置を適用する画像処理システムの一例を示す図である。
【図２】情報処理装置の電力制御を説明するブロック図である。
【図３】情報処理装置のデータ処理状態を説明するタイミングチャートである。
【図４】情報処理装置のデータ処理例を説明するフローチャートである。
【図５】本実施形態を示す情報処理装置の制御を説明するブロック図である。
【図６】本実施形態を示す情報処理装置の制御を説明するブロック図である。
【図７】本実施形態を示す情報処理装置の制御を説明するブロック図である。
【図８】情報処理装置の電力制御を説明するタイミングチャートである。
【発明を実施するための形態】
【００１１】
次に本発明を実施するための最良の形態について図面を参照して説明する。
＜システム構成の説明＞
〔第１実施形態〕
【００１２】
図１は、本発明の実施形態を示す情報処理装置を適用する画像処理システムの一例を示す図である。本例は、情報処理装置に好適な画像処理システムの例である。また、本画像処理システムは、パイプラインを形成する複数のプロセッサを備え、各プロセッサ間にファーストインファーストアウト型のメモリ（ＦＩＦＯバッファ）をそれぞれ設けて、通信データを上流側のプロセッサから下流側のプロセッサに出力する。以下、各プロセッサと、バッファメモリとを用いて通信データをパイプライン処理する情報処理装置を含むシステムについて説明する。
図１において、１０１、１０６、１０７は画像処理を行うためのプロセッサであり、後述するメモリインタフェースをそれぞれ備える。１０５はＲＯＭで、プロセッサ１０１、１０６、１０７が実行すべきプログラムが格納されている。１０４はＲＡＭで、ＲＯＭ１０５のプログラムをプロセッサ１０１、１０６、１０７が実行する際に使用する。
１１５、１１６、１１７はメモリインタフェースで、プロセッサ１０１、１０６、１０７がＲＡＭ１０４やＲＯＭ１０５にアクセスする。１０２はＦＩＦＯ（ファーストインファーストアウト）バッファで、上流側のプロセッサ１０６と下流側のプロセッサ１０１との間でやり取りされる通信データ（本実施形態では画像データを例とし、以下の説明では画像データとして説明する）を一時的に記憶する。１０３はＦＩＦＯ（ファーストインファーストアウト）バッファで、プロセッサ１０１とプロセッサ１０７間を接続する。
【００１３】
１１０は接続インタフェースで、プロセッサ１０６とバッファ１０２間に設けられる。１１１は接続インタフェースで、ＦＩＦＯバッファ１０２とプロセッサ１０１間に設けられる。１１２は接続インタフェースで、プロセッサ１０１とバッファ１０３間に設けられる。１１３は接続インタフェースで、バッファ１０３とプロセッサ１０７間に設けられる。
【００１４】
このような各プロセッサ間にバッファを接続したパイプライン構成において、プロセッサ１０６はＲＯＭ１０５のプログラムに従い、画像処理した画像データを、接続インタフェース１１０を用いて、下流側のＦＩＦＯバッファ１０２に書き込む。この際、下流側のプロセッサ１０１は、ＲＯＭ１０５のプログラムに従い、上流側のＦＩＦＯバッファ１０２から接続インタフェース１１１を用いて画像データを取り出し、その画像データに対し、あらかじめ設定された画像処理を行う。プロセッサ１０６よりも下流側のプロセッサ１０１は、接続インタフェース１１２を用いて画像処理後の画像データを下流側のＦＩＦＯバッファ１０３に書き込む。さらに下流側のプロセッサ１０７は、ＲＯＭ１０５のプログラムに従い、接続インタフェース１１３を用いて画像データを上流側のＦＩＦＯバッファ１０３から取り出し、あらかじめ設定された画像処理を行う。
【００１５】
図２は、本実施形態を示す情報処理装置の電力制御を説明するブロック図である。本例は、ＦＩＦＯバッファ（ＦＩＦＯ式メモリ）をバッファメモリとして使用する例である。
図２において、２０１はプロセッサであり、２０２はＦＩＦＯ（ファーストインファーストアウト）バッファである。２２１は、プロセッサ２０１のプログラムを格納するＲＯＭである。２２０は、プロセッサ２０１がプログラムを実行する際に用いるＲＡＭである。２２２は、プロセッサ２０１とＲＡＭ２２０、ＲＯＭ２２１を接続するバスである。２１２は、プロセッサ２０１がＲＡＭ２２０、ＲＯＭ２２１にアクセスするためのメモリインタフェースである。
【００１６】
２０３は、ＦＩＦＯバッファ２０２からプロセッサ２０１に接続されるデータ信号（Ｄａｔａ）である。２０４は、プロセッサ２０１がＲＯＭ２２１上のプログラムに従ってバッファ２０２にデータ入力を要求する入力要求信号（ＰｏｐＲｅｑ）である。
２０５は、ＦＩＦＯバッファ２０２の空（データが無い）状態を示す信号（Ｅｍｐｔｙ）である。２１３はプロセッサ２０１におけるメモリインタフェース２１２とは異なる画像データ入力インタフェースであり、所定ビット数のデータ信号２０３、入力要求信号２０４、空状態信号２０５で構成される。ここで、プロセッサ２０１が画像データ入力インタフェース２１３を用いてＦＩＦＯバッファ２０２からデータを取り出す手順は汎用的なプロトコルである。
【００１７】
すなわちプロセッサ２０１は、入力要求信号２０４がＨｉｇｈ状態で、空状態信号２０５がＬｏｗ状態である時のデータ信号２０３の値をＦＩＦＯバッファ２０２から取り出したデータとして入力する。
２１１は状態切替信号で、プロセッサ２０１の特定のポート、本実施形態ではＨＡＬＴポートに入力される。状態切替信号２１１が、Ｌｏｗ（論理０）状態でプロセッサ２０１を省電力状態に遷移させ、Ｈｉｇｈ（論理１）で通常状態に遷移させることができる。
２０８は省電力制御部で、入力要求信号２０４と空状態信号２０５を入力としてプロセッサの省電力状態を制御する。省電力制御部２０８の典型的な回路例としては、入力要求信号２０４と空状態信号２０５が両方Ｈｉｇｈ状態の時、状態切替信号２１１をＨｉｇｈ状態として出力する論理和素子（ＡＮＤゲート）などがある。ここで、省電力制御部２０８は、ＦＩＦＯバッファ２０２に画像データが書き込まれていない状態を前記プロセッサに出力する状態信号とから、プロセッサ２０１の電力状態を通常状態から省電力状態に、あるいは、省電力状態から通常状態に遷移させるための制御信号（状態切替信号２１１）を生成する。なお、プロセッサ２０１のＨＡＬＴポートは、プロセッサ２０１を動作状態を制御する特定のポートとして機能する。
なお、論理回路の構成は、本例に限定されるものではなく、等価な回路応答が期待できるものであれば適用可能である。
【００１８】
本実施形態におけるプロセッサの省電力処理は入力要求信号２０４と空状態信号２０５との状態に応じて、後述する図４のフローに則り、省電力制御部２０８がプロセッサ２０１に出力する状態切替信号２１１を制御することで実現される。
そこで、本実施形態を示す省電力制御部２０８のデータ処理フローについて図３のタイミングチャートおよび図４のフローチャートを用いて説明する。
【００１９】
図３は、本実施形態を示す情報処理装置のデータ処理状態を説明するタイミングチャートである。
図３において、３０１はクロック信号（ＣＬＫ）である。３０２は、図２における空状態信号（Ｅｍｐｔｙ）２０５の動作タイミングであり、Ｈｉｇｈ（論理１）状態が空状態を示し、Ｌｏｗ（論理０）状態がバッファ２０２内にデータが一つ以上存在することを示している。
また、３０３は、図２における入力要求信号（ＰｏｐＲｅｑ）２０４の動作タイミングであり、Ｈｉｇｈ（論理１）状態はプロセッサが入力を要求していることを示し、Ｌｏｗ（論理０）状態が入力を要求していないことを示す。３０４は、図２におけるプロセッサ２０１の状態を示し、３００は各クロックサイクル位置を示すサイクル番号である。
図４は、本実施形態を示す情報処理装置のデータ処理例を説明するフローチャートである。なお、各ステップは、省電力制御部２０８が内部に記憶された制御プログラムを実行することで実現される。
まず、図３に示すサイクル１およびサイクル２において、省電力制御部２０８は、まず、空状態信号２０５が空状態（論理１）かどうか確認する（Ｓ１００）。
【００２０】
この時、上流側のＦＩＦＯバッファメモリ２０２から出力される空状態信号２０５は、図３からサイクル１およびサイクル２ではＬｏｗ状態であるため、Ｓ１１０に遷移して、省電力制御部２０８は、電源断状態であるかどうかを判定する。ここで、電源断でないと省電力制御部２０８が判断した場合は、Ｓ１００に遷移する。そして、図３に示すサイクル３で、空状態信号２０５がＨｉｇｈ状態に遷移するため、Ｓ１００からＳ１０１に遷移する。
Ｓ１０１では、入力要求信号２０４がＬｏｗ状態のため、Ｓ１１０に遷移し、電源断ではないため、再びＳ１００に戻る。
次に、図３に示すサイクル４では、空状態信号２０５、入力要求信号２０４が共にＨｉｇｈ状態に遷移するため、Ｓ１００からＳ１０１、Ｓ１０１からＳ１０２へと遷移する。
【００２１】
そして、Ｓ１０２では、省電力制御部２０８がプロセッサ２０１のＨＡＬＴポートに入力される状態切替信号２１１をＬｏｗ（論理０）状態に遷移させ、プロセッサ２０１を省電力状態に遷移させる。次に、Ｓ１０３にて、省電力制御部２０８は、上流側のＦＩＦＯバッファメモリ２０２から出力される空状態信号２０５がＬｏｗ状態（空状態でない）かどうかを監視する。図３に示すサイクル５からサイクル９までは、空状態信号２０５がＨｉｇｈ状態（空状態）であるため、Ｓ１０３を繰り返す。サイクル１０では上流側のＦＩＦＯバッファメモリ２０２から出力される空状態信号２０５がＬｏｗ（空状態でない）状態に変わる。このため、Ｓ１０４に遷移し、省電力制御部２０８は、状態切替信号２１１をＨｉｇｈ（論理１）状態に遷移させ、プロセッサ２０１を低電力状態から通常状態に遷移させる。
【００２２】
また、図３に示すサイクル１０では、入力要求信号２０４がＨｉｇｈ（論理１）かつ空状態信号２０５がＬｏｗ（論理０）であるため、プロセッサ２０１はデータ信号２０３の値をバッファ２０２から取り出したデータ値として入力を受け付ける。図３に示すサイクル１１からサイクル１３はサイクル１、サイクル２と同様である。
〔第２実施形態〕
【００２３】
上記第１実施形態では、プロセッサの入力要求信号とバッファの空状態信号によるプロセッサの省電力制御について説明した。これに対し、第２実施形態では、プロセッサの出力要求信号（ＰｕｓｈＲｅｑ）と下流側のプロセッサとの間に設けられるＦＩＦＯバッファの満杯状態（データを入れられない状態）信号（Ｆｕｌｌ）によるプロセッサの省電力制御である点が異なる。
図５は、本実施形態を示す情報処理装置の制御を説明するブロック図である。本例は、ＦＩＦＯバッファをバッファメモリとして使用する例である。
【００２４】
図５において、５０１はプロセッサであり、５０２はＦＩＦＯ（ファーストインファーストアウト）バッファである。５２１はＲＯＭで、プロセッサ５０１のプログラムを格納する。５２０はＲＡＭで、プロセッサ５０１がプログラムを実行する際に用いる。
５２２はバスで、プロセッサ５０１とＲＡＭ５２０、ＲＯＭ５２１を接続する。５１２はメモリインタフェースで、プロセッサ５０１がＲＡＭ５２０、ＲＯＭ５２１にアクセスする。５０３はデータ信号で、プロセッサ５０１からＦＩＦＯバッファ５０２に出力される。
【００２５】
５０４は出力要求信号（ＰｕｓｈＲｅｑ）で、上流側のプロセッサ５０１がＲＯＭ５２１上のプログラムに従ってＦＩＦＯバッファ５０２にデータ出力を要求する。５０５は、ＦＩＦＯバッファ５０２の満（データを入れられない）状態を示す状態信号（Ｆｕｌｌ）である。５１３は画像データ出力インタフェースで、プロセッサ５０１におけるメモリインタフェース５１２とは異なり、データ信号５０３、出力要求信号５０４、満杯状態信号５０５で構成される。
【００２６】
プロセッサ５０１が画像データ出力インタフェース５１３を用いてＦＩＦＯバッファ５０２にデータを押し出す手順は汎用的なプロトコルである。
すなわち、プロセッサ５０１は出力要求信号５０４がＨｉｇｈ状態、満杯状態信号５０５がＬｏｗ状態である時、データ信号５０３の値をＦＩＦＯバッファ５０２が取り入れたと判断し、次サイクルで出力要求信号５０４をＬｏｗにする。
【００２７】
５１１は状態切替信号で、プロセッサ５０１の入力インタフェースであり、特定のポート、本実施形態ではＨＡＬＴポートに入力される。状態切替信号５１１がＬｏｗ（論理０）状態でプロセッサ５０１を省電力状態にし、Ｈｉｇｈ（論理１）状態で通常状態に切り替える。５０８は省電力制御部で、出力要求信号５０４と満杯状態信号５０５を入力としてプロセッサを省電力状態にする制御を行う。ここで、省電力制御部５０８は、プロセッサ５０１からＦＩＦＯバッファ５０２に画像データを書き込む要求を行う要求信号と、ＦＩＦＯバッファ５０２から画像データを書き込めない状態をプロセッサ５０１に出力する状態信号とから、プロセッサ５０１の電力状態を通常状態から省電力状態に、あるいは、省電力状態から通常状態に遷移させるための制御信号（状態切替信号５１１）を生成する。なお、プロセッサ５０１のＨＡＬＴポートは、プロセッサ５０１を動作状態を制御する特定のポートとして機能する。
【００２８】
本実施形態と、第１実施形態との構成の違いは、第１実施形態における入力要求信号２０４が、本実施形態ではプロセッサ２０１からの出力要求信号５０４となり、第１実施形態における空状態信号２０５がバッファ５０２が出力する満杯状態信号５０５となる。
その他の構成は第１実施形態と等価で処理フローおよびタイミングも同様である。
すなわち、出力要求信号５０４と満杯状態信号５０５が両方Ｈｉｇｈである時、省電力制御部５０８はプロセッサ５０１の状態切替インタフェース５１１をＬｏｗにする。つまり、省電力制御部５０８がプロセッサ５０１を省電力状態に遷移させた後、満杯状態信号がＬｏｗ状態になると、省電力制御部５０８が状態切替インタフェース５１１をＨｉｇｈ状態にして、プロセッサ５０１を通常状態に戻す。
〔第３実施形態〕
【００２９】
本実施形態は、プロセッサ入力要求信号とプロセッサ入力側バッファの空状態もしくはプロセッサの出力要求信号とプロセッサ出力側のＦＩＦＯバッファの満杯状態信号の組み合わせによってプロセッサの省電力制御を行う点を特徴とする。
【００３０】
図６は、本実施形態を示す情報処理装置の制御を説明するブロック図である。本例は、ＦＩＦＯバッファをバッファメモリとして使用する例である。
図６において、６０１はプロセッサであり、６０２は上流側のＦＩＦＯ（ファーストインファーストアウト）バッファで、プロセッサ６０１に接続される。６１２は下流側のＦＩＦＯ（ファーストインファーストアウト）バッファで、プロセッサ６０１に接続される。
【００３１】
６３１はＲＯＭで、プロセッサ６０１のプログラムを格納する。６３０はＲＡＭで、プロセッサ６０１がプログラムを実行する際に用いる。６３２はバスで、プロセッサ６０１とＲＡＭ６３０、ＲＯＭ６３１を接続する。６３２はメモリインタフェースで、プロセッサ６０１がＲＡＭ６３０、ＲＯＭ６３１にアクセスする。
【００３２】
６０３はデータ信号で、上流側のＦＩＦＯバッファ６０２からプロセッサ６０１に出力される。６０４は入力要求信号（ＰｏｐＲｅｑ）で、プロセッサ６０１がＲＯＭ６３１上のプログラムに従って上流側のＦＩＦＯバッファ６０２にデータ入力を要求する。６０５は、上流側のＦＩＦＯバッファ６０２の空（データが無い）状態であることを示す状態信号である。
【００３３】
６０６は画像データ入力インタフェースで、プロセッサ６０１におけるメモリインタフェース６３２とは異なる画像データ入力インタフェースとして機能し、データ信号６０３、入力要求信号６０４、空状態信号６０５から構成される。
プロセッサ６０１が画像データ入力インタフェース６０６を用いてバッファ６０２からデータを取り出す手順は汎用的なプロトコルである。すなわちプロセッサ６０１は入力要求信号６０４がＨｉｇｈ状態、空状態信号６０５がＬｏｗ状態である時のデータ信号６０３の値をバッファ６０２から取り出した画像データを入力して受け取る。
【００３４】
６１３はデータ信号で、プロセッサ６０１から下流側のＦＩＦＯバッファ６１２に接続される。６１４は出力要求信号（ＰｕｓｈＲｅｑ）で、プロセッサ６０１がＲＯＭ６３１に従って下流側のＦＩＦＯバッファ６１２にデータ出力を要求する。６１５は、ＦＩＦＯバッファ６１２の満（データを入れられない）状態を示す状態信号（Ｆｕｌｌ）である。６１６は画像データ出力インタフェースで、プロセッサ６０１におけるメモリインタフェース６３２とは異なる画像データ出力インタフェースとして機能し、データ信号６１３、出力要求信号６１４、状態信号６１５から構成される。
【００３５】
プロセッサ６０１が画像データ出力インタフェース６１６を用いて、下流側のＦＩＦＯバッファ６１２に画像データを押し出す手順は汎用的なプロトコルである。すなわちプロセッサ６０１は出力要求信号６１４がＨｉｇｈ状態で、満状態を示す状態信号６１５がＬｏｗ状態である時、データ信号６１３の値を下流側のＦＩＦＯバッファ６１２が取り入れたと判断し、次サイクルで出力要求信号６１４をＬｏｗ状態に遷移させる。
【００３６】
６１１は状態切替信号で、プロセッサ６０１の特定のポート、本実施形態ではＨＡＬＴポートに入力される。状態切替信号６１１が、Ｌｏｗ（論理０）状態でプロセッサ６０１を省電力状態にし、Ｈｉｇｈ（論理１）状態で通常状態に切り替えることができる。６０８は省電力制御部で、入力要求信号６０４と空状態信号６０５および出力要求信号６１４と満状態を示す状態信号６１５を入力として、プロセッサ６０１を省電力状態したり、通応状態にしたりする電力制御を実行する。具体的には、省電力制御部６０８がプロセッサ６０１から入力側のバッファメモリＦＩＦＯバッファ６０２に画像データを取り込む要求を行う要求信号と、上流側のＦＩＦＯバッファ６０２に画像データが書き込まれていない状態をプロセッサ６０１に出力する状態信号とから、プロセッサ６０１の電力状態を通常状態から省電力状態に、あるいは、省電力状態から通常状態に遷移させるための第１の制御信号（状態切替信号６１１）を生成する。
また、省電力制御部６０８がプロセッサ６０１から下流側のＦＩＦＯバッファ６１２に画像データを書き込む要求を行う要求信号と、下流側のＦＩＦＯバッファメモリ６１２から画像データを書き込めない状態を下流側のプロセッサ６０１に出力する状態信号とから、前記プロセッサ６０１の電力状態を通常状態から省電力状態に、あるいは、省電力状態から通常状態に遷移させるための第２の制御信号（状態切替信号６１１）を生成する。
なお、プロセッサ６０１のＨＡＬＴポートは、プロセッサ６０１を動作状態を制御する特定のポートとして機能する。
【００３７】
本実施形態は、上記第１、第２実施形態を組み合わせたものである。したがって、省電力制御部６０８は、省電力制御部６０８が入力要求信号６０４と空状態信号６０５が両方Ｈｉｇｈ状態である時は、空状態信号６０５がＬｏｗ状態になるまでプロセッサ６０１の状態切替信号６１１をＬｏｗ状態にする。
【００３８】
あるいは、省電力制御部６０８は、出力要求信号６１４と満状態を示す状態信号６１５が両方Ｈｉｇｈ状態である時は、満状態を示す状態信号６１５がＬｏｗ状態になるまでプロセッサ６０１の状態切替信号６１１をＬｏｗ状態にしてプロセッサ６０１を省電力状態にする。
省電力制御部６０８の典型的な回路例としては、入力要求信号６０４と空状態信号６０５の論理和６２０および出力要求信号６１４と満状態を示す状態信号６１５の論理和６２１を論理積６２２したものが挙げられる。なお、論理回路の構成は、本例に限定されるものではなく、等価な回路応答が期待できるものであれば適用可能である。
その他の構成は第１、第２実施形態と等価であり、処理フローおよびタイミングも同様である。
〔第４実施形態〕
【００３９】
図７は、本実施形態を示す情報処理装置の制御を説明するブロック図である。本例は、ＦＩＦＯバッファをバッファメモリとして使用する例である。
図７において、７０１はプロセッサであり、７０２はＦＩＦＯ（ファーストインファーストアウト）バッファである。７０３はデータ信号で、バッファ７０２からプロセッサ７０１におけるメモリインタフェース以外のデータ入力インタフェースに接続される。
【００４０】
７０４は入力要求信号（ＰｏｐＲｅｑ）で、プロセッサ７０１が図示しないプログラムに従ってバッファ７０２にデータ入力を要求する。７０５は、ＦＩＦＯバッファ７０２の空（データが無い）状態を示す状態信号（Ｅｍｐｔｙ）である。７１１は、プロセッサ７０１のクロック入力である。７１３は省電力制御部で、入力要求信号７０４と空状態信号７０５を入力としてプロセッサ７０１を省電力状態に遷移させたり、通常電力状態に遷移させたりする電力制御を行う。
【００４１】
ＦＩＦＯバッファ７０２内のデータを取り出す手順は汎用的なプロトコルであり、プロセッサ７０１は入力要求信号７０４がＨｉｇｈ状態、空状態信号７０５がＬｏｗ状態である時のデータ信号７０３の値をＦＩＦＯバッファ７０２から取り出したデータとして入力する。
【００４２】
省電力制御部７１３の典型的な回路例としては入力要求信号７０４と空状態信号７０５を論理和素子（ＡＮＤゲート）接続し、その出力をクロック信号７０７の反転クロックで動作するフリップフロップ（Ｆ．Ｆ．）７０９に接続したものをクロックゲート信号とする。このクロックゲート信号を反転した信号とクロック信号７０７を論理和した信号をプロセッサ７０１のクロック入力（クロックポート）７１１に接続する。なお、論理回路の構成は、本例に限定されるものではなく、等価な回路応答が期待できるものであれば適用可能である。
【００４３】
図８は、本実施形態を示す情報処理装置の電力制御を説明するタイミングチャートである。
図８において、８０１はクロック信号で、図７に示したクロック信号７０７に対応する。８０２は、図７における空状態信号７０５の動作タイミングであり、Ｈｉｇｈ（論理１）状態が空状態を示し、Ｌｏｗ（論理０）状態がバッファ７０２内にデータが一つ以上存在することを示している。
また、８０３は、図７における入力要求信号７０４の動作タイミングであり、Ｈｉｇｈ（論理１）はプロセッサが入力を要求していることを示し、Ｌｏｗ（論理０）状態が入力を要求していないことを示す。
【００４４】
８０４は、図７におけるデータ信号７０３の動作タイミングである。８０５はクロックゲート信号で、図７におけるフリップフロップ７０９の出力信号の動作タイミングに対応し、クロック信号７０７をゲートするタイミング信号となる。
８０６は、省電力制御部７１３の出力信号の動作タイミングであり、プロセッサ７０１の入力クロック７１１に入力させるプロセッサクロック信号を示している。８０７は、図７におけるプロセッサ７０１の状態を示す。８００は、各クロックサイクル位置を示すサイクル番号である。
【００４５】
第１実施形態では、省電力制御部２０８がプロセッサ２０１の状態切替信号を出力し、プロセッサ２０１の省電力制御をする場合について説明した。本実施形態では、省電力制御部７１３がプロセッサ７０１の入力クロックのためのクロックポート７１１にクロック信号を出力することにより、プロセッサ７０１の省電力制御する点が第１実施形態と異なる。
なお、プロセッサ７０１のクロックポート７１１は、プロセッサ７０１を動作状態を制御する特定のポートとして機能する。
【００４６】
本実施形態におけるプロセッサ７０１の省電力処理は、入力要求信号７０４と空状態信号７０５の状態に応じて、省電力制御部７１３がプロセッサ７０１の入力クロック７１１に対するクロック信号をクロックゲート信号８０５で制御することで実現される。以下、省電力制御部７１３の動作について図８のタイミングチャートを用いて説明する。
【００４７】
まず、図８におけるサイクル１およびサイクル２、サイクル３は第１実施形態と同じである。サイクル４では空状態信号２０５、入力要求信号２０４共にＨｉｇｈ状態であるため、論理和素子７０８の出力信号はＨｉｇｈ状態となり、反転クロックで動作するフリップフロップ７０９の出力信号７１２はサイクル４のタイミングでＨｉｇｈ状態になる。
【００４８】
この信号の反転論理でとクロック信号７０７の論理和がプロセッサクロック８０６となるため、サイクル５からサイクル１０まではプロセッサクロック８０６はＬｏｗ状態のままとなる。このため、プロセッサ７０１は、プロセッサ状態８０７に示すように省電力状態となる。またサイクル４で入力要求信号８０２がＨｉｇｈ状態に変化するため、プロセッサ７０１がデータを取り込む条件となるが、プロセッサクロック８０６が停止しているため、プロセッサ７０１は画像データを取り込まない。
【００４９】
サイクル１０では空状態信号７０５がＬｏｗ（空状態でない）状態に変わるため、半サイクル後にクロックゲート信号８０５はＬｏｗ状態に変化し、同時にプロセッサクロック８０６が再開し、プロセッサ７０１は通常状態となる。
また、サイクル１０では入力要求信号７０４がＨｉｇｈ（論理１）状態かつ空状態信号７０５がＬｏｗ（論理０）状態であるため、プロセッサ７０１はデータ信号７０３の値をＦＩＦＯバッファ７０２から取り出したデータ値として取り込む。サイクル１１からサイクル１３はサイクル１、サイクル２と同様である点は、第１実施形態と同じである。
各実施形態によれば、プログラムに従いプロセッサが入力バッファにデータ取り出し要求を出した時、あるいは出力バッファにデータ押し出し要求を出した際に、入出力バッファが要求に応えられない間だけプロセッサを省電力状態にする。そのため、プロセッサが他の処理を行っている間は入出力バッファの状態に限らずプロセッサは通常動作できる。これにより、プロセッサの処理性能を全く犠牲にすることなく入出力バッファがプロセッサからの要求に応えられないためにプロセッサが待ち状態で消費していた電力を削減することが可能になる。
【００５０】
本発明の各工程は、ネットワーク又は各種記憶媒体を介して取得したソフトウエア（プログラム）をパソコン（コンピュータ）等の処理装置（ＣＰＵ、プロセッサ）にて実行することでも実現できる。ここで、記憶媒体には、コンピュータが読み取り可能にプログラムが記録されているものとする。
【００５１】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施形態の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。
【符号の説明】
【００５２】
１０１，１０６，１０７  プロセッサ
１０２，１０３  ＦＩＦＯバッファメモリ
【図１】
2014059711.tif 000003
【図２】
2014059711.tif 000004
【図３】
2014059711.tif 000005
【図４】
2014059711.tif 000006
【図５】
2014059711.tif 000007
【図６】
2014059711.tif 000008
【図７】
2014059711.tif 000009
【図８】
2014059711.tif 000010