本実施の形態の情報処理装置の一の実施の形態を説明する。
(実施の形態1)
図1は、本実施の形態の情報処理装置10の機能的構成を示すブロック図である。情報処理装置10は、装置制御部12、及びインターフェース部14(以下、I/F部14と称する)を備える。
装置制御部12は、情報処理装置10全体の制御を行う。具体的には、装置制御部12は、外部装置へ送信する情報をI/F部14へ送信する。また、装置制御部12は、外部装置からI/F部14を介して情報を受信する。
I/F部14は、装置制御部12をネットワークに接続させる。具体的には、I/F部14は、装置制御部12から受け付けた情報を、ネットワークを介して外部装置へ送信する。また、I/F部14は、ネットワークを介して外部装置から受け付けた情報を、装置制御部12へ送信する。なお、ネットワークは、インターネット等の通信網である。
なお、本実施の形態では、I/F部14は、装置制御部12から情報としてパケットを受け付け、外部装置へ送信するとして説明する。同様に、本実施の形態では、I/F部14は、外部装置から情報としてパケットを受け付け、装置制御部12へ送信するとして説明する。
I/F部14は、ホストインターフェース22(以下、ホストI/F22と称する)、ネットワークインターフェース24(以下、NWI/F24と称する)、制御部18、記憶部16、及び記憶部20を備える。
ホストI/F22は、I/F部14と装置制御部12とを接続する。具体的には、ホストI/F22は、装置制御部12からパケットを受け付け、制御部18へ送信する。また、ホストI/F22は、制御部18からパケットを受け付け、装置制御部12へ送信する。
ホストI/F22は、公知の外部I/O接続の仕組みを用いて実現してもよい。また、情報処理装置10全体をLSI(Large Scale Integration)で構成し、装置制御部12、制御部18、記憶部16、及び記憶部20をLSI上の各素子として構成した場合、ホストI/F22は、内部バスにより構成してもよい。
NWI/F24は、I/F部14とネットワークとを接続する。具体的には、NWI/F24は、制御部18から受け付けたパケットを、ネットワークを介して外部装置へ送信する。また、NWI/F24は、外部装置からネットワークを介して受け付けたパケットを、制御部18へ送信する。
なお、NWI/F24は、1000BASE−Tのような有線ネットワークや、IEEE 802.11nのような無線ネットワークに接続できるインターフェースとする。また、NWI/F24の通信方式は、LAN(Local Area Network)向けのネットワークだけではなくLTE(Long Term Evolution)やWiMAX(Worldwide Interoperability for Microwave Access)のようなWAN(Wide Area Network)向けの通信方式やBluetooth(登録商標)のようなパーソナルエリアの通信方式であってもよい。
記憶部16は、装置制御部12から受信したパケットを一時的に記憶する。記憶部20は、ネットワークを介して外部装置から受信した情報を一時的に記憶する。すなわち、記憶部16及び記憶部20は、I/F部14で情報を送受信するときのバッファとして機能する。
制御部18は、CPU(Central Processing Unit)、ROM(Read Only Memory)、及びRAM(Random Access Memory)などを含んで構成されるコンピュータであり、I/F部14全体を制御する。具体的には、制御部18は、第1記憶部26、第2記憶部28、第1記憶部30、及び第2記憶部32へパケットを記憶する制御を行う。
次に、記憶部16、記憶部20、及び制御部18について詳細を説明する。
図2は、I/F部14の機能的構成を詳細に示すブロック図である。
図2に示すように、記憶部16及び記憶部20の各々は、消費電力の異なる複数の記憶部から構成されている。一例として、本実施の形態では、各記憶部16及び記憶部20の各々は、消費電力の異なる2種類の記憶部から構成されている場合を説明する。なお、記憶部16及び記憶部20を構成する消費電力の異なる記憶部の種類は、2種類以上であればよく、2種類に限られない。
具体的には、図2に示すように、本実施の形態では、記憶部16は、第1記憶部26及び第2記憶部28から構成されている。第1記憶部26と第2記憶部28は、互いに消費電力が異なる。同様に、記憶部20は、第1記憶部30、及び第2記憶部32から構成されている。第1記憶部30と第2記憶部32とは、互いに消費電力が異なる。
なお、上記「消費電力」とは、各記憶部(第1記憶部26、第2記憶部28、第1記憶部30、及び第2記憶部32)の消費する電力量の総量を示す。すなわち、各記憶部(第1記憶部26、第2記憶部28、第1記憶部30、及び第2記憶部32)の各々が、状態(詳細後述)の遷移を含まない各々の状態で消費する電力量を示す。
なお、本実施の形態では、各記憶部(第1記憶部26、第2記憶部28、第1記憶部30、第2記憶部32)は、後述する制御部18の制御によって、独立して状態を変更される。状態は、各記憶部(第1記憶部26、第2記憶部28、第1記憶部30、及び第2記憶部32)の機能、性能、及び消費電力の少なくとも1つによって定まる。本実施の形態では、各記憶部(第1記憶部26、第2記憶部28、第1記憶部30、第2記憶部32)は、動作状態と休止状態の2種類の状態に制御されるものとして説明する。
なお、各記憶部(第1記憶部26、第2記憶部28、第1記憶部30、及び第2記憶部32)のとりうる状態の種類は、2種類に限られない。
動作状態とは、各記憶部(第1記憶部26、第2記憶部28、第1記憶部30、及び第2記憶部32)が、読書き可能な状態であることを示す。休止状態とは、各記憶部(第1記憶部26、第2記憶部28、第1記憶部30、及び第2記憶部32)が読書き不可能な状態であることを示す。なお、動作状態は、休止状態に比べて消費電力が大きい。
各記憶部(第1記憶部26、第2記憶部28、第1記憶部30、及び第2記憶部32)の状態の制御は制御部18が行う。制御部18では、各記憶部(第1記憶部26、第2記憶部28、第1記憶部30、及び第2記憶部32)へ供給する電力量や、同期信号の周波数等を制御することで、各記憶部(第1記憶部26、第2記憶部28、第1記憶部30、及び第2記憶部32)の状態を制御する。
また、本実施の形態では、制御部18は、記憶部16の第1記憶部26と第2記憶部28に、異なる優先度のパケットを記憶する制御を行う。同様に、制御部18は、記憶部20の第1記憶部30と第2記憶部32に、互いに異なる優先度のパケットを記憶する制御を行う。
具体的には、本実施の形態では、制御部18は、予め定めた第1優先度以上の高優先度のパケットを、第1記憶部26及び第1記憶部30に記憶する制御を行う。また、制御部18は、第1優先度未満の低優先度のパケットを、第2記憶部28及び第2記憶部32に記憶する制御を行う。記憶するパケットの優先度は、制御部18によって判定される(詳細後述)。第1優先度とは、後述する制御部18が記憶対象のパケットを分類するために用いる閾値である。この第1優先度は、制御部18で予め設定される。
すなわち、記憶部16及び記憶部20の各々は、記憶対象のパケットの優先度に対応する、複数種類の記憶部から構成されている。
なお、第1記憶部26及び第1記憶部30を、第1優先度以上の高優先度のパケットを記憶するための記憶部として用い、第2記憶部28及び第2記憶部32を、第1優先度未満の低優先度のパケットを記憶するための記憶部として用いる場合、これらの記憶部の消費電力は、下記関係を満たすことが好ましい。
この場合、第2記憶部28及び第2記憶部32の非アクセス状態における消費電力は、第1記憶部26及び第1記憶部30の非アクセス状態における消費電力未満であることが好ましい。また、この場合、第2記憶部28及び第2記憶部32は、第1記憶部26及び第1記憶部30に比べて、高速アクセス可能であることが好ましい。
非アクセス状態における消費電力とは、各記憶部(第1記憶部26、第2記憶部28、第1記憶部30、第2記憶部32)の各々に電気的に接続された各部から、各記憶部(第1記憶部26、第2記憶部28、第1記憶部30、第2記憶部32)に、アクセス(情報の読書き)の全くなされていない状態において、各記憶部で記憶されている情報を保持するために必要な電力を示す。
上記各記憶部(第1記憶部26、第2記憶部28、第1記憶部30、第2記憶部32)としては、上記条件を満たす公知の記憶装置を用いればよい。
例えば、第1記憶部26及び第1記憶部30に、DDR(Double Data Rate) SDRAM(Synchronous Dynamic Random Access Memory)(揮発性メモリ)を用い、第2記憶部28及び第2記憶部32に、LPDDR(Low Power Double Data Rate) SDRAM(揮発性メモリ)を用いる。また、第1記憶部26及び第1記憶部30に、LPDDR SDRAM(揮発性メモリ)を用い、第2記憶部28及び第2記憶部32に、MRAM(Magnetoresistive Random Access Memory)(不揮発性メモリ)を用いてもよい。また、第1記憶部26及び第1記憶部30にSRAM(揮発性メモリ)を用い、第2記憶部28及び第2記憶部32にFeRAM(Ferroelectric Random Access Memory)(不揮発性メモリ)を用いてもよい。
なお、各記憶部(第1記憶部26、第2記憶部28、第1記憶部30、第2記憶部32)には、上述した条件を満たす記憶装置を用いればよく、第1記憶部26及び第1記憶部30と、第2記憶部28及び第2記憶部32と、に用いる記憶装置の規格並びに組み合わせは、上述した具体例に限られない。
なお、各第1記憶部26、第1記憶部30、第2記憶部28、及び第2記憶部32は、動作状態または休止状態に遷移するように制御される。ここで、各記憶部(第1記憶部26、第1記憶部30、第2記憶部28、及び第2記憶部32)が動作状態と休止状態との間を遷移する際には、オーバーヘッドが存在する。オーバーヘッドとは、状態遷移の際に消費される電力と時間である。ここで、一般的に、状態間における消費電力の差が大きいほどオーバーヘッドは大きい。また、状態間における消費電力の差が大きいほど、状態遷移に時間がかかる。
このため、頻繁な状態変更は、アクセス頻度の高い記憶部には適さないといえる。このため、本実施の形態では、各記憶部(第1記憶部26、第2記憶部28、第1記憶部30、第2記憶部32)は、事前に想定するアクセス頻度に基づいて、適切な上記記憶装置を選択し、選択した記憶装置上に構築されているとする。
なお、以下では、第1記憶部26と第2記憶部28とは、説明を簡略化するために、下記関係を満たすものとして説明する。具体的には、第2記憶部28の非アクセス状態における消費電力が、第1記憶部26の非アクセス状態における消費電力より低い。また、第1記憶部26は、第2記憶部28に比べて高速動作する。また、これらの第1記憶部26と第2記憶部28とは、動作状態と休止状態の2種類の状態となるように制御されるものとする。
同様に、以下では、第1記憶部30と第2記憶部32とは、下記関係を満たすものとして説明する。具体的には、第2記憶部32の非アクセス状態における消費電力が、第1記憶部30の非アクセス状態における消費電力より低い。また、第1記憶部30は、第2記憶部32に比べて高速動作する。また、これらの第1記憶部30と第2記憶部32とは、動作状態と休止状態の2種類の状態となるように制御されるものとする。
制御部18は、I/F部14を制御する。本実施の形態では、制御部18は、ホストI/F22から受信したパケットの優先度を判別し、判別した優先度に基づいて、第1記憶部26または第2記憶部28にパケットを記憶する制御を行う。また、制御部18は、NWI/F24から受信したパケットの優先度を判別し、判別した優先度に基づいて、第1記憶部30または第2記憶部32にパケットを記憶する制御を行う。
詳細には、制御部18は、分類部34、送信スケジューラ36、状態制御部38、受信スケジューラ40、及び分類部42を備える。
分類部34は、ホストI/F22を介して入力されたパケットを、パケットの優先度に基づいて分類する。分類部34は、ホストI/F22を介して入力されたパケットの優先度を判定する。そして、分類部34は、第1記憶部26及び第2記憶部28の内、判定した優先度に応じた一方の記憶部(第1記憶部26及び第2記憶部28の何れか一方)に、該パケットを記憶する。本実施の形態では、分類部34は、判定した優先度が第1優先度以上の高優先度のパケットを第1記憶部26に記憶する。また、分類部34は、判定した優先度が第1優先度未満の低優先度のパケットを第2記憶部28に記憶する。
分類部42は、NWI/F24を介して入力されたパケットを、パケットの優先度に基づいて分類する。分類部42は、NWI/F24を介して入力されたパケットの優先度を判定する。そして、分類部42は、第1記憶部30及び第2記憶部32の内、判定した優先度に応じた一方の記憶部(第1記憶部30及び第2記憶部32の何れか一方)に、該パケットを記憶する。本実施の形態では、分類部42は、判定した優先度が第1優先度以上の高優先度のパケットを第1記憶部30に記憶する。また、分類部42は、判定した優先度が第1優先度未満の低優先度のパケットを第2記憶部32に記憶する。
優先度とは、第1記憶部26、第2記憶部28、第1記憶部30、及び第2記憶部32に記憶する対象のパケット(情報)の優先度を示す。本実施の形態では、第1優先度以上の高優先度のパケットを、第1記憶部26や第1記憶部30に記憶する。また、第1優先度未満の低優先度のパケットを、第2記憶部28や第2記憶部32へ記憶する。この優先度の判別は、分類部34及び分類部42で行う。分類部34及び分類部42では、参照頻度が高いパケットほど、高優先度のパケットであると判別する。また、分類部34及び分類部42では、重要度の低いパケットほど、高優先度のパケットであると判別する。
参照頻度は、パケットを読書きする頻度を示す。本実施の形態では、分類部34及び分類部42は、パケットの参照頻度が高いほど、高優先度を判定する。一方、分類部34及び分類部42は、参照頻度が高いほど高い優先度を、参照頻度に対応づけて予め分類部34及び分類部42の図示を省略するメモリに記憶しておけばよい。そして、分類部34及び分類部42では、パケットの参照頻度に対応する優先度を読み取ることによって、優先度を判別すればよい。
また、分類部34及び分類部42では、例えば、パケットの特定フィールドに記憶されている値を、参照頻度として読み取り、優先度を判定してもよい。具体的には、分類部34及び分類部42は、IPv4パケットのTOSフィールドやIPv6パケットのFlow Labelフィールド、IEEE 802.1Qの優先度フィールド等に記憶されている優先度を示す情報を、参照頻度として用いてもよい。
また、分類部34及び分類部42では、装置制御部12で実行するアプリケーションに関連付けられた優先度を、参照頻度として用いてもよい。アプリケーションの優先度は、事前にユーザによって設定され、分類部34及び分類部42の図示を省略するメモリに予め記憶すればよい。また、分類部34及び分類部42では、フォアグラウンド実行・バックグラウンド実行の別により、アプリケーションの優先度を定めてもよい。なお、分類部34及び分類部42の図示を省略するメモリに、アプリケーションの優先度と、パケットと、を対応づけた優先度管理テーブルを予め記憶する。そして、分類部34及び分類部42では、受け付けたパケットに対応する優先度を、参照頻度として優先度管理テーブルから読み取ればよい。
重要度は、パケットの喪失に対する影響の大きさによって決定する。すなわち、喪失しては困るパケットには高い重要度が割り当てられる。そのうえで、重要なパケットが電源喪失時に失われないようにするため、本実施の形態では、高い重要度のパケットほど、不揮発メモリを使用する第2記憶部28または第2記憶部32に記憶できるように、意図的に優先度が低いと判定する。すなわち、本実施の形態では、分類部34及び分類部42は、重要度が高いパケットほど、優先度が低いと判定し、揮発性メモリを使用する第1記憶部26または第1記憶部30ではなく、不揮発性メモリを使用する第2記憶部28または第2記憶部32に記憶できるようにする。
なお、制御情報を運ぶパケットや、管理機能に対するパケット等も、重要度の判定基準として用いてもよい。具体的には、制御情報を運ぶパケットである場合には、分類部34及び分類部42では、重要度が高いと判定し、優先度が低いと判定する。また、管理機能に対するパケットである場合には、分類部34及び分類部42では、重要度が高いと判定し、優先度が低いと判定する。このため、制御情報を運ぶパケットや、管理機能に対するパケットは、揮発性メモリを使用する第1記憶部26または第1記憶部30ではなく、不揮発性メモリを使用する第2記憶部28または第2記憶部32に記憶されることとなる。なお、制御情報を運ぶパケットには、SYN/FINやPSHフラグがセットされたTCPパケットが挙げられる。また、管理機能に対するパケットには、ICMPのパケット等が挙げられる。
なお、分類部34及び分類部42では、受け付けたパケットに含まれる情報の重要度を示す信号を該パケットから読み取ることによって、該パケットの重要度を取得すればよい。
また、分類部34及び分類部42では、パケットの参照頻度及び重要度の双方を組み合わせて、パケットの優先度を判別してもよい。また、分類部34及び分類部42では、パケットの参照頻度と、重要度と、その他のパラメータと、に基づいて、パケットの優先度を判別してもよい。
その他のパラメータとしては、受け付けたパケットの送信元の装置、受け付けたパケットの送信先の装置、及び送受信プロトコルが挙げられる。
この場合、分類部34及び分類部42は、参照頻度、重要度、及びその他のパラメータの組合せに対応する優先度を定めた優先度管理テーブルを予め図示を省略するメモリに記憶する。そして、受け付けたパケットの参照頻度、重要度、及びその他のパラメータに対応する優先度を該優先度管理テーブルから読み取り、優先度を判別すればよい。
なお、上述した優先度管理テーブルは、分類部34及び分類部42の各々の図示を省略するメモリに記憶する場合を説明したが、別途記憶部を設けて、該記憶部に優先度管理テーブルを記憶してもよい。これは、分類部34と分類部42が優先度管理テーブルを参照するタイミングは、分類部34と分類部42とが各記憶部(第1記憶部26、第2記憶部28、第1記憶部30、及び第2記憶部32)に記憶するパケットを参照するタイミングとは異なるためである。
上述したように、分類部34及び分類部42では、パケットの優先度に基づいて、パケットを記憶する記憶部(第1記憶部26及び第1記憶部30、または第2記憶部28及び第2記憶部32)を定める。そして、分類部34及び分類部42では、定めた記憶部にパケットを記憶する。また、分類部34及び分類部42では、受け付けたパケットの優先度を示す情報と、受け付けたパケットの記憶先を示す情報を、状態制御部38へ出力する。
状態制御部38は、第1記憶部26、第2記憶部28、第1記憶部30、及び第2記憶部32の状態を制御する。本実施の形態では、状態制御部38は、各記憶部(第1記憶部26、第2記憶部28、第1記憶部30、及び第2記憶部32)を、動作状態または休止状態、の何れかの状態となるように制御する。
状態制御部38は、図示を省略する電源から各記憶部(第1記憶部26、第2記憶部28、第1記憶部30、及び第2記憶部32)へ供給する電力の電圧値や、動作クロック等を制御する。これによって、状態制御部38は、各記憶部(第1記憶部26、第2記憶部28、第1記憶部30、及び第2記憶部32)を、動作状態及び休止状態の何れかの状態に制御する。
状態制御部38は、判別部39を含む。判別部39は、ホストI/F22やNWI/F24から連続してパケットを受信中であるか否かを判別する。連続して、とは、ホストI/F22(受信部)またはNWI/F24(受信部)が所定時間未満の間隔でパケットを受信することを示す。
なお、状態制御部38は、汎用のプログラムが動作するマイクロプロセッサで構成してもよいし、以降に述べる本実施の形態の処理に特化した処理だけが動作する専用回路として構成してもよい。
送信スケジューラ36は、記憶部16の第1記憶部26及び第2記憶部28に記憶されたパケットを、優先度の高い順に取り出してNWI/F24へ送信する。すなわち、送信スケジューラ36は、第1記憶部26及び第2記憶部28の内、より優先度の高いパケットの記憶されている第1記憶部26から順にパケットを読取り、NWI/F24へ送信する。また、送信スケジューラ36は、送信したパケットの記憶されていた第1記憶部26または第2記憶部28を示す情報と、パケット送信を示す情報を状態制御部38へ出力する。
受信スケジューラ40は、記憶部20の第1記憶部30及び第2記憶部32に記憶されたパケットを、優先度の高い順に取り出してホストI/F22へ送信する。すなわち、受信スケジューラ40は、第1記憶部30及び第2記憶部32の内、より優先度の高いパケットの記憶されている第1記憶部30から順にパケットを読取り、ホストI/F22へ送信する。また、受信スケジューラ40は、送信したパケットの記憶されていた第1記憶部30または第2記憶部32を示す情報と、パケット送信を示す情報を状態制御部38へ出力する。
次に、I/F部14が実行する送信処理の手順を説明する。
まず、I/F部14が実行する送信処理における、パケット記憶処理を説明する。図3は、I/F部14が実行する送信処理におけるパケット記憶処理の手順を示すフローチャートである。
まず、分類部34が、所定時間毎またはホストI/F22から通知を受けたときに、ホストI/F22からパケットを受信したか否かを判別する(ステップS100)。ホストI/F22から受信するパケットは、装置制御部12がI/F部14を介して外部装置へと送信するパケットである。
ステップS100で否定判断すると(ステップS100:No)本ルーチンを終了し、肯定判断すると(ステップS100:Yes)ステップS102へ進む。
次に、分類部34が、ホストI/F22から受け付けたパケットの優先度を判定する(ステップS102)。優先度の判定は、上述した方法により行う。
次に、分類部34は、ステップS102で判定したパケットの優先度が、予め定めた第1優先度以上の高優先度であるか否かを判別する(ステップS104)。そして、ステップS102で判定したパケットの優先度が、高優先度である場合には、肯定判断し(ステップS104:Yes)、ステップS106へ進む。
次に、分類部34は、第1記憶部26及び第2記憶部28の内、高優先度に対応する記憶部である第1記憶部26を示す情報を、パケットの記憶先を示す記憶先情報として状態制御部38へ送信する(ステップS106)。
次に、分類部34は、第1記憶部26を動作状態へ遷移させることを示す遷移指示を状態制御部38へ送信する(ステップS107)。
次に状態制御部38は、パケットの記憶先である第1記憶部26が動作状態であるか否かを判別する(ステップS108)。例えば、状態制御部38は、第1記憶部26及び第2記憶部28が、動作状態または休止状態の何れかの状態にあるかを示す状態情報を記憶する。そして、状態制御部38は、該状態情報を、状態制御部38で第1記憶部26または第2記憶部28の状態を制御する度に、制御した状態を示す状態情報に更新する。そして、状態制御部38では、パケットの記憶対象の第1記憶部26に対応する状態情報を読み取ることによって、第1記憶部26が動作状態であるか否かを判別すればよい。なお、ステップS108の判別方法は、この判別方法に限られない。
第1記憶部26が動作状態であると判断すると(ステップS108:Yes)、状態制御部38は、第1記憶部26が動作状態へ遷移済であることを示す遷移済信号を分類部34へ送信する(ステップS111)。一方、上記ステップS108の判断において、第1記憶部26が動作状態ではない、すなわち休止状態であると判断すると(ステップS108:No)、ステップS110へ進む。
ステップS110では、状態制御部38が、第1記憶部26を休止状態から動作状態へと遷移させる(ステップS110)。そして、上記ステップS111へ進む。
上記ステップS111の処理によって、第1記憶部26が動作状態へ遷移済であることを示す遷移済信号を受け付けると、分類部34は、上記ステップS102で高優先度と判定したパケットを、第1記憶部26に記憶する(ステップS112)。そして、本ルーチンを終了する。
一方、上記ステップS102で判定したパケットの優先度が第1優先度未満の低優先度である場合には、上記ステップS104において否定判断し(ステップS104:No)、ステップS114へ進む。
ステップS114において、分類部34は、第1記憶部26及び第2記憶部28の内、低優先度に対応する記憶部である第2記憶部28を示す情報を、パケットの記憶先を示す記憶先情報として状態制御部38へ送信する(ステップS114)。
次に、分類部34は、第2記憶部28を動作状態へ遷移させることを示す遷移指示を状態制御部38へ送信する(ステップS115)。
次に、状態制御部38は、パケットの記憶先である第2記憶部28が動作状態であるか否かを判別する(ステップS116)。例えば、状態制御部38は、第1記憶部26及び第2記憶部28が、動作状態または休止状態の何れかの状態にあるかを示す状態情報を記憶する。そして、状態制御部38は、該状態情報を、状態制御部38で第1記憶部26または第2記憶部28の状態を制御する度に、制御した状態を示す状態情報に更新する。そして、状態制御部38では、パケットの記憶対象の第2記憶部28に対応する状態情報を読み取ることによって、第2記憶部28が動作状態であるか否かを判別すればよい。
第2記憶部28が動作状態であると判断すると(ステップS116:Yes)、状態制御部38は、第2記憶部28が動作状態へ遷移済であることを示す遷移済信号を分類部34へ送信する(ステップS118)。一方、上記ステップS116の判断において、第2記憶部28が動作状態ではない、すなわち休止状態であると判断すると(ステップS116:No)、ステップS117へ進む。
ステップS117では、状態制御部38が、第2記憶部28を休止状態から動作状態へと遷移させる(ステップS117)。そして、上記ステップS118へ進む。
上記ステップS118の処理によって、第2記憶部28が動作状態へ遷移済であることを示す遷移済信号を受け付けると、分類部34は、上記ステップS102で低優先度と判定したパケットを、第2記憶部28に記憶する(ステップS119)。
次に、ステップS120において、状態制御部38の判別部39が、ホストI/F22から連続してパケットを受信中であるか否かを判断する(ステップS120)。そして、連続してパケット受信中であると判断すると(ステップS120:Yes)、本ルーチンを終了する。
一方、連続してパケットを受信中ではない、すなわち、判別部39が、連続して受信するパケット群の最後のタイミングを検出すると、否定判断する(ステップS120:No)。そして、ステップS122へ進む。ステップS120における、連続して受信するパケット群の最後のタイミングの検出には、以下の方法を用いる。例えば、判別部39は、参照間隔をタイマーで管理する方法やパケットのプロトコルシーケンスを考慮する方法等を用いて判別する。なお、プロトコルシーケンスを考慮する方法としては、例えば、TCP接続の終了の検出や、HTTP要求と応答の対応関係を把握して全ての要求に対する応答が得られたことを確認する方法などがある。
ステップS122では、状態制御部38が、第2記憶部28を動作状態から休止状態へと遷移させた後に(ステップS122)、本ルーチンを終了する。
次に、I/F部14が実行する送信処理における、パケット送信処理を説明する。図4は、I/F部14が実行する送信処理におけるパケット送信処理の手順を示すフローチャートである。
まず、送信スケジューラ36は、記憶部16を監視し、第1記憶部26にパケットが記憶されているか否かを判断する(ステップS200)。そして、第1記憶部26にパケットが記憶されていると判断すると(ステップS200:Yes)、送信スケジューラ36は、第1記憶部26に記憶されているパケットを、NWI/F24を介して外部装置へと送信する(ステップS202)。
そして、送信スケジューラ36は、第1記憶部26にパケットが無いか否かを判断する(ステップS204)。すなわち、送信スケジューラ36は、ステップS204において、第1記憶部26に記憶された情報に対する全処理が終了しているか否かを判断する。そして、第1記憶部26にパケットが記憶されている場合には、否定判断し(ステップS204:No)、上記ステップS202へ戻る。一方、第1記憶部26にパケットが無い場合には肯定判断し(ステップS204:Yes)、ステップS205へ進む。
ステップS205では、送信スケジューラ36が、第1記憶部26を休止状態へ遷移させることを示す遷移指示を状態制御部38へ送信する(ステップS205)。
第1記憶部26を休止状態へ遷移させることを示す遷移指示を受け付けると、状態制御部38は、第1記憶部26を動作状態から休止状態に遷移させる(ステップS206)。そして本ルーチンを終了する。
なお、状態制御部38は、第1記憶部26のパケット送信済を示す情報を受け付けたときに、分類部34が高優先度のパケットを判別した場合には、ステップS206の処理を行わずに本ルーチンを終了してもよい。状態制御部38による、分類部34が高優先度のパケットを判別したか否かの判断は、パケットの記憶先情報として第1記憶部26を示す情報を分類部34から受け付けたか否かを判別することによって行えばよい。
上記ステップS200〜ステップS206の処理によって、第1記憶部26に格納された高優先度のパケットは、速やかに送信される。このため、第1記憶部26は、第2記憶部28に比べて短時間で再びアクセスされる可能性が高い。このため、ステップS200〜ステップS206に示すように、状態制御部38は、上記ステップS112でパケットを第1記憶部26に記憶した後は、第1記憶部26を休止状態に遷移させない。すなわち、状態制御部38は、上記ステップS112でパケットを第1記憶部26に記憶した後は、第1記憶部26を動作状態に保持する制御を行う。
なお、本実施の形態における記憶部(第1記憶部26、第2記憶部28、第1記憶部30、第2記憶部32)が、3種類以上の状態を示すとする。この場合には、状態制御部38は、該動作状態への保持に代えて、予め定められた時間もしくは過去のアクセス間隔などから算出した時間内に状態遷移が完了して省電力の効果が得られると判断できる状態に、第1記憶部26を保持する制御を行えばよい。なお、過去のアクセス間隔などから算出した時間内に状態遷移が完了、とは、一度、低消費電力の状態に遷移し、しばらくその状態を維持した後、再びアクセスできる状態に復帰する一連の過程を示す。
一方、上記ステップS200で否定判断した場合(ステップS200:No)、すなわち、第1記憶部26にパケットが無い場合には、ステップS207へ進む。ステップS207では、送信スケジューラ36が、第2記憶部28の動作状態への遷移指示を状態制御部38へ送信する(ステップS207)。
第2記憶部28の動作状態への遷移指示を受け付けた状態制御部38は、第2記憶部28を休止状態から動作状態に遷移させる(ステップS208)。そして、状態制御部38は、第2記憶部28が動作状態へ遷移済であることを示す遷移済信号を送信スケジューラ36へ送信する(ステップS209)。
次に、送信スケジューラ36は、第2記憶部28からパケットを読み出し、NWI/F24を介して外部装置へと送信する(ステップS210)。なお、送信スケジューラ36は、ステップS210の処理において、第2記憶部28に記憶されている予め定めた数のパケットを読み出して送信してもよいし、第2記憶部28に記憶されている全てのパケットを読み出して送信してもよい。このステップS210の処理において送信スケジューラ36が読み出すパケット数は、予め設定すればよい。
次に、送信スケジューラ36が、第2記憶部28の休止状態への遷移指示を状態制御部38へ送信する(ステップS211)。該遷移指示を受け付けた状態制御部38は、第2記憶部28を休止状態に遷移させた後に(ステップS212)、本ルーチンを終了する。
ステップS200〜ステップS212に示すように、第2記憶部28に記憶された低優先度のパケットは、第1記憶部26に記憶された高優先度のパケットが送信された後に送信される。このため、低優先度のパケットが第2記憶部28に記憶されてから送信されるまでの時間は、高優先度のパケットが第1記憶部26に記憶されてから送信されるまでの時間より長い。このため、本実施の形態では、低優先度のパケットを第2記憶部28に記憶する度に、第2記憶部28を休止状態に遷移させる制御を行う。
ただし、低優先度のトラフィックでは、ウェブブラウザによるウェブサイトの閲覧のように、短時間に複数パケットの送受信が集中し、その集中したパケット群の発生が散発的になされる傾向がある。この場合、パケット群の中では格納時間が短く、パケット群と次のパケット群が格納されるまでの時間が長くなる場合がある。このため、状態制御部38では、連続して受信するパケット群の最後のタイミングを検出し、パケットが格納された記憶部(例えば、第1記憶部26または第2記憶部28)を、休止状態に遷移させてもよい。ここで、連続して受信するパケット群の最後のタイミングの検出は、参照間隔をタイマーで管理する方法や、パケットのプロトコルシーケンスを考慮する方法を用いればよい。パケットのプロトコルシーケンスを考慮する方法としては、例えば、TCP接続の終了を検出する方法、HTTP要求と応答の対応関係を把握して全ての要求に対する応答が得られたことを確認する方法がある。
なお、上記ステップS200〜ステップS204の処理では、送信スケジューラ36は、第1記憶部26にパケットが記憶されている間、常に第1記憶部26からパケットを読出して送信する場合を説明した。しかし、送信スケジューラ36は、高優先度のパケットから順にパケットを送信すればよく、この送信方法に限られない。
例えば、送信スケジューラ36は、第1記憶部26に記憶されているパケットをN個(Nは1以上の整数)送信した後に、第2記憶部28に記憶されているパケットを1個送信してもよい。
次に、I/F部14が実行する受信処理の手順を説明する。まず、I/F部14が実行する受信処理における、パケット記憶処理を説明する。
図5は、I/F部14が実行する受信処理におけるパケット記憶処理の手順を示すフローチャートである。
まず、分類部42が、所定時間毎またはNWI/F24から通知を受けたときに、NWI/F24からパケットを受信したか否かを判別する(ステップS300)。NWI/F24から受信するパケットは、ネットワーク及びI/F部14を介して外部装置から装置制御部12へ送信されたパケットである。
ステップS300で否定判断すると(ステップS300:No)本ルーチンを終了し、肯定判断すると(ステップS300:Yes)ステップS302へ進む。
次に、分類部42が、NWI/F24から受け付けたパケットの優先度を判定する(ステップS302)。優先度の判定は、上述した方法により行う。
次に、分類部42は、ステップS302で判定したパケットの優先度が、予め定めた第1優先度以上の高優先度であるか否かを判別する(ステップS304)。そして、ステップS302で判定したパケットの優先度が、高優先度である場合には、肯定判断し(ステップS304:Yes)、ステップS306へ進む。
次に、分類部42は、第1記憶部30及び第2記憶部32の内、高優先度に対応する記憶部である第1記憶部30を示す情報を、パケットの記憶先を示す記憶先情報として状態制御部38へ送信する(ステップS306)。
次に、分類部42は、第1記憶部30を動作状態へ遷移させることを示す遷移指示を状態制御部38へ送信する(ステップS307)。
次に状態制御部38は、パケットの記憶先である第1記憶部30が動作状態であるか否かを判別する(ステップS308)。例えば、状態制御部38は、第1記憶部30及び第2記憶部32が、動作状態または休止状態の何れかの状態にあるかを示す状態情報を記憶する。そして、状態制御部38は、該状態情報を、状態制御部38で第1記憶部30または第2記憶部32の状態を制御する度に、制御した状態を示す状態情報に更新する。そして、状態制御部38では、パケットの記憶対象の第1記憶部30に対応する状態情報を読み取ることによって、第1記憶部30が動作状態であるか否かを判別すればよい。
第1記憶部30が動作状態であると判断すると(ステップS308:Yes)、状態制御部38は、第1記憶部30が動作状態へ遷移済であることを示す遷移済信号を分類部42へ送信する(ステップS311)。一方、上記ステップS308の判断において、第1記憶部30が動作状態ではない、すなわち休止状態であると判断すると(ステップS308:No)、ステップS310へ進む。
ステップS310では、状態制御部38が、第1記憶部30を休止状態から動作状態へと遷移させる(ステップS310)。そして、上記ステップS311へ進む。
上記ステップS311の処理によって、第1記憶部30が動作状態へ遷移済であることを示す遷移済信号を受け付けると、分類部42は、上記ステップS302で高優先度と判定したパケットを、第1記憶部30に記憶する(ステップS312)。そして、本ルーチンを終了する。
一方、上記ステップS302で判定したパケットの優先度が第1優先度未満の低優先度である場合には、上記ステップS304において否定判断し(ステップS304:No)、ステップS314へ進む。
ステップS314において、分類部42は、第1記憶部30及び第2記憶部32の内、低優先度に対応する記憶部である第2記憶部32を示す情報を、パケットの記憶先を示す記憶先情報として状態制御部38へ送信する(ステップS314)。
次に、分類部42は、第2記憶部32を動作状態へ遷移させることを示す遷移指示を状態制御部38へ送信する(ステップS315)。
次に、状態制御部38は、パケットの記憶先である第2記憶部32が動作状態であるか否かを判別する(ステップS316)。例えば、状態制御部38は、第1記憶部30及び第2記憶部32が、動作状態または休止状態の何れかの状態にあるかを示す状態情報を記憶する。そして、状態制御部38は、該状態情報を、状態制御部38で第1記憶部30または第2記憶部32の状態を制御する度に、制御した状態を示す状態情報に更新する。そして、状態制御部38では、パケットの記憶対象の第2記憶部32に対応する状態情報を読み取ることによって、第2記憶部32が動作状態であるか否かを判別すればよい。
第2記憶部32が動作状態であると判断すると(ステップS316:Yes)、状態制御部38は、第2記憶部32が動作状態へ遷移済であることを示す遷移済信号を分類部42へ送信する(ステップS318)。一方、上記ステップS316の判断において第2記憶部32が動作状態ではない、すなわち休止状態であると判断すると(ステップS316:No)、ステップS317へ進む。
ステップS317では、状態制御部38が、第2記憶部32を休止状態から動作状態へと遷移させる(ステップS317)。そして、上記ステップS318へ進む。
上記ステップS318の処理によって、第2記憶部32が動作状態へ遷移済であることを示す遷移済信号を受け付けると、分類部42は、上記ステップS302で低優先度と判定したパケットを、第2記憶部32に記憶する(ステップS319)。
次に、ステップS320において、状態制御部38が、NWI/F24から連続してパケットを受信中であるか否かを、上記ステップS120と同様にして判断する(ステップS320)。そして、連続してパケット受信中であると判断すると(ステップS320:Yes)、本ルーチンを終了する。
一方、連続してパケットを受信中ではない、すなわち、連続して受信するパケット群の最後のタイミングを検出すると、否定判断する(ステップS320:No)。そして、ステップS322へ進む。
ステップS322では、状態制御部38が、第2記憶部32を動作状態から休止状態へと遷移させた後に(ステップS322)、本ルーチンを終了する。
次に、I/F部14が実行する受信処理における、パケット受信処理を説明する。図6は、I/F部14が実行する受信処理におけるパケット受信処理の手順を示すフローチャートである。
まず、受信スケジューラ40は、記憶部20を監視し、第1記憶部30にパケットが記憶されているか否かを判断する(ステップS400)。そして、第1記憶部30にパケットが記憶されていると判断すると(ステップS400:Yes)、受信スケジューラ40は、第1記憶部30に記憶されているパケットを、ホストI/F22を介して装置制御部12へと送信する(ステップS402)。
そして、受信スケジューラ40は、第1記憶部30にパケットが無いか否かを判断する(ステップS404)。すなわち、受信スケジューラ40は、ステップS404において、第1記憶部30に記憶された情報に対する全処理が終了しているか否かを判断する。そして、第1記憶部30にパケットが記憶されている場合には、否定判断し(ステップS404:No)、上記ステップS402へ戻る。一方、第1記憶部30にパケットが無い場合には肯定判断し(ステップS404:Yes)、ステップS405へ進む。
ステップS405では、受信スケジューラ40が、第1記憶部30を休止状態へ遷移させることを示す遷移指示を状態制御部38へ送信する(ステップS405)。
第1記憶部30を休止状態へ遷移させることを示す遷移指示を受け付けると、状態制御部38は、第1記憶部30を動作状態から休止状態に遷移させる(ステップS406)。そして本ルーチンを終了する。
なお、状態制御部38は、第1記憶部30のパケット送信済を示す情報を受け付けたときに、分類部42が高優先度のパケットを判別した場合には、ステップS406の処理を行わずに本ルーチンを終了してもよい。状態制御部38による、分類部42が高優先度のパケットを判別したか否かの判断は、パケットの記憶先情報として第1記憶部30を示す情報を分類部42から受け付けたか否かを判別することによって行えばよい。
一方、上記ステップS400で否定判断した場合(ステップS400:No)、すなわち、第1記憶部30にパケットが無い場合には、ステップS407へ進む。ステップS407では、受信スケジューラ40が、第2記憶部32の動作状態への遷移指示を状態制御部38へ送信する(ステップS407)。
第2記憶部32の動作状態への遷移指示を受け付けた状態制御部38は、第2記憶部32を休止状態から動作状態に遷移させる(ステップS408)。そして、状態制御部38は、第2記憶部32が動作状態へ遷移済であることを示す遷移済信号を受信スケジューラ40へ送信する(ステップS409)。
次に、受信スケジューラ40は、第2記憶部32からパケットを読み出し、ホストI/F22を介して装置制御部12へと送信する(ステップS410)。なお、受信スケジューラ40は、ステップS410の処理において、第2記憶部32に記憶されている予め定めた数のパケットを読み出して送信してもよいし、第2記憶部32に記憶されている全てのパケットを読み出して送信してもよい。このステップS410の処理において受信スケジューラ40が読み出すパケット数は、予め設定すればよい。
次に、受信スケジューラ40が、第2記憶部32の休止状態への遷移指示を状態制御部38へ送信する(ステップS411)。該遷移指示を受け付けた状態制御部38は、第2記憶部32を休止状態に遷移させた後に(ステップS412)、本ルーチンを終了する。
なお、上記ステップS400〜ステップS404の処理では、受信スケジューラ40は、第1記憶部30にパケットが記憶されている間、常に第1記憶部30からパケットを読出して送信する場合を説明した。しかし、受信スケジューラ40は、高優先度のパケットから順にパケットを送信すればよく、この送信方法に限られない。
例えば、受信スケジューラ40は、第1記憶部30に記憶されているパケットをN個(Nは1以上の整数)送信した後に、第2記憶部32に記憶されているパケットを1個送信してもよい。
以上説明したように、本実施の形態の情報処理装置10のI/F部14では、上記ステップS100〜ステップS122の処理を実行することによって、装置制御部12から受け付けたパケットが第1優先度以上の高優先度である場合には、第1記憶部26を動作状態とした後に、該パケットを第1記憶部26に記憶する。また、I/F部14では、装置制御部12から受け付けたパケットが第1優先度未満の低優先度である場合には、第2記憶部28を動作状態とした後に、該パケットを第2記憶部28に記憶する。
また、情報処理装置10のI/F部14では、上記ステップS300〜ステップS322の処理を実行することによって、外部装置から受け付けたパケットが第1優先度以上の高優先度である場合には、第1記憶部30を動作状態とした後に、該パケットを第1記憶部30に記憶する。また、I/F部14では、外部装置から受け付けたパケットが第1優先度未満の低優先度である場合には、第2記憶部32を動作状態とした後に、該パケットを第2記憶部32に記憶する。
このように、本実施の形態の情報処理装置10では、記憶対象の情報であるパケットの優先度を判別し、判別した優先度に基づいて、第1記憶部26及び第1記憶部30、または第2記憶部28及び第2記憶部32にパケットを記憶する。このため、記憶対象の情報を優先度に応じて、消費電力の異なる複数種類の記憶部に分類して記憶することができるので、情報処理装置10の省電力化と、情報処理装置10の性能維持の双方を実現することができる。
また、本実施の形態の情報処理装置10では、情報処理装置10全体の性能や消費電力を下げつつ、高性能な記憶部の使用に伴うコストの増加を抑えることができる。
また、本実施の形態の情報処理装置10では、高優先度のパケット、すなわち高優先度の情報を、第1記憶部26または第1記憶部30に記憶する。そして、情報処理装置10では、低優先度のパケット、すなわち低優先度の情報を、第1記憶部26及び第1記憶部30より非アクセス状態における消費電の低い第2記憶部28及び第2記憶部32へ記憶する。このため、情報処理装置10の省電力化と、情報処理装置10の性能維持の双方を効果的に実現することができる。
また、本実施の形態の情報処理装置10のI/F部14では、記憶してから読み出すまでの時間のより短いパケットを記憶する記憶部として、第2記憶部28及び第2記憶部32に比べて、消費電力は高いが高速メモリである第1記憶部26または第1記憶部30を用いる。そして、I/F部14では、第1記憶部26または第1記憶部30に記憶されているパケットの送信完了後に、第1記憶部26または第1記憶部30を動作状態から休止状態に遷移させる制御を行う。
このため、本実施の形態の情報処理装置10では、頻繁な状態遷移に伴うオーバーヘッドを削減しつつ情報処理装置10として要求される性能を確保できる。
また、本実施の形態の情報処理装置10のI/F部14では、記憶してから読み出すまでの時間のより長いパケットを記憶する記憶部として、第1記憶部26または第1記憶部30に比べて、低速メモリではあるが消費電力の低いメモリである第2記憶部28または第2記憶部32を用いる。このため、第2記憶部28及び第2記憶部32に記憶されたパケットをこれらの第2記憶部28及び第2記憶部32に保持するために必要な電力を削減することができる。
また、本実施の形態の情報処理装置10では、参照頻度の高いパケットほど高い優先度のパケットであると判定する。そして、高優先度のパケットを第1記憶部26や第1記憶部30に記憶し、低優先度のパケットを第2記憶部28や第2記憶部32に記憶する。
このため、処理優先度が高く比較的短い時間の後で参照される可能性の高いパケットと、処理優先度が低く比較的長い時間の後で参照される可能性の高いパケットとを区別し、その記憶場所を調整することができる。このため、情報処理装置10は、消費電力の異なる複数種類の記憶部の混在による性能低下を抑制し、且消費電力削減を図ることができる。
また、本実施の形態の情報処理装置10では、喪失しては困るパケットには高い重要度が割り当てられる。そのうえで、重要なパケットが電源喪失時に失われないようにするため、本実施の形態では、高い重要度のパケットほど、不揮発メモリを使用する第2記憶部28または第2記憶部32に記憶できるように、意図的に優先度が低いと判定する。すなわち、本実施の形態では、分類部34及び分類部42は、重要度が高いパケットほど、優先度が低いと判定し、揮発性メモリを使用する第1記憶部26または第1記憶部30ではなく、不揮発性メモリを使用する第2記憶部28または第2記憶部32に記憶する。
このため、第1記憶部26や第1記憶部30として揮発性メモリを用い、第2記憶部28や第2記憶部32として不揮発性メモリを用いることで、重要度の高いパケットを不揮発性メモリに記憶することができる。このため、電源喪失時の情報喪失リスクの低下を図ることができる。
なお、本実施の形態では、上記ステップS122において、判別部39がホストI/F22から連続してパケットを受信中であると判断した場合には、第2記憶部28の動作状態を維持する場合を説明した。しかし、図3のパケット記憶処理において、ステップS120及びステップS122の処理を所定時間毎に割り込み処理してもよい。この場合、判別部39は、I/F部14で受信したパケットのプロトコルや、I/F部14で受信したパケットの送信元アドレス等を解析することによって、ホストI/F22から連続してパケットを受信中であるか否かを判別すればよい。
また、上記ステップS119の処理によって分類部34が第2記憶部28にパケットを記憶した後で、且つステップS122における判別部39の判断処理の前に、第1記憶部26にパケットが記憶されているか否かを状態制御部38が判別する判別処理を行ってもよい。そして、状態制御部38が、第1記憶部26にパケットが記憶されていないと判別したときには、ステップS120及びステップS122の処理を行わずに本ルーチンを終了する。また、状態制御部38が、第1記憶部26にパケットが記憶されていると判別したときには、ステップS120及びステップS122の処理を行ってもよい。このような処理とすることで、パケットが第2記憶部28に記憶され、且つパケットが第1記憶部26に記憶されていないときには、第2記憶部28を休止状態に遷移させず動作状態で維持することができる。
なお、該状態制御部38の判別処理は、別途監視判別部を設けた構成とし、該監視判別部で行ってもよい。
(実施の形態2)
本実施の形態では、実施の形態1の情報処理装置10とは異なる形態の情報処理装置10Aを説明する。
図7は、本実施の形態の情報処理装置10Aの機能的構成を示すブロック図である。
情報処理装置10Aは、装置制御部12、及びI/F部14Aを備える。I/F部14Aは、ホストI/F22、NWI/F24、第1記憶部17A、制御部18A、及び第2記憶部19Aを備える。なお、ホストI/F22、及びNWI/F24は、実施の形態1と同様である。
第1記憶部17A及び第2記憶部19Aは、ネットワークを介して外部装置から受信した情報や、装置制御部12から外部装置へ送信する情報を、一時的に記憶する。すなわち、第1記憶部17A及び第2記憶部19Aは、ホストI/F22とNWI/F24との転送速度の差を吸収するバッファとして機能する。
なお、第1記憶部17Aと第2記憶部19Aとの関係や機能は、実施の形態1で説明した第1記憶部26と第2記憶部28との関係、及び第1記憶部30と第2記憶部32との関係や機能と同じである。
なお、本実施の形態では、一例として、第1記憶部17Aと第2記憶部19Aとの関係や機能は、下記関係及び機能を満たす場合を説明する。本実施の形態では、第1記憶部17A及び第2記憶部19Aは、消費電力が互いに異なり、第2記憶部19Aの非アクセス状態における消費電力は、第1記憶部17Aの非アクセス状態における消費電力より低い。また、第1記憶部17Aは、第2記憶部19Aに比べて高速動作する。また、これらの第1記憶部17A及び第2記憶部19Aは、動作状態と休止状態の2種類の状態となるように制御される。
なお、I/F部14Aは、消費電力の異なる複数の記憶部を備えた構成であればよく、第1記憶部17A及び第2記憶部19Aの2種類の記憶部を備えた構成に限られない。また、第1記憶部17A及び第2記憶部19Aのとりうる状態の種類は、動作状態と休止状態の2種類に限定されない。
制御部18Aは、CPU、ROM、及びRAMなどを含んで構成されるコンピュータであり、I/F部14A全体を制御する。制御部18Aは、ホストI/F22とNWI/F24とを介して実行する送受信処理が正常に行われるように制御する。制御部18Aでは、ホストI/F22またはNWI/F24から受け付けた情報の優先度を判別する。そして、判別した優先度が第1優先度より高い高優先度の情報を第1記憶部17Aに記憶し、判別した優先度が第1優先度より低い低優先度の情報を第2記憶部19Aに記憶する制御を行う。
なお、図7では、制御部18Aが、第1記憶部17A、第2記憶部19A、ホストI/F22、及びNWI/F24の各々と電気的に接続された構成を示した。しかし、図7に示す構成に加えてさらに、ホストI/F22と第1記憶部17A及び第2記憶部19A、NWI/F24と第1記憶部17A及び第2記憶部19Aも、バス等によって電気的に接続された構成であってもよい。
次に、I/F部14Aが実行する送受信処理の手順を説明する。
図8は、I/F部14Aが実行する送受信処理における受信処理の手順を示すフローチャートである。
まず、制御部18Aが、所定時間毎、または、ホストI/F22あるいはNWI/F24から通知を受けたときに、ホストI/F22またはNWI/F24から情報を受信したか否かを判別する(ステップS500)。ステップS500で否定判断すると(ステップS500:No)本ルーチンを終了し、肯定判断すると(ステップS500:Yes)ステップS502へ進む。
次に、制御部18Aが、ホストI/F22またはNWI/F24から受け付けた情報の優先度を判定する(ステップS502)。優先度の判定は、実施の形態1と同様にして行う。次に、制御部18Aは、ステップS502で判定した情報の優先度が、予め定めた第1優先度以上の高優先度であるか否かを判別する(ステップS504)。そして、ステップS502で判定した情報の優先度が、高優先度である場合には、肯定判断し(ステップS504:Yes)、ステップS508へ進む。
次に、制御部18Aは、第1記憶部17A及び第2記憶部19Aの内、高優先度に対応する記憶部である第1記憶部17Aが動作状態であるか否かを判別する(ステップS508)。例えば、制御部18Aは、第1記憶部17A及び第2記憶部19Aが、動作状態または休止状態の何れかの状態にあるかを示す状態情報を記憶する。そして、制御部18Aは、該状態情報を、制御部18Aで第1記憶部17Aまたは第2記憶部19Aの状態を制御する度に、制御した状態を示す状態情報に更新する。そして、制御部18Aでは、情報の記憶対象の第1記憶部17Aに対応する状態情報を読み取ることによって、第1記憶部17Aが動作状態であるか否かを判別すればよい。
第1記憶部17Aが動作状態ではない、すなわち休止状態であると判断すると(ステップS508:No)、ステップS510へ進む。ステップS510では、制御部18Aが、第1記憶部17Aを休止状態から動作状態へと遷移させる(ステップS510)。そして、ステップS512へ進む。一方、制御部18Aでは、第1記憶部17Aが動作状態であると判断すると(ステップS508:Yes)、ステップS512へ進む。
ステップS512において、制御部18Aは、上記ステップS502で高優先度と判定した情報を、第1記憶部17Aに記憶する(ステップS512)。そして、本ルーチンを終了する。
一方、上記ステップS502で判定した情報の優先度が第1優先度未満の低優先度である場合には、上記ステップS504において否定判断し(ステップS504:No)、ステップS514へ進む。
ステップS514において、制御部18Aは、第1記憶部17A及び第2記憶部19Aの内、低優先度に対応する記憶部である第2記憶部19Aが動作状態であるか否かを、上記ステップ508と同様にして判別する(ステップS514)。
第2記憶部19Aが動作状態であると判断すると(ステップS514:Yes)、ステップS518へ進む。一方、第2記憶部19Aが休止状態と判断すると(ステップS514:No)、ステップS516へ進む。
ステップS516では、制御部18Aが、第2記憶部19Aを休止状態から動作状態へと遷移させる(ステップS516)。そして、ステップS518へ進む。
ステップS518では、制御部18Aは、上記ステップS502で低優先度と判定した情報を、第2記憶部19Aに記憶する(ステップS518)。
次に、ステップS520において、制御部18Aが、ホストI/F22またはNWI/F24から連続して情報を受信中であるか否かを判断する(ステップS520)。そして、連続して情報受信中であると判断すると(ステップS520:Yes)、本ルーチンを終了する。なお、ステップS520の判断は、実施の形態1のステップS120(図3参照)と同様にして行う。
一方、連続して情報を受信中ではないと判定すると、否定判断し(ステップS520:No)。そして、ステップS522へ進む。ステップS522では、制御部18Aが、第2記憶部19Aを動作状態から休止状態へと遷移させた後に(ステップS522)、本ルーチンを終了する。
上記ステップS500〜ステップS522の処理を実行することによって、I/F部14Aでは、装置制御部12から受け付けた情報が第1優先度以上の高優先度である場合には、第2記憶部19Aより非アクセス状態における消費電力が高く且つ高速動作する第1記憶部17Aを動作状態とした後に、該情報を第1記憶部17Aに記憶する。また、I/F部14Aでは、装置制御部12から受け付けた情報が第1優先度未満の低優先度である場合には、第2記憶部19Aより非アクセス状態における消費電力が低く且つ第2記憶部19Aより低速動作する第2記憶部19Aを動作状態とした後に、該情報を第2記憶部19Aに記憶する。また、第2記憶部19Aへの情報記憶後に、連続して情報受信中ではない場合には、第2記憶部19Aを休止状態に遷移させる。
次に、I/F部14Aが実行する送受信処理における、送信処理を説明する。図9は、I/F部14Aが実行する送信処理の手順を示すフローチャートである。
I/F部14Aでは、図8における受信処理において、図9に示す送信処理を割り込み処理する。
まず、制御部18Aは、装置制御部12からホストI/F22を介して、または外部装置からNWI/F24を介して、送信指示を受信したか否かを判断する(ステップS600)。ステップS600で否定判断すると(ステップS600:No)、本ルーチンを終了する。一方、ステップS600で肯定判断すると(ステップS600:Yes)、ステップS602へ進む。
次に、制御部18Aは、より高優先度の情報を記憶する第1記憶部17Aに情報が有るか否か、すなわち、該第1記憶部17Aに情報が記憶されているか否かを判断する(ステップS602)。そして、第1記憶部17Aに情報が記憶されている場合には、肯定判断し(ステップS204:Yes)、ステップS604へ進む。
そして、制御部18Aは、第1記憶部17Aに記憶されている情報を送信する(ステップS604)。詳細には、制御部18Aは、上記ステップS600で受け付けた送信指示に含まれる、送信先を示す情報によって示される送信先に、第1記憶部17Aから読み取った情報を送信する。次に、制御部18Aは、第1記憶部17Aに情報が無いか否かを判断する(ステップS606)。否定判断すると(ステップS606:No)、上記ステップS604へ戻る。すなわち、制御部18Aは、ステップS606において第1記憶部17Aに記憶された情報に対する全処理が終了しているか否かを判断する。一方、制御部18Aは、第1記憶部17Aに情報が無いと判断すると(ステップS606:Yes)、ステップS608へ進む。
ステップS608において、制御部18Aは、第1記憶部17Aを動作状態から休止状態に遷移させる(ステップS608)。そして本ルーチンを終了する。
一方、上記ステップS602で否定判断した場合(ステップS602:No)、すなわち、第1記憶部17Aに情報が無い場合には、ステップS610へ進む。ステップS610では、制御部18Aが、第2記憶部19Aを休止状態から動作状態に遷移させる(ステップS610)。
次に、制御部18Aは、第2記憶部19Aから情報を読み出し送信する(ステップS612)。なお、情報の送信先は、ステップS604と同様である。
次に、制御部18Aは、第2記憶部19Aを休止状態に遷移させた後に(ステップS614)、本ルーチンを終了する。
以上説明したように、本実施の形態の情報処理装置10Aでは、制御部18Aが、記憶対象の情報の優先度を判別し、判別した優先度に基づいて、第1記憶部17Aまたは第2記憶部19A情報を記憶する。このため、制御部18Aが、記憶対象の情報を優先度に応じて、消費電力の異なる複数種類の記憶部に分類して記憶することができるので、情報処理装置10Aの省電力化と、情報処理装置10Aの性能維持の双方を実現することができる。
また、本実施の形態の情報処理装置10Aでは、制御部18Aと第1記憶部17Aと第2記憶部19Aによって、上述した送受信処理実行する。このため、実施の形態1の情報処理装置10においてハードウェアで実行されていた各種処理を、制御部18A上で動作するソフトウェアとして実現することができる。このため、本実施の形態の情報処理装置10Aは、実施の形態1の情報処理装置10で得られる効果に加えて更に、部品点数の削減による部品コストの削減や実装面積の削減や柔軟性の向上を図ることができる。
(実施の形態3)
本実施の形態では、I/F部を制御する制御部についても、動作状態または休止状態に遷移させる場合を説明する。
図10は、本実施の形態の情報処理装置10Bの機能的構成を示すブロック図である。
情報処理装置10Bは、装置制御部12B、及びI/F部14Bを備える。
装置制御部12Bは、実施の形態1及び実施の形態2の装置制御部12と同様に、外部装置へ送信する情報をI/F部14Bへ送信する。また、装置制御部12Bは、装置制御部12と同様に、外部装置からI/F部14Bを介して情報を受信する。
装置制御部12Bは、さらに、制御部18Bを動作状態または休止状態に遷移させるための状態指示信号をI/F部14Bへ出力する。
I/F部14Bは、ホストI/F22B、NWI/F24B、第1記憶部17A、制御部18B、及び第2記憶部19Aを備える。なお、第1記憶部17A及び第2記憶部19Aは、実施の形態2と同様である。
ホストI/F22Bは、外部装置へ送信する情報を装置制御部12Bから受け付ける。また、ホストI/F22Bは、制御部18Bを動作状態または休止状態に遷移させるための状態指示信号を装置制御部12Bから受け付ける。
NWI/F24Bは、装置制御部12Bへ送信する情報を外部装置から受け付ける。また、NWI/F24Bは、制御部18Bを動作状態または休止状態に遷移させるための状態指示信号を外部装置から受け付ける。
制御部18Bは、CPU、ROM、及びRAMなどを含んで構成されるコンピュータであり、I/F部14B全体を制御する。制御部18Bは、実施の形態2の制御部18Aと同様に、ホストI/F22BとNWI/F24Bとを介して実行する送受信処理が正常に行われるように制御する。制御部18Bでは、実施の形態2の制御部18Aと同様に、ホストI/F22BまたはNWI/F24Bから受け付けた情報の優先度を判別する。そして、判別した優先度が第1優先度以上の高優先度の情報を第1記憶部17Aに記憶し、判別した優先度が第1優先度未満の低優先度の情報を第2記憶部19Aに記憶する制御を行う。すなわち、制御部18Bは、実施の形態2の制御部18Aと同様の送受信処理を行う。
本実施の形態の制御部18Bでは、上記送受信処理を行う機能に加えて更に、状態遷移処理を行う機能を有する。具体的には、制御部18Bでは、ホストI/F22BまたはNWI/F24Bから受け付けた状態指示信号によって示される状態に遷移する。更に詳細には、制御部18Bでは、ホストI/F22BまたはNWI/F24Bから動作状態を示す状態指示信号を受け付けると、動作状態に遷移する。一方、制御部18Bでは、ホストI/F22BまたはNWI/F24Bから休止状態を示す状態指示信号を受け付けると、休止状態に遷移する。
次に、制御部18Bが行う状態遷移処理の手順を説明する。なお、制御部18Bでは、実施の形態2の制御部18Aが行う送受信処理を実行する。そして、制御部18Bでは、この送受信処理への割込みルーチンとして、状態遷移処理を実行する。
図11は、制御部18Bが行う状態遷移処理の手順を示すフローチャートである。
制御部18BはホストI/F22BまたはNWI/F24Bから状態指示信号を受信したか否かを判断する(ステップS700)。ステップS700で否定判断すると(ステップS700:No)、本ルーチンを終了する。一方、ステップS700で肯定判断すると(ステップS700:Yes)、ステップS702へ進む。
ステップS702において、制御部18Bは、ステップS700で受け付けた状態指示信号が動作状態を指示する指示信号であるか否かを判断する(ステップS702)。ステップS702で肯定判断し、受け付けた状態指示信号が動作状態への状態遷移指示である場合には(ステップS702:Yes)、ステップS704へ進む。そして、制御部18Bは、動作状態へと遷移し(ステップS704)、本ルーチンを終了する。
具体的には、制御部18Bは、ホストI/F22B及びNWI/F24Bから状態変更指示信号は受け付けるが、それ以外の各種情報や各種信号を受け付けない状態である休止状態から、状態変更指示信号を含む各種信号や各種情報を受け付ける動作状態に遷移する。
一方、上記ステップS702で否定判断し、受け付けた状態指示信号が休止状態への状態遷移指示である場合には(ステップS702:No)、ステップS706へ進む。そして、制御部18Bは、休止状態へと遷移し(ステップS706)、本ルーチンを終了する。
具体的には、制御部18Bは、状態変更指示信号を含む各種信号や各種情報を受け付ける動作状態から、ホストI/F22B及びNWI/F24Bから状態変更指示信号は受け付けるが、それ以外の各種情報や各種信号を受け付けない状態である休止状態に遷移する。
そして、制御部18Bでは、実施の形態2の制御部18Aと同様に、送受信処理を実行すればよい。なお、制御部18Bでは、送受信処理を実行する前に、装置制御部12Bまたは外部装置から、動作状態への遷移を示す状態指示信号を受信するものとする。すなわち、制御部18Bでは、動作状態に遷移した後に、制御部18Aと同様にして送受信処理(図8〜図9参照)を実行する。
なお、制御部18Bでは、更に、図12に示す割り込み処理を所定時間毎に実行してもよい。図12は、制御部18Bが実行する割込み処理の手順を示すフローチャートである。
制御部18Bでは、所定時間毎に、第1記憶部17A及び第2記憶部19Aに記憶されていた全ての情報が送信済みであるか否かを判断する(ステップS710)。ステップS710で否定判断すると(ステップS710:No)、本ルーチンを終了し、肯定判断すると(ステップS710:Yes)ステップS712へ進む。
ステップS712において、制御部18Bは、休止状態に遷移することを示す情報をホストI/F22Bを介して装置制御部12Bへ送信する(ステップS712)。次に制御部18Bは、休止状態へ遷移し(ステップS714)、本ルーチンを終了する。
なお、本実施の形態では、受信した状態指示信号に基づいて、制御部18Bが動作状態または休止状態に遷移する場合を説明した。そして、制御部18Bが動作状態に遷移した後に、制御部18Bが、各要素(第1記憶部17A、第2記憶部19A)の状態を変更する送受信処理を実行する場合を説明した。しかし、第1記憶部17A及び第2記憶部19Aの状態の変更は、ホストI/F22BやNWI/F24Bの制御によって行ってもよい。
以上説明したように、本実施の形態の情報処理装置10Bは、実施の形態2の情報処理装置10Aを更に拡張した機能を有する。すなわち、情報処理装置10Bでは、制御部18Bについても、動作状態または休止状態に遷移する。
このため、本実施の形態の情報処理装置10Bでは、実施の形態1及び実施の形態2で得られる効果に加えてさらに、より消費電力を削減することができる。
(実施の形態4)
実施の形態1〜実施の形態3では、消費電力の異なる記憶部を、I/F部(I/F部14、I/F部14A、I/F部14B)中に構成される一時的な記憶領域として適用した構成を説明した。本実施の形態では、消費電力の異なる記憶部を、情報処理装置本体内における記憶領域として設けた構成を説明する。
図13は、本実施の形態の情報処理装置10Cの機能的構成を示すブロック図である。なお、本実施の形態では、情報処理装置10C自体が、通信装置として機能する。図13に示すように、本実施の形態の情報処理装置10Cは、制御部50、第1記憶部52、第2記憶部54、及びネットワークインターフェース部56(以下NWI/F部56と称する)を備える。
これらの制御部50、第1記憶部52、第2記憶部54、及びNWI/F部56は、バス58によって接続されている。
制御部50は、情報処理装置10C全体を制御する。制御部50は、CPU、ROM、及びRAMなどを含んで構成されるコンピュータであり、情報処理装置10C全体を制御する。なお、情報処理装置10Cでは、実施の形態1〜実施の形態3で説明した送受信プログラムや、その他の各種プログラムや、OS(Operating System)や、各種アプリケーションが動作する。
NWI/F部56は、情報処理装置10Cとネットワークとを接続する。なお、NWI/F部56は、実施の形態1で説明したNWI/F24と同様のインターフェースや通信方式を用いればよい。
第1記憶部52及び第2記憶部54は、各種情報を記憶する。第1記憶部52及び第2記憶部54の関係や機能は、実施の形態1で説明した第1記憶部26と第2記憶部28との関係や機能、及び第1記憶部30と第2記憶部32との関係や機能と同じである。
すなわち、第1記憶部52及び第2記憶部54は、消費電力が互いに異なる。また、第2記憶部54の非アクセス状態における消費電力は、第1記憶部52の非アクセス状態における消費電力より低い。また、第1記憶部52は、第2記憶部54に比べて高速動作する。また、これらの第1記憶部52及び第2記憶部54は、動作状態と休止状態の2種類の状態となるように制御される。
なお、情報処理装置10Cは、ディスクドライブやディスプレイアダプタ等の公知の周辺装置(図示省略)を備えた構成であってもよい。また、情報処理装置10Cでは、制御部50と、第1記憶部52及び第2記憶部54とが電気的に接続されて通信装置としての情報処理装置10Cを構成していればよく、バス58は、制御部50の内部バスであってもよいし、外部バスであってもよい。
なお、制御部50では、ソフトウェアの一つとして、ネットワークを利用するソフトウェア(以下、ネットワークソフトと称する)が動作すると仮定する。制御部50では、制御部50のソフトウェアが生成する情報、及びNWI/F部56を介して受信する情報を、情報の優先度に応じて、第1記憶部52または第2記憶部54に記憶する。第1記憶部52及び第2記憶部54に記憶された情報は、NWI/F部56を介してネットワークに送信、または制御部50で処理される。
次に、制御部50で実行する送受信処理を説明する。図14は、制御部50が実行する送受信処理における、情報記憶処理の手順を示すフローチャートである。
まず、制御部50が、情報を生成する(ステップS800)。なお、制御部50が生成する情報の優先度は、アプリケーションなどのソフトウェアに割り当てられた優先度と一致する。ソフトウェアの優先度の割り当ては、使用者が割り当てたり、アプリケーション開発者が割り当てたり、OSなどにより自動的に判定されたり(フォアグラウンド・バックグラウンドの別等)といった種々の方法で行う。
次に、制御部50は、生成した情報が第1優先度以上の高優先度であるか否かを判別する(ステップS802)。そして、情報の優先度が高優先度である場合には、肯定判断し(ステップS802:Yes)、ステップS804へ進む。
次に、制御部50は、第1記憶部52及び第2記憶部54の内、高優先度に対応する記憶部である第1記憶部52が動作状態であるか否かを判別する(ステップS804)。例えば、制御部50は、第1記憶部52及び第2記憶部54が、動作状態または休止状態の何れかの状態にあるかを示す状態情報を記憶する。そして、制御部50は、該状態情報を、制御部50で第1記憶部52または第2記憶部54の状態を制御する度に、制御した状態を示す状態情報に更新する。そして、制御部50では、情報の記憶対象の第1記憶部52に対応する状態情報を読み取ることによって、第1記憶部52が動作状態であるか否かを判別すればよい。
第1記憶部52が動作状態であると判断すると(ステップS804:Yes)、制御部50は、ステップS806へ進む。一方、第1記憶部52が動作状態ではない、すなわち休止状態であると判断すると(ステップS804:No)、ステップS808へ進む。
ステップS808では、制御部50が、第1記憶部52を休止状態から動作状態へと遷移させる(ステップS808)。そして、ステップS806へ進む。
ステップS806では、制御部50は、ステップS800で生成した高優先度の情報を記憶するため、第1記憶部52からメモリを割り当てる。これによって、該高優先度の情報を第1記憶部52へ記憶する(ステップS806)。そして、本ルーチンを終了する。
なお、ここでいうメモリの割り当てとは、情報を記憶する対象の記憶部(第1記憶部52または第2記憶部54)の物理的なアドレスとネットワークソフトが管理するアドレスとの対応関係を構築することを意味する。例えば、仮想記憶を使用するOSであれば、物理メモリのアドレスとアプリケーションが使用する仮想メモリのアドレスとの対応関係は、OSがページテーブルとして管理している。このテーブルにエントリを作る際に、ある仮想アドレスに対しては第1記憶部52のアドレスを対応づけ、ある仮想アドレスに対しては第2記憶部54のアドレスを対応づけるようにすればよい。また、途中で記憶部(第1記憶部52または第2記憶部54)を変更するような場合には、エントリの物理アドレスを変更すればよい。ただし、その場合は仮想メモリに保存された内容の整合性をとるためにコピー処理を行う必要がある。
一方、生成した情報の優先度が第1優先度未満の低優先度である場合には、上記ステップS802において否定判断し(ステップS802:No)、ステップS810へ進む。
次に、制御部50は、低優先度の情報の記憶先である第2記憶部54が動作状態であるか否かを上記ステップS804と同様にして判別する(ステップS810)。
第2記憶部54が動作状態であると判断すると(ステップS810:Yes)、制御部50は、後述するステップS812へ進む。一方、第2記憶部54が休止状態であると判断すると(ステップS810:No)、制御部50は、第2記憶部54を休止状態から動作状態へと遷移させる(ステップS814)。そして、ステップS812へ進む。
ステップS812では、制御部50は、ステップS800で生成した低優先度の情報を記憶するため、第2記憶部54からメモリを割り当てる。これによって、該低優先度の情報を第2記憶部54へ記憶する(ステップS812)。そして、制御部50は、第2記憶部54を動作状態から休止状態へと遷移させた後に(ステップS816)、本ルーチンを終了する。
次に、制御部50が実行する送受信処理における、送信処理を説明する。図15は、制御部50が実行する送信処理の手順を示すフローチャートである。
まず、制御部50は、より高優先度の情報を記憶する第1記憶部52に情報が有るか否か、すなわち、第1記憶部52に割り当てられている情報があるか否かを判断する(ステップS900)。そして、第1記憶部52に情報が割り当てられている場合には、肯定判断し(ステップS900:Yes)、ステップS902へ進む。
次に、制御部50は、第1記憶部52に割り当てられている情報を、ネットワークに送信可能な形式に整形し、ヘッダ等を付与することでパケットを生成する(ステップS902)。次に、制御部50は、生成したパケットを、NWI/F部56を介して送信する(ステップS904)。
次に、制御部50は、第1記憶部52に割り当てられている情報が無いか否かを判断する(ステップS906)。すなわち、制御部50は、ステップS906において、第1記憶部52に記憶された情報に対する全処理が終了しているか否かを判断する。そして、第1記憶部52に割り当てられている情報が有る場合には否定判断し(ステップS906:No)、上記ステップS902へ戻る。一方、第1記憶部52に割り当てられている情報が無い場合には肯定判断し(ステップS906:Yes)、ステップS908へ進む。
次に、制御部50は、第1記憶部52を動作状態から休止状態に遷移させた後に(ステップS908)、本ルーチンを終了する。
一方、上記ステップS900で否定判断し(ステップS900:No)、第2記憶部54に割り当てられている情報が無い場合には、ステップS910へ進む。そして、制御部50は、第2記憶部54を休止状態から動作状態に遷移させる(ステップS910)。
次に、制御部50は、第2記憶部54に割り当てられている情報を、ネットワークに送信可能な形式に整形し、ヘッダ等を付与することでパケットを生成する(ステップS912)。次に、制御部50は、生成したパケットを、NWI/F部56を介して送信する(ステップS914)。
次に、制御部50は、第2記憶部54を動作状態から休止状態に遷移させた後に(ステップS916)、本ルーチンを終了する。
なお、本実施の形態では、生成した情報の優先度に応じて、該情報を第1記憶部52または第2記憶部54に割り当てる場合を説明した。しかし、優先度が低い情報であっても、ネットワークに送信される前の処理では制御部50が頻繁に参照する可能性が高い。このような状況に対応するため、低優先度の情報についても、パケットを生成するまでは(上記ステップS912参照)、第1記憶部52に記憶し、NWI/F部56へ送信する直前に第2記憶部54に移動させるようにしてもよい。
なお、上記送受信処理において、第1記憶部52を使用する場合には、記憶対象の情報を記憶もしくは該情報を参照したとしても、制御部50は、第1記憶部52を動作状態で維持する。一方、制御部50は、第2記憶部54を使用する場合には、記憶対象の情報を記憶もしくは該情報を参照した後には、原則として、動作状態から休止状態に遷移させる。なお、制御部50は、連続して第2記憶部54を使用すると判断した場合には、記憶対象の情報を記憶もしくは該情報を参照した後であっても、第2記憶部54を動作状態で維持してもよい。
次に、情報処理装置10Cが実行する送受信処理における受信処理を説明する。図16は、情報処理装置10Cが実行する送受信処理における受信処理の手順を示すフローチャートである。
まず、NWI/F部56が、所定時間毎に、外部装置からネットワークを介してパケットを受信したか否かを判別する(ステップS920)。ステップS920で否定判断すると(ステップS920:No)本ルーチンを終了し、肯定判断すると(ステップS920:Yes)ステップS922へ進む。
次に、NWI/F部56が、受け付けたパケットに含まれる情報の優先度を判定する(ステップS922)。優先度の判定は、実施の形態1と同様にして行う。次に、制御部50は、ステップS922で判定された情報の優先度が、第1優先度以上の高優先度であるか否かを判別する(ステップS924)。そして、情報の優先度が、高優先度である場合には、肯定判断し(ステップS924:Yes)、ステップS926へ進む。
次に、制御部50は、第1記憶部52及び第2記憶部54の内、高優先度に対応する記憶部である第1記憶部52が動作状態であるか否かを判別する(ステップS926)。第1記憶部52が動作状態ではない、すなわち休止状態であると判断すると(ステップS926:No)、ステップS930へ進む。ステップS930では、制御部50が、第1記憶部52を休止状態から動作状態へと遷移させる(ステップS930)。そして、ステップS928へ進む。一方、制御部50では、第1記憶部52が動作状態であると判断すると(ステップS926:Yes)、ステップS928へ進む。
ステップS928において、制御部50は、上記ステップS922で高優先度と判定された情報を、第1記憶部52に記憶する(ステップS928)。そして、本ルーチンを終了する。
一方、情報の優先度が第1優先度未満の低優先度である場合には、上記ステップS924において否定判断し(ステップS924:No)、ステップS932へ進む。
ステップS932において、制御部50は、第1記憶部52及び第2記憶部54の内、低優先度に対応する記憶部である第2記憶部54が動作状態であるか否かを判別する(ステップS932)。
第2記憶部54が動作状態であると判断すると(ステップS932:Yes)、ステップS934へ進む。一方、第2記憶部54が休止状態と判断すると(ステップS932:No)、ステップS936へ進む。
ステップS936では、制御部50が、第2記憶部54を休止状態から動作状態へと遷移させる(ステップS936)。そして、ステップS934へ進む。
ステップS934では、制御部50は、上記ステップS922で低優先度と判定された情報を、第2記憶部54に記憶する(ステップS934)。
次に、ステップS938において、制御部50が、第2記憶部54を動作状態から休止状態へと遷移させた後に(ステップS938)、本ルーチンを終了する。
以上説明したように、本実施の形態の情報処理装置10Cでは、制御部50のネットワークソフトが生成した情報の優先度に基づいて、情報処理装置10C内の記憶部(第1記憶部52、第2記憶部54)を選択して該情報を記憶する。
このため、本実施の形態の情報処理装置10Cでは、情報処理装置10Cの更なる省電力化と、情報処理装置10Cの更なる性能維持の双方を実現することができる。
なお、上記では、NWI/F部56が優先度の判定を行う場合を説明した(ステップS922参照)。しかし、外部装置から受け付けたパケットに含まれる情報の優先度の判定は、制御部50で行ってもよい。
制御部50で優先度を判定する場合には下記方法を用いればよい。
例えば、制御部50は、受け付けたパケットを第1記憶部52に一時的に記憶し、該パケットに含まれる情報の優先度の判定を行う方法がある(方法1とする)。また、制御部50は、受け付けたパケットを第2記憶部54に一時的に記憶し、該パケットに含まれる情報の優先度の判定を行う方法を用いてもよい(方法2とする)。また、制御部50は、過去の判定結果に基づいてより多く判定された優先度に対応する記憶部(第1記憶部52または第2記憶部54)に、受け付けたパケットを一時的に記憶し、該パケットに含まれる情報の優先度の判定を行う方法を用いてもよい(方法3とする)。また、制御部50は、直前の判定に用いた記憶部と同じ記憶部(第1記憶部52または第2記憶部54)を用いて、該パケットに含まれる情報の優先度の判定を行ってもよい(方法4とする)。また、制御部50は、第1記憶部52及び第2記憶部54の双方に受け付けたパケットを一時的に記憶して、何れか一方のパケットに含まれる情報の優先度を判定する方法を用いてもよい(方法5とする)。
なお、何れの判定方法を用いた場合であっても、制御部50は、判定した優先度に基づいた記憶部(第1記憶部52または第2記憶部54)に、優先度の判定のために一時的に記憶した記憶部(第1記憶部52または第2記憶部54)から再配置する。
なお、優先度の判定方法として、上記方法3または上記方法4を用いる場合には、過去の判断情報は制御部50で管理するものとし、NWI/F部56に対して保存先を指示しておくことで、記憶先が特定できるようになる。
(実施の形態5)
実施の形態1〜実施の形態4では、情報処理装置10、情報処理装置10A、情報処理装置10B、及び情報処理装置10Cは、各々、ネットワークに接続された装置に適用した場合を説明した。
しかし、これらの情報処理装置10、情報処理装置10A、情報処理装置10B、及び情報処理装置10Cは、ルータや無線LANアクセスポイントなどの、中継装置として実現してもよい。具体的には、これらの情報処理装置(情報処理装置10、情報処理装置10A、情報処理装置10B、及び情報処理装置10C)を、装置制御部を介して電気的に接続した構成とすればよい。
図17は、中継装置1000の一例を示す模式図である。中継装置1000は、2台の情報処理装置10Bを、各情報処理装置10BのホストI/F22Bを介して装置制御部12Bに電気的に接続した構成である。このように、2台の情報処理装置10Bを、各情報処理装置10BのホストI/F22Bを介して装置制御部12Bに電気的に接続した構成の中継装置1000とすることで、NWI/F24B間でパケットの転送が可能となる。
なお、図17に示す中継装置1000は、装置制御部12Bが2つのNWI/F24Bを中継した構成であるが、2つのNWI/F24B間で直接データ転送を行う構成としてもよい。図18は、中継装置1010の一例を示す模式図である。中継装置1010では、2台の情報処理装置10Bが、各情報処理装置10BのホストI/F22B間で直接データ転送を行うように構成されている。そして、装置制御部12Bは、各種指示情報を各ホストI/F22Bを介して制御部18Bに送信する構成としている。
なお、図17及び図18では、2つのNWI/F24B間でデータ転送を行う場合を示したが、3以上のNWI/F24B間でデータ転送してもよい。
なお、実施の形態1〜実施の形態5における、情報処理装置10、情報処理装置10A、情報処理装置10B、及び情報処理装置10Cで実行する送受信処理の各々を実行するためのプログラムは、ROM等に予め組み込まれて提供される。
実施の形態1〜実施の形態5における、情報処理装置10、情報処理装置10A、情報処理装置10B、及び情報処理装置10Cで実行する送受信処理を実行するためのプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
さらに、実施の形態1〜実施の形態5における、情報処理装置10、情報処理装置10A、情報処理装置10B、及び情報処理装置10Cで実行する送受信処理の各々を実行するためのプログラムを、インターネット等のネットワークに接続されたコンピュータ上に記憶し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、実施の形態1〜実施の形態5における、情報処理装置10、情報処理装置10A、情報処理装置10B、及び情報処理装置10Cで実行する送受信処理の各々を実行するためのプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
実施の形態1〜実施の形態5における、情報処理装置10、情報処理装置10A、情報処理装置10B、及び情報処理装置10Cで実行する送受信処理を実行するためのプログラムは、上述した各部を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記ROMからプログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、これらの各機能部が主記憶装置上に生成されるようになっている。
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
なお、実施の形態1〜実施の形態5における、情報処理装置10、情報処理装置10A、情報処理装置10B、及び情報処理装置10Cにおける各記憶部(第1記憶部17A、第2記憶部19A、第1記憶部26、第2記憶部28、第1記憶部30、第2記憶部32)は、制御部18、制御部18A、制御部18Bによって制御されるものとした。実際には、制御部18、制御部18A、制御部18Bの他に、各部へ電力を供給する電源の電圧を制御する種々の部品(電源制御IC等)が必要になる場合がある。このような部品を搭載している場合であっても、本実施の形態の本質は失われず適用できる。