説明

情報処理装置およびプログラム

【課題】転送データの入出力処理に際してより効果的に低消費電力化を行う。
【解決手段】実施形態の情報処理装置は、記憶部上の領域を示す情報と、領域を示す情報が格納されるエントリの状態を示す状態情報とを含むデスクリプタを作成部が作成し、入出力部による状態情報に従い選択したエントリに示される領域に対するデータの書き込みおよび読み出しのうち少なくとも一方に応じて、更新部が状態情報を更新する。作成部は、デスクリプタを、記憶部に対するデータの書き込みおよび読み出しのうち少なくとも一方が開始される前に予め作成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、情報処理装置およびプログラムに関する。
【背景技術】
【0002】
情報処理装置内の各部を、必要に応じて起動または停止状態に制御し、情報処理装置全体の消費電力を抑制する制御の一つとして、間欠制御と呼ばれる制御方法が知られている。
【0003】
間欠制御の一例として、CPU(Central Processing Unit)が転送データの入出力に関する情報であるデスクリプタ情報を作成し、入力部および出力部がこのデスクリプタ情報を参照して転送データの入出力を制御する方法が知られている。
【0004】
この制御方法によれば、CPUは、デスクリプタ情報を作成してから次のデスクリプタ情報を作成するまでの間、動作を停止させることができる。また、入力部は、デスクリプタ情報を参照して転送データをバッファメモリに格納した後、次の転送データの到来まで動作を停止させる。出力部は、転送データのバッファメモリへの書き込みが終了した時点で起動され、デスクリプタ情報を参照してバッファメモリに書き込まれた転送データを出力する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特許第3792066号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
各入出力部に対して間欠制御を行う場合、入出力処理のイベント(例えば、ネットワークからのフレーム受信)が発生する度に、CPUがデスクリプタ情報を作成することになる。したがって、入力処理のイベントの頻度に比例して、CPU動作のオーバーヘッドが増加するため、スループットが低下するという問題点があった。
【0007】
また、高い低消費電力効果を狙ってCPUを停止させている場合には、デスクリプタ情報の作成などのためにCPUを再スタートさせたり、さらには、必要に応じてオペレーティングシステムやミドルウェアなどを復帰させなければならないことが考えられる。この場合、オーバーヘッドの増加が顕著となってしまうという問題点があった。
【0008】
一方、CPUを停止させるとスループットが低下する可能性が高くなるため、CPUに対して間欠制御を行わないことも考えられる。しかしこの場合、CPUが動作し続けることになるので、間欠制御による低消費電力化の効果が薄れてしまうという問題点があった。
【0009】
本発明は、上記の問題を鑑みてなされたものであって、転送データの入出力処理に際してより効果的に低消費電力化を行うことを目的とする。
【課題を解決するための手段】
【0010】
実施形態の情報処理装置は、記憶部上の領域を示す情報と、領域を示す情報が格納されるエントリの状態を示す状態情報とを含むデスクリプタを作成部が作成し、入出力部による状態情報に従い選択したエントリに示される領域に対するデータの書き込みおよび読み出しのうち少なくとも一方に応じて、更新部が状態情報を更新する。作成部は、デスクリプタを、記憶部に対するデータの書き込みおよび読み出しのうち少なくとも一方が開始される前に予め作成する。
【図面の簡単な説明】
【0011】
【図1】図1は、既存技術による情報処理装置の一例の機能ブロック図である。
【図2】図2は、既存技術による状態フラグが取り得る値を示す略線図である。
【図3】図3は、既存技術による間欠制御の一例のフローチャートである。
【図4】図4は、既存技術によるデスクリプタ情報の例を示す略線図である。
【図5】図5は、第1の実施形態による情報処理装置の一例の機能ブロック図である。
【図6】図6は、第1の実施形態による状態フラグが取り得る値を示す略線図である。
【図7】図7は、第1の実施形態による間欠制御の一例のフローチャートである。
【図8】図8は、第1の実施形態によるデスクリプタ情報の例を示す略線図である。
【図9】図9は、第1の実施形態によるデスクリプタ情報の例を示す略線図である。
【図10】図10は、第1の実施形態によるデスクリプタ情報の例を示す略線図である。
【図11】図11は、第1の実施形態を適用可能な情報処理装置の一例の構成を示すブロック図である。
【図12】図12は、第2の実施形態による情報処理装置の一例の機能ブロック図である。
【図13】図13は、第2の実施形態による間欠処理の一例のフローチャートである。
【図14】図14は、第3の実施形態による情報処理装置の一例の機能ブロック図である。
【図15】図15は、第3の実施形態による間欠制御の一例のフローチャートである。
【発明を実施するための形態】
【0012】
(既存技術)
以下に、各実施形態に係る情報処理装置について説明する。先ず、理解を容易とするために、既存の技術によるデータ転送方法を適用した情報処理装置について説明する。図1は、既存の技術による間欠制御を行う情報処理装置100の機能を示す一例の機能ブロック図である。
【0013】
情報処理装置100は、第1入出力制御部101、第2入出力制御部102、第1入出力部103、第2入出力部104、間欠制御部105および記憶部106を有する。記憶部106は、コンピュータなどにおけるメインメモリに相当し、第1入出力デスクリプタ情報110および第2入出力デスクリプタ情報112が記憶されると共に、データを一時的に格納するデータバッファ111が設けられる。
【0014】
第1入出力部103は、情報処理装置100のデータの入出力を行うインターフェイス機能を提供する。第1入出力部103の具体的な例としては、ネットワークインターフェイスのコントローラが挙げられる。第1入出力部103は、DMAC(Direct Memory Access Controller)を有する。
【0015】
記憶部106に格納される第1入出力デスクリプタ情報110は、第1入出力部103のDMACから参照されるもので、このDMACがデータ転送を行う上で必要となる情報を含む。より具体的には、第1入出力デスクリプタ情報110は、例えば書き込み先メモリ番地、読み出し元メモリ番地、転送するデータのサイズ情報などのメモリ領域に関する情報を含むエントリからなる。また、このエントリには、エントリの状態を示す情報(状態フラグと呼ぶ)をさらに含む。第1入出力デスクリプタ情報110は、第1入出力制御部101によって更新される。
【0016】
第1入出力制御部101は、第1入出力部103に対して転送指示を与えると共に、第1入出力部103がデータの入出力を行った際に、第1入出力デスクリプタ情報110の更新を行う。第1入出力制御部101および後述する第2入出力制御部102は、CPU(Central Processing Unit)上で動作するソフトウェアとして構成される。なお、CPUは、プログラムに従い、この情報処理装置100の全体の動作を制御する。
【0017】
第2入出力部104は、上述した第1入出力部103と同様に、情報処理装置100におけるデータの入出力を行うインターフェイス機能を提供する部位である。第2入出力部104の具体的な例としては、SD(登録商標)メモリカードのコントローラが挙げられる。第2入出力部104は、DMACを有する。
【0018】
記憶部106に格納される第2入出力デスクリプタ情報112は、第2入出力部104のDMACから参照されるもので、このDMACがデータ転送を行う上で必要となる情報を含む。第2入出力デスクリプタ情報112の構成は、上述した第1入出力デスクリプタ情報110と同様なので、ここでの説明を省略する。第2入出力デスクリプタ情報112は、第2入出力制御部102によって更新される。
【0019】
第2入出力制御部102は、第2入出力部104に対して転送指示を与えると共に、第2入出力部104がデータの入出力を行った際に、第2入出力デスクリプタ情報112の更新を行う。
【0020】
間欠制御部105は、第1入出力部103および第2入出力部104の起動および停止を、間欠的に制御する。また、間欠制御部105は、第1入出力制御部101および第2入出力制御部102による制御が不要な場合に適宜CPUを停止し、必要になった際には、CPUを起動することができる。
【0021】
データバッファ111は、第1入出力部103と第2入出力部104との間で転送されるデータを一時的に格納するために、記憶部106上に設けられた領域である。
【0022】
図2は、既存の技術による状態フラグが取り得る値の遷移を示す。このように、状態フラグは、空き状態50と、割当済み状態51との2の状態を取ることができる。初期値は、空き状態50とされる。第1入出力部103や第2入出力部104がデータバッファ111に対してデータの読み書きを行うに当たり、CPUが第1入出力デスクリプタ情報110や第2入出力デスクリプタ情報112を作成すると、各エントリの状態フラグが空き状態50から割当済み状態51に更新される。なお、実際には、CPUは、状態フラグが割当済み状態51の状態で、各エントリを作成する。
【0023】
また、第1入出力部103や第2入出力部104が、第1入出力デスクリプタ情報110や第2入出力デスクリプタ情報112を参照してデータ転送を行うと、転送されたデータに対応するエントリの状態フラグが割当済み状態51から空き状態50に更新される。
【0024】
図3は、既存技術による間欠制御の一例のフローチャートを示す。間欠制御では、情報処理装置100の各部を、必要に応じて起動/停止することによって、情報処理装置100全体の消費電力を抑制したり、必要最低限に絞る制御を行う。
【0025】
以下では、情報処理装置100の第1入出力部103に対して転送データが入力され、この転送データを第2入出力部104に渡す場合を例にとって説明する。また、第1入出力部103が動作している期間は、第2入出力部104の動作を抑制(停止)し、第2入出力部104が動作している期間は、第1入出力部103の動作を抑制するものとする。
【0026】
ステップS100で、間欠制御部105は、第2入出力部104の動作を停止させるように制御する。それと共に、間欠制御部105は、第1入出力部103を起動させるように制御する。第1入出力部103は、起動され転送データの入力を待機する。次のステップS101で、転送データが第1入出力部103に入力される。
【0027】
第1入出力部103は、転送データが入力された旨を、第1入出力制御部101に通知する。例えば、第1入出力部103は、転送データが入力されると、CPUに対して割り込みを掛ける。この割り込みにより割り込みハンドラが立ち上がり、CPU上で第1入出力制御部101による動作が開始される。
【0028】
次のステップS102で、第1入出力制御部101は、第1入出力部103からのデータ入力の通知に応じて第1入出力デスクリプタ情報110を作成し、記憶部106に書き込む。図4(a)は、この第1入出力デスクリプタ情報110の例を示す。第1入出力デスクリプタ情報110において、入力される転送データに応じて、データバッファ111における当該転送データの書き込み先番地とサイズ情報とを含むエントリが作成される。それと共に、割当済み状態51を示す状態フラグが当該エントリに格納される。
【0029】
第1入出力制御部101は、第1入出力デスクリプタ情報110の書き込みを行うと、第1入出力部103に対して第1入出力デスクリプタ情報110の準備が整った旨を伝え、転送データの転送を指示する。
【0030】
次のステップS103で、第1入出力部103は、第1入出力制御部101からの転送指示に従い、転送データをデータバッファ111に書き込む。すなわち、第1入出力部103は、ステップS102で記憶部106に書き込まれた第1入出力デスクリプタ情報110を参照して、状態フラグが割当済み状態51を示しているエントリから書き込み先番地とサイズ情報とを取得し、取得されたこれらの情報に従い転送データをデータバッファ111に書き込む。書き込みが終了すると、第1入出力部103は、その旨を間欠制御部105に通知する。
【0031】
間欠制御部105は、第1入出力部103による転送データの書き込みが終了した旨が通知されると、次のステップS104で、第1入出力部103に対して動作停止の指示を出すと共に、第2入出力部104に対して起動の指示を出す。この指示に応じて、第2入出力部104が起動される。
【0032】
処理はステップS105に移行し、第2入出力部104が起動されると、第2入出力制御部102は、第2入出力デスクリプタ情報112を作成し、記憶部106に書き込む。図4(b)は、この第2入出力デスクリプタ情報112の例を示す。第2入出力デスクリプタ情報112において、転送データが書き込まれている読み出し元番地と、転送データの転送先を示す書き込み先番地と、読み出しの際のデータサイズを示すサイズ情報からなるエントリが作成される。それと共に、割当済み状態51を示す状態フラグが当該エントリに格納される。
【0033】
第2入出力制御部102は、第2入出力デスクリプタ情報112の書き込みを行うと、第2入出力部104に対して第2入出力デスクリプタ情報112の準備が整った旨を伝え、転送データの読み出しを指示する。
【0034】
次のステップS106で、第2入出力部104は、第2入出力デスクリプタ情報112を参照し、状態フラグが割当済み状態51を示しているエントリから読み出し元番地、書き込み先番地およびサイズ情報を取得する。そして、取得した読み出し元番地およびサイズ情報に基づきデータバッファ111から転送データを読み出し、書き込み先番地に対して転送する。転送処理が完了すると、その旨が間欠制御部105に通知される。
【0035】
そして、処理がステップS100に戻され、間欠制御部105により第1入出力部103が起動され、第2入出力部104が停止される。
【0036】
以上説明した既存技術による制御では、ステップS101で転送データが入力される度に、第1入出力制御部101による第1入出力デスクリプタ情報110の書き込みと、第2入出力制御部102による第2入出力デスクリプタ情報112の書き込みとが発生する。そのため、CPUの動作を停止させることが困難であり、間欠制御による低消費電力化の効果も限定的なものとなってしまう。
【0037】
(第1の実施形態)
次に、第1の実施形態について説明する。図5は、本第1の実施形態による情報処理装置1Aの機能を示す一例の機能ブロック図である。情報処理装置1Aは、記憶部200、第1入出力部213、第2入出力部214、間欠制御部215および転送制御部220を有する。
【0038】
記憶部200は、コンピュータなどにおけるメインメモリに相当し、第1入出力デスクリプタ情報210および第2入出力デスクリプタ情報212が記憶されると共に、データを一時的に格納するデータバッファ211が設けられる。なお、図5では、記憶部200が1のメモリからなるように示されているが、これはこの例に限定されず、記憶部200の記憶内容を複数のメモリに分散させてもよい。
【0039】
第1入出力部213および第2入出力部214は、上述した第1入出力部103および第2入出力部104と同様に、情報処理装置1Aのデータの入出力を行うインターフェイス機能を提供する。第1入出力部213および第2入出力部214は、それぞれDMACを有する。
【0040】
記憶部200に格納される第1入出力デスクリプタ情報210は、第1入出力部213のDMACから参照されるもので、このDMACがデータ転送を行う上で必要となる情報を含む。より具体的には、第1入出力デスクリプタ情報210は、例えば読み出し元番地、書き込み先番地、転送するデータのサイズ情報などのメモリ領域に関する情報を含むエントリを有する。なお、サイズ情報は、例えば第1入出力デスクリプタ情報210が転送データの書き込みに関する場合、データバッファ211におけるデータの書き込み単位のデータサイズを用いることができる。各エントリには、当該エントリの状態を示す状態フラグが格納される。本第1の実施形態においては、状態フラグは、当該エントリに示されるメモリ領域の状態をさらに示す。
【0041】
記憶部200に格納される第2入出力デスクリプタ情報212は、第2入出力部214のDMACから参照されるもので、このDMACがデータ転送を行う上で必要となる情報を含む。第2入出力デスクリプタ情報112の構成は、上述した第1入出力デスクリプタ情報210と同様なので、ここでの説明を省略する。なお、例えば第2入出力デスクリプタ情報212が転送データの書き込みに関する場合、サイズ情報は、データバッファ211におけるデータの読み出し単位のデータサイズを用いることができる。
【0042】
図示は省略するが、第1入出力デスクリプタ情報210および第2入出力デスクリプタ情報212は、CPU上でプログラムに従い実行される機能である第1入出力制御機能および第2入出力制御機能により作成および更新される。これら第1入出力制御機能および第2入出力制御機能は、上述した第1入出力制御部101および第2入出力制御部102に相当する。
【0043】
データバッファ211は、上述のデータバッファ111と同様に、第1入出力部213と第2入出力部214との間で転送されるデータを一時的に格納するために、記憶部200上に設けられた領域である。
【0044】
間欠制御部215は、第1入出力部213および第2入出力部214の動作を、間欠的に抑制するように制御する。また、間欠制御部105は、第1入出力制御機能および第2入出力制御機能が第1入出力デスクリプタ情報210および第2入出力デスクリプタ情報212の作成を行わない期間に、適宜CPUの動作を抑制することができる。
【0045】
転送制御部220は、第1入出力部213および第2入出力部214に対して、転送データの転送指示を出す。また、転送制御部220は、第1入出力部213や第2入出力部214による転送データの転送に伴い、第1入出力デスクリプタ情報210や第2入出力デスクリプタ情報212の状態フラグを更新する。
【0046】
図6は、本第1の実施形態による状態フラグが取り得る値の遷移を示す。本第1の実施形態では、状態フラグは、空き状態60と、割当済み状態61と、バッファ済み状態62との3の状態を取ることができる。
【0047】
空き状態60は、空き状態60を示す状態フラグが格納されるエントリが無効とされている状態である。すなわち、空き状態60を示す状態フラグは、そのエントリが未定義、若しくは、当該エントリに格納される情報の使用が終了したことを示す。状態フラグが空き状態60のエントリは、新たな情報で更新することができる。状態フラグの初期値は、この空き状態60とされる。
【0048】
割当済み状態61は、割当済み状態61を示す状態フラグが格納されるエントリが有効とされている状態である。すなわち、割当済み状態61を示す状態フラグは、そのエントリに対して情報が割り当てられ、当該情報が使用待ちになっていることを示す。状態フラグが割当済み状態61のエントリは、更新が禁止される。
【0049】
バッファ済み状態62は、バッファ済み状態62を示す状態フラグが格納されるエントリにおいて、読み出し元番地に示されるデータバッファ211の領域に、読み出し待ちの転送データが格納されていることを示す。バッファ済み状態62を示す状態フラグは、データバッファ211から転送データを読み出す場合にのみ、定義される。
【0050】
状態フラグの初期値は、空き状態60を示す値とされる。第1入出力制御機能や第2入出力制御機能により第1入出力デスクリプタ情報210や第2入出力デスクリプタ情報212が作成され、記憶部200に書き込まれた時点で、各エントリの状態フラグがそれぞれ割当済み状態61にセットされる。状態フラグが空き状態60のエントリを残しておいてもよい。
【0051】
一例として、第1入出力部213が転送データをデータバッファ211に書き込み、第2入出力部214がデータバッファ211から転送データを読み出す場合について考える。この場合、第1入出力部213は、転送データが入力され転送制御部220から転送指示が出されると、第1入出力デスクリプタ情報210を参照し、状態フラグが割当済み状態61とされているエントリを選択し、選択したエントリの情報に従いデータバッファ211に対して転送データを書き込む。
【0052】
転送データの書き込みに伴い、転送制御部220は、第1入出力デスクリプタ情報210における当該エントリの状態フラグを割当済み状態61から空き状態60に更新すると共に、第2入出力デスクリプタ情報212の対応するエントリの状態フラグを割当済み状態61からバッファ済み状態62に更新する。
【0053】
第2入出力部214は、転送制御部220から転送指示が出されると、第2入出力デスクリプタ情報212を参照し、状態フラグがバッファ済み状態62とされているエントリを選択し、当該エントリの情報に従いデータバッファ211から転送データを読み出す。転送データの読み出しに伴い、転送制御部220は、第2入出力デスクリプタ情報212における当該エントリの状態フラグをバッファ済み状態62から空き状態60に更新する。
【0054】
図7は、本第1の実施形態による間欠制御の一例のフローチャートを示す。以下では、情報処理装置1Aの第1入出力部213に対して転送データが入力され、この転送データを第2入出力部214に渡す場合を例にとって説明する。また、第1入出力部213が動作している期間は、第2入出力部214の動作を抑制(停止)し、第2入出力部214が動作している期間は、第1入出力部213の動作を抑制するものとする。
【0055】
なお、例えば第1入出力部213の動作の抑制は、第1入出力部213の動作を停止させることで実現できる。第1入出力部213の動作の停止は、当該第1入出力部213に対する電源の供給を停止することで行う。これに限らず、当該第1入出力部213に対するクロック信号を停止させてもよい。第2入出力部214についても同様である。また、CPU(第1入出力制御機能および第2入出力制御機能)についても、同様にして動作の抑制を行うことができる。以下では、各部についての動作の抑制を、各部の動作を停止することで行うものとして説明する。
【0056】
また、図示は省略するが、情報処理装置1Aは、図1を用いて説明した情報処理装置100において第1入出力デスクリプタ情報110および第2入出力デスクリプタ情報112をそれぞれ更新する、第1入出力制御部101および第2入出力制御部102に相当する機能を有している。これらの機能は、CPUにより実行される。
【0057】
ステップS200で、間欠制御部215は、第2入出力部214の動作を停止させ、第1入出力部213を起動させるように制御する。第1入出力部213は、転送データの入力を待機する。
【0058】
次のステップS201で、第1入出力制御機能および第2入出力制御機能は、第1入出力デスクリプタ情報210および第2入出力デスクリプタ情報212を作成し、記憶部200に書き込む。このとき、第1入出力制御機能および第2入出力制御機能は、例えば、読み出し元番地、書き込み先番地およびサイズ情報として、第1入出力デスクリプタ情報210および第2入出力デスクリプタ情報212それぞれに対して予め定められた値を用いて、各エントリを作成する。それと共に、第1入出力制御機能および第2入出力制御機能は、作成した各エントリに対して、割当済み状態61の状態フラグを格納する。
【0059】
図8(a)は、ステップS201で作成された第1入出力デスクリプタ情報210の例を示す。転送データの書き込み側では、各エントリに含まれる情報は、書き込み先番地およびサイズ情報とされ、各エントリの状態フラグは、割当済み状態61に設定される。なお、書き込み先番地およびサイズ情報を含まないエントリを作成することができ、この場合には、状態フラグを空き状態60に設定する。
【0060】
本第1の実施形態では、エントリを、第1入出力部213に入力される転送データに相当するエントリ数よりも多く、作成しておくとよい。例えば、第1入出力部213に入力される転送データをデータバッファ211に書き込むために2エントリが必要である場合、ステップS201では、3以上のエントリを予め作成しておく。
【0061】
図8(b)は、ステップS201で作成された第2入出力デスクリプタ情報212の例を示す。転送データの読み出し側では、各エントリに含まれる情報は、読み出し元番地、書き込み先番地およびサイズ情報とされ、各エントリの状態フラグは、割当済み状態61に設定される。この場合においても、書き込み先番地およびサイズ情報を含まないエントリを作成することができ、この場合には、状態フラグを空き状態60に設定する。
【0062】
また、第2入出力デスクリプタ情報212においても、エントリを、データバッファ211に書き込まれる転送データ、すなわち、第1入出力部213に入力される転送データに相当するエントリ数よりも多く、作成しておく。このように、第1入出力デスクリプタ情報210および第2入出力デスクリプタ情報212それぞれにおいて、書き込みや読み出しの対象となる転送データに相当するエントリ数よりも多く、エントリを作成しておくことで、CPUを停止できる時間が長くなり、低消費電力化の効果が増大する。
【0063】
また、第1入出力デスクリプタ情報210および第2入出力デスクリプタ情報212について、読み出しに関するデスクリプタ(例えば第2入出力デスクリプタ情報212)の各エントリのサイズ情報の合計が、書き込みに関するデスクリプタ(例えば第1入出力デスクリプタ情報210)の各エントリのサイズ情報の合計以上になるように作成すると好ましい。図8(a)および図8(b)の例では、図8(a)に示される第1入出力デスクリプタ情報210の各エントリのサイズ情報の合計が1024バイトであるのに対し、図8(b)に示される第2入出力デスクリプタ情報212の各エントリのサイズ情報の合計が1536バイトとされている。このようにすることで、後述するステップS210の判定が容易となる。
【0064】
図7のフローチャートの説明に戻り、ステップS201で第1入出力デスクリプタ情報210および第2入出力デスクリプタ情報212の記憶部200に対する書き込みが終了したら、処理がステップS202に移行される。ステップS202では、間欠制御部215がCPUの動作を停止する。この場合、間欠制御部215は、CPU全体の動作を停止させてもよいし、CPUにおける例えば第1入出力制御機能および第2入出力制御機能の動作のみを停止させることも考えられる。
【0065】
次のステップS203で、転送データが第1入出力部213に入力される。転送制御部220から入力された転送データの転送指示が第1入出力部213に渡されると、ステップS204で、第1入出力部213は、転送データをデータバッファ211に書き込む。すなわち、第1入出力部213は、転送指示を受け取ると、記憶部200上の第1入出力デスクリプタ情報210を参照し、状態フラグが割当済み状態61となっているエントリを選択する。そして、選択したエントリに格納される情報に従い、入力された転送データをデータバッファ211に書き込む。転送データの書き込みが終了すると、第1入出力部213は、その旨を転送制御部220に通知する。
【0066】
処理はステップS205に移行され、転送制御部220は、転送データの書き込み終了の通知に応じて、第1入出力デスクリプタ情報210および第2入出力デスクリプタ情報212の状態フラグの更新を行う。すなわち、転送制御部220は、第1入出力デスクリプタ情報210の、転送データが書き込まれた書き込み先番地を含むエントリの状態フラグを、割当済み状態61から空き状態60に更新する。それと共に、転送制御部220は、第2入出力デスクリプタ情報212の、当該書き込み先番地に対応する読み出し元番地を含むエントリの状態フラグを、割当済み状態61からバッファ済み状態62に更新する。
【0067】
図9(a)は、上述した図8(a)の状態からステップS205で状態フラグが更新された第1入出力デスクリプタ情報210の例を示す。この例では、転送データが書き込まれた書き込み先番地を含む第1エントリおよび第2エントリにおいて、状態フラグが割当済み状態61から空き状態60に更新されている。すなわち、第1エントリおよび第2エントリの情報は、転送データが書き込まれたことにより、使用済みとなり、更新することができる。
【0068】
図9(b)は、上述した図8(b)の状態からステップS205で状態フラグが更新された第2入出力デスクリプタ情報212の例を示す。この例では、転送データが書き込まれた書き込み先番地に対応する読み出し元番地を含む第1エントリにおいて、状態フラグが割当済み状態61からバッファ済み状態62に更新されている。
【0069】
ステップS205で状態フラグの更新がなされると、その旨が間欠制御部215に通知され、処理はステップS206に移行される。ステップS206で、間欠制御部215は、状態フラグの更新通知に応じて、第1入出力部213に対して動作停止の指示を出すと共に、第2入出力部214に対して起動の指示を出す。この指示に応じて、第2入出力部214が起動される。第2入出力部214の起動が完了すると、転送制御部220は、第2入出力部214に対して転送指示を出す。
【0070】
次のステップS207で、第2入出力部214は、転送制御部220からの転送指示に応じて、データバッファ211から転送データを読み出す。すなわち、第2入出力部214は、転送指示に応じて、記憶部200上の第2入出力デスクリプタ情報212を参照し、状態フラグがバッファ済み状態62となっているエントリを選択する。そして、第2入出力部214は、選択したエントリに格納される情報に従いデータバッファ211から転送データを読み出し、書き込み先番地で示される書き込み先に転送する。第2入出力部214は、転送データの読み出しが終了すると、その旨を転送制御部220に通知する。
【0071】
次のステップS208で、転送制御部220は、第2入出力部214からの読み出し終了の通知に応じて、第2入出力デスクリプタ情報212の、転送データが読み出された読み出し元番地を含むエントリの状態フラグを、バッファ済み状態62から空き状態60に更新する。
【0072】
図10は、上述した図9(b)の状態からステップS208で状態フラグが更新された第2入出力デスクリプタ情報212の例を示す。この例では、転送データが読み出された読み出し元番地を含む第1エントリにおいて、状態フラグがバッファ済み状態62から空き状態60に更新されている。
【0073】
ステップS208で状態フラグの更新がなされると、その旨が間欠制御部215に通知され、処理はステップS209に移行される。ステップS209で、間欠制御部215は、状態フラグの更新通知に応じて、第2入出力部214に対して動作停止の指示を出すと共に、第1入出力部213に対して起動の指示を出す。この指示に応じて、第1入出力部213が起動される。第1入出力部213は、起動されると、転送データの入力を待機する。
【0074】
次のステップS210で、第1入出力部213は、第1入出力デスクリプタ情報210を参照し、フラグが定義済みのエントリの有無を判定する。例えば、第1入出力部213は、第1入出力デスクリプタ情報210に、状態フラグが割当済み状態61になっているエントリが存在するか否かを判定する。若し、存在すると判定した場合、処理がステップS203に戻され、第1入出力部213により次の転送データの入力が待機される。
【0075】
一方、ステップS210で、第1入出力部213が、第1入出力デスクリプタ情報210にフラグが定義済みのエントリが無いと判定した場合には、処理がステップS211に移行される。この場合、第1入出力デスクリプタ情報210および第2入出力デスクリプタ情報212に対して、フラグが定義済みのエントリを追加する必要がある。そのため、ステップS211で、間欠制御部215は、CPUを起動するように制御する。
【0076】
次のステップS212で、第1入出力制御機能および第2入出力制御機能は、第1入出力デスクリプタ情報210および第2入出力デスクリプタ情報212に対して、フラグが定義済み(例えば状態フラグが割当済み状態61)のエントリを追加し、記憶部200に書き込む。エントリが追加された第1入出力デスクリプタ情報210および第2入出力デスクリプタ情報212を記憶部200に書き込むと、第1入出力制御機能および第2入出力制御機能は、その旨を間欠制御部215に通知する。
【0077】
そして、処理がステップS213に移行され、間欠制御部215によりCPUの動作が停止され、処理がステップS203に戻される。なお、CPUは、自ら動作を停止させるように制御してもよい。
【0078】
以上のように、本第1の実施形態によれば、CPU(第1入出力制御機能および第2入出力制御機能)は、第1入出力デスクリプタ情報210および第2入出力デスクリプタ情報212を転送データの入力以前に予め用意する。そして、転送データの入力以後の処理は、予め用意されたこれら第1入出力デスクリプタ情報210および第2入出力デスクリプタ情報212に基づき、転送制御部220が実行する。
【0079】
そのため、CPUは、第1入出力デスクリプタ情報210および第2入出力デスクリプタ情報212を用意した後は、動作する必要が無い。したがって、本第1の実施形態は、転送データの入力の度にCPU(第1入出力制御部101および第2入出力制御部102)が第1入出力デスクリプタ情報110および第2入出力デスクリプタ情報112を作成した既存技術に比べ、より効果的に低消費電力化を実現できる。
【0080】
図11は、本第1の実施形態を適用可能な情報処理装置1の一例のハードウェア構成を示す。情報処理装置1は、例えば、CPU11、RAM(Random Access Memory)12、ROM(Read Only Memory)13、PMU(Power Management Unit)14、NIC(Network Interface Card)15、転送制御部16およびSSD(Solid State Disk)17を有し、各部がバス10で互いに通信可能に接続される。これに限らず、キーボードなどのユーザ操作部や、ディスプレイに表示を行う表示部をさらに有していてもよい。
【0081】
CPU11は、ROM13やSSD17に予め記憶されるプログラムに従い、RAM12をワークメモリとして用いて、この情報処理装置1の全体の動作を制御する。RAM12は、上述の記憶部200に対応し、データバッファ211が設けられると共に、第1入出力デスクリプタ情報210や第2入出力デスクリプタ情報212が書き込まれる。また、第1入出力制御機能や第2入出力制御機能は、CPU11上で動作するプログラムのモジュールとして動作させることができる。
【0082】
NIC15は、LAN(Local Area Network)やインターネットといったネットワークに対する接続を制御するもので、例えば上述した第1入出力部213に対応する。NIC15は、DMAC20を有し、例えばバス10を介したデータ通信は、このDMAC20により制御される。SSD17は、不揮発性の半導体メモリからなり、CPU11上で動作するプログラムや、各種データが格納される。SSD17は、例えば上述した第2入出力部214に対応する。SSD17は、DMAC21を有し、例えばバス10を介したデータ通信は、このDMAC21により制御される。
【0083】
なお、第1入出力部213は、NIC15に限らず、データの入出力を行うインターフェイスであれば、例えばUSB(Universal Serial Bus)やIEEE(Institute of Electrical and Electronics Engineers)1394など他のインターフェイスを適用してもよい。同様に、第2入出力部214は、SSD17に限られず、HDD(Hard Disk Drive)でもよいし、CD(Compact Disk)やDVD(Digital Versatile Disk)といったディスク記録媒体を読取可能なドライブ装置でもよい。また、上述では、第1入出力部213が転送データの入力側で、第2入出力部214が出力側であるように説明したが、これはこの例に限定されず、両者を入れ替えてもよい。
【0084】
PMU14は、CPU11の制御に従い、この情報処理装置1全体の電源制御を行う。このとき、PMU14は、CPU11やNIC15、SSD17の電源をそれぞれ個別に制御することができる。PMU14は、上述した間欠制御部215に対応する。
【0085】
転送制御部16は、上述の転送制御部220に対応し、NIC15およびSSD17に対して転送データの転送指示を与えると共に、RAM12に書き込まれている第1入出力デスクリプタ情報210や第2入出力デスクリプタ情報212の更新を行う。
【0086】
(第2の実施形態)
次に、第2の実施形態について説明する。図12は、本第2の実施形態による情報処理装置1Bの機能を示す一例の機能ブロック図である。なお、図12において、上述した図5と共通する部分には同一の符号を付し、詳細な説明を省略する。
【0087】
本第2の実施形態による情報処理装置1Bは、上述した第1の実施形態による情報処理装置1Aに対して、デスクリプタ情報更新代行部230が追加されている。このデスクリプタ情報更新代行部230は、第1の実施形態による転送制御部220における第1入出力デスクリプタ情報210および第2入出力デスクリプタ情報212の状態フラグの更新処理を、当該転送制御部220に代わって実行するものである。
【0088】
また、本第2の実施形態では、第1入出力部213’は、第1入出力デスクリプタ情報210に相当するデスクリプタ情報を、入力された転送データなどに応じて自身で生成するようになっている。デスクリプタ情報の作成は、例えば、第1入出力部213’が有するDMACが行う。デスクリプタ情報更新代行部230は、第1入出力部213’が入力された転送データに従い作成、更新したデスクリプタ情報を、上述した第1入出力デスクリプタ情報210に書き換える。
【0089】
なお、デスクリプタ情報更新代行部230の追加に伴い、転送制御部220’は、第1入出力部213’および第2入出力部214に対する転送指示のみを行うことになる。第2入出力部214および間欠制御部215の機能は、第1の実施形態で説明した機能と同一である。すなわち、第2入出力部214は、転送指示に従い、第2入出力デスクリプタ情報212を参照してデータバッファ211のデータの読み書きを行う。また、間欠制御部215は、第1入出力部213’および第2入出力部214の起動および停止を制御すると共に、CPUの起動および停止を制御する。
【0090】
本第2の実施形態における状態フラグの各状態(空き状態60、割当済み状態61およびバッファ済み状態62)は、上述の第1の実施形態と同様であるので、ここでの説明を省略する。
【0091】
図13は、本第2の実施形態による間欠処理の一例のフローチャートを示す。なお、図13において、上述した図7のフローチャートと共通する処理には同一の符号を付し、詳細な説明を省略する。
【0092】
以下では、情報処理装置1Bの第1入出力部213’に対して転送データが入力され、この転送データを第2入出力部214に渡す場合を例にとって説明する。また、第1入出力部213’が動作している期間は、第2入出力部214の動作を停止し、第2入出力部214が動作している期間は、第1入出力部213’の動作を停止するものとする。
【0093】
また、図示は省略するが、情報処理装置1Bは、上述した情報処理装置1Aと同様に、第1入出力デスクリプタ情報210および第2入出力デスクリプタ情報212をそれぞれ更新する、CPU上で動作する第1入出力制御機能、第2入出力制御機能を有する。
【0094】
ステップS200で、間欠制御部215は、第2入出力部214の動作を停止させ、第1入出力部213’を起動させるように制御する。第1入出力部213’は、転送データの入力を待機する。
【0095】
次のステップS201で、第2入出力制御機能は、第2入出力デスクリプタ情報212を作成し、記憶部200に書き込む。このとき、図8(b)を用いて説明したように、第2入出力制御機能は、例えば読み出し元番地、書き込み先番地およびサイズ情報を含む各エントリを作成すると共に、作成した各エントリに対して、割当済み状態61の状態フラグを格納する。
【0096】
次のステップS202では、間欠制御部215は、CPUの動作を停止させる。このとき、CPUの第1入出力制御機能および第2入出力制御機能を実行する動作のみを停止させてもよいし、CPUの全体の動作を停止させてもよい。また、CPUの動作は、CPU自身が停止させてもよい。
【0097】
次のステップS203で、転送データが第1入出力部213’に入力される。転送制御部220’から転送データの転送指示が第1入出力部213’に渡されると、ステップS204で、第1入出力部213’は、転送データをデータバッファ211に書き込む。
【0098】
次のステップS204Aで、第1入出力部213’は、ステップS204で書き込んだ転送データについて、データバッファ211への書き込み先番地およびサイズ情報を含むエントリを作成し、第1入出力デスクリプタ情報210として記憶部200に書き込む。このとき、当該エントリに、割当済み状態61の状態フラグを格納する。第1入出力部213’は、第1入出力デスクリプタ情報210を記憶部200に書き込むと、その旨をデスクリプタ情報更新代行部230に通知する。
【0099】
デスクリプタ情報更新代行部230は、第1入出力部213’からの通知に応じて、次のステップS205Aで、第1入出力デスクリプタ情報210のおよび第2入出力デスクリプタ情報212の状態フラグを更新する。すなわち、第1入出力デスクリプタ情報210における、ステップS204Aで書き込まれたエントリに設定された状態フラグを、割当済み状態61から空き状態60に更新する。それと共に、第2入出力デスクリプタ情報212における、ステップS204Aで第1入出力部213’で書き込まれたエントリに含まれる書き込み先番地に対応する読み出し元番地を有するエントリの状態フラグを、バッファ済み状態62に更新する。状態フラグの更新がなされると、その旨が間欠制御部215に通知される。
【0100】
処理はステップS206に移行され、間欠制御部215は、状態フラグの更新通知に応じて、第1入出力部213’に対して動作停止の指示を出すと共に、第2入出力部214に対して起動の指示を出す。この指示に応じて、第2入出力部214が起動される。第2入出力部214の起動が完了すると、転送制御部220’は、第2入出力部214に対して転送指示を出す。
【0101】
次のステップS207で、第2入出力部214は、転送制御部220’からの転送指示に応じて第2入出力デスクリプタ情報212を参照し、状態フラグがバッファ済み状態62となっているエントリを選択する。そして、第2入出力部214は、選択したエントリに格納される情報に従いデータバッファ211から転送データを読み出し、書き込み先番地で示される書き込み先に転送する。第2入出力部214は、転送データの読み出しが終了すると、その旨を転送制御部220’に通知する。
【0102】
次のステップS208で、転送制御部220’は、第2入出力部214からの読み出し終了の通知に応じて、第2入出力デスクリプタ情報212の、転送データが読み出された読み出し元番地を含むエントリの状態フラグを、バッファ済み状態62から空き状態60に更新する。状態フラグが更新されると、その旨が間欠制御部215に通知される。
【0103】
次のステップS209で、間欠制御部215は、状態フラグの更新通知に応じて、第2入出力部214に対して動作停止の指示を出すと共に、第1入出力部213’に対して起動の指示を出す。この指示に応じて、第1入出力部213’が起動される。第1入出力部213’は、起動されると、転送データの入力を待機する。
【0104】
次のステップS210で、第1入出力部213’は、第1入出力デスクリプタ情報210を参照し、フラグが定義済み、例えば状態フラグが割当済み状態61となっているエントリが存在するか否かを判定する。若し、存在すると判定した場合、処理がステップS203に戻され、第1入出力部213’により次の転送データの入力が待機される。
【0105】
一方、ステップS210で、第1入出力部213’が、第1入出力デスクリプタ情報210にフラグが定義済みのエントリが無いと判定した場合には、処理がステップS211に移行される。この場合、第1入出力デスクリプタ情報210および第2入出力デスクリプタ情報212に対して、フラグが定義済みのエントリを追加する必要がある。そのため、ステップS211で、間欠制御部215は、CPUを起動するように制御する。
【0106】
次のステップS212で、第1入出力制御機能および第2入出力制御機能は、それぞれ第1入出力デスクリプタ情報210および第2入出力デスクリプタ情報212に対して、フラグが定義済み(例えば状態フラグが割当済み状態61)のエントリを追加し、記憶部200に書き込む。エントリが追加された第1入出力デスクリプタ情報210および第2入出力デスクリプタ情報212を記憶部200に書き込むと、第1入出力制御機能および第2入出力制御機能は、その旨を間欠制御部215に通知する。
【0107】
そして、処理がステップS213に移行され、間欠制御部215によりCPUの動作が停止され、処理がステップS203に戻される。なお、CPUは、自ら動作を停止させるように制御してもよい。
【0108】
このように、本第2の実施形態によれば、第1入出力部213’が第1入出力デスクリプタ情報210に相当するデスクリプタ情報を、入力された転送データなどに応じて自身で生成するような場合であっても、第1の実施形態と同様の効果を得ることができる。すなわち、第1入出力部213’が作成したデスクリプタ情報は、デスクリプタ情報更新代行部230により更新され、CPUは、第1入出力デスクリプタ情報210および第2入出力デスクリプタ情報212を用意した後は、動作する必要が無く、より効果的に低消費電力化を実現できる。
【0109】
なお、本第2の実施形態による情報処理装置1Bのハードウェア構成としては、図11を用いて説明した第1の実施形態による情報処理装置1に対して、デスクリプタ情報更新代行部230を追加してバス10接続することで実現することができる。
【0110】
(第3の実施形態)
次に、第3の実施形態について説明する。図14は、本第3の実施形態による情報処理装置1Cの機能を示す一例の機能ブロック図である。なお、図14において、上述した図5と共通する部分には同一の符号を付し、詳細な説明を省略する。
【0111】
本第3の実施形態による情報処理装置1Cは、上述した第1の実施形態による情報処理装置1Aに対して、復帰制御部240が追加されている。また、記憶部200には、第1入出力部213”および第2入出力部214”を停止状態から起動させる際の復帰手順をそれぞれ示す第1入出力復帰手順情報241および第2入出力復帰手順情報242が記憶される。
【0112】
復帰制御部240は、例えば第1入出力部213”を起動させる際には、第1入出力復帰手順情報241を参照する。そして、第1入出力復帰手順情報241の内容に従い第1入出力部213”に対して復帰指示を出して、第1入出力部213”を起動させる。第2入出力部214”を起動させる場合も同様に、復帰制御部240は、第2入出力復帰手順情報242を参照し、第2入出力部214”に対して復帰指示を出す。
【0113】
なお、第1入出力部213”および第2入出力部214”は、復帰制御部240からの復帰指示に従い起動される点以外は、第1の実施形態による第1入出力部213および第2入出力部214と同等の機能を有する。
【0114】
本第3の実施形態における状態フラグの各状態(空き状態60、割当済み状態61およびバッファ済み状態62)は、上述の第1の実施形態と同様であるので、ここでの説明を省略する。
【0115】
図15は、本第3の実施形態による間欠制御の一例のフローチャートを示す。なお、図15において、上述した図7のフローチャートと共通する処理には同一の符号を付し、詳細な説明を省略する。
【0116】
以下では、情報処理装置1Cの第1入出力部213”に対して転送データが入力され、この転送データを第2入出力部214”に渡す場合を例にとって説明する。また、第1入出力部213”が動作している期間は、第2入出力部214”の動作を停止し、第2入出力部214”が動作している期間は、第1入出力部213”の動作を停止するものとする。
【0117】
また、図示は省略するが、情報処理装置1Cは、上述した情報処理装置1Aと同様に、第1入出力デスクリプタ情報210および第2入出力デスクリプタ情報212をそれぞれ更新する、CPU上で動作する第1入出力制御機能、第2入出力制御機能を有する。
【0118】
ステップS200で、間欠制御部215は、第2入出力部214”の動作を停止させ、第1入出力部213”を起動させるように制御する。第1入出力部213”は、転送データの入力を待機する。なお、ここでは、第1入出力部213”は、予め起動されているものとする。
【0119】
次のステップS201で、第1入出力制御機能および第2入出力制御機能は、それぞれ第1入出力デスクリプタ情報210および第2入出力デスクリプタ情報212を作成し、記憶部200に書き込む。このとき、図8(a)および図8(b)を用いて説明したように、第1入出力制御機能および第2入出力制御機能は、例えば読み出し元番地、書き込み先番地およびサイズ情報を含むエントリを作成すると共に、作成した各エントリに対して、割当済み状態61の状態フラグを格納する。
【0120】
次のステップS202で、間欠制御部215は、CPUの動作を停止させる。このとき、CPUの第1入出力制御機能および第2入出力制御機能を実行する動作のみを停止させてもよいし、CPUの全体の動作を停止させてもよい。また、CPUの動作は、CPU自身が停止させてもよい。
【0121】
次のステップS203で、転送データが第1入出力部213”に入力される。第1入出力部213”は、転送制御部220から転送データの転送指示が第1入出力部213”に渡されると、ステップS204で、転送データをデータバッファ211に書き込む。転送データの書き込みが終了すると、第1入出力部213”は、その旨を転送制御部220に通知する。
【0122】
次のステップS205で、転送制御部220は、転送データの書き込み終了の通知に応じて、第1入出力デスクリプタ情報210および第2入出力デスクリプタ情報212の状態フラグの更新を行う。すなわち、転送制御部220は、第1入出力デスクリプタ情報210の、転送データが書き込まれた書き込み先番地を含むエントリの状態フラグを、割当済み状態61から空き状態60に更新する。それと共に、転送制御部220は、第2入出力デスクリプタ情報212の、当該書き込み先番地に対応する読み出し元番地を含むエントリの状態フラグを、割当済み状態61から済み状態62に更新する。状態フラグの更新がなされると、その旨が間欠制御部215に通知される。
【0123】
次のステップS206で、間欠制御部215は、状態フラグの更新通知に応じて、第1入出力部213”に対して動作停止の指示を出す。また、間欠制御部215は、第2入出力部214”に対して起動の指示を出すと共に、復帰制御部240に対して、第2入出力部214”が起動される旨を通知する。
【0124】
次のステップS220で、復帰制御部240は、第2入出力部214”の起動通知に応じて第2入出力復帰手順情報242を参照する。そして、第2入出力復帰手順情報242の内容に従い第2入出力部214”に対して復帰指示を出して、第2入出力部214”を設定し、起動させる。第2入出力部214”の起動が完了すると、転送制御部220は、第2入出力部214”に対して転送指示を出す。
【0125】
次のステップS207で、第2入出力部214”は、転送制御部220からの転送指示に応じて第2入出力デスクリプタ情報212を参照し、状態フラグがバッファ済み状態62となっているエントリを選択する。そして、第2入出力部214”は、選択したエントリに格納される情報に従いデータバッファ211から転送データを読み出し、書き込み先番地で示される書き込み先に転送する。第2入出力部214”は、転送データの読み出しが終了すると、その旨を転送制御部220に通知する。
【0126】
次のステップS208で、転送制御部220は、第2入出力部214”からの読み出し終了の通知に応じて、第2入出力デスクリプタ情報212の、転送データが読み出された読み出し元番地を含むエントリの状態フラグを、バッファ済み状態62から空き状態60に更新する。状態フラグの更新がなされると、その旨が間欠制御部215に通知される。
【0127】
次のステップS209で、間欠制御部215は、状態フラグの更新通知に応じて、第2入出力部214”に対して動作停止の指示を出す。また、間欠制御部215は、第1入出力部213”に対して起動の指示を出すと共に、復帰制御部240に対して、第1入出力部213”が起動される旨を通知する。
【0128】
次のステップS221で、復帰制御部240は、第1入出力部213”の起動通知に応じて第1入出力復帰手順情報241を参照する。そして、第1入出力復帰手順情報241の内容に従い第1入出力部213”に対して復帰指示を出して、第1入出力部213”を設定し、起動させる。
【0129】
次のステップS210で、第1入出力部213”は、第1入出力デスクリプタ情報210を参照し、フラグが定義済み、例えば状態フラグが割当済み状態61となっているエントリが存在するか否かを判定する。若し、存在すると判定した場合、処理がステップS203に戻され、第1入出力部213”により次の転送データの入力が待機される。
【0130】
一方、ステップS210で、第1入出力部213”が、第1入出力デスクリプタ情報210にフラグが定義済みのエントリが無いと判定した場合には、処理がステップS211に移行される。この場合、第1入出力デスクリプタ情報210および第2入出力デスクリプタ情報212に対して、フラグが定義済みのエントリを追加する必要がある。そのため、ステップS211で、間欠制御部215は、第1入出力制御機能および第2入出力制御機能すなわちCPUを起動するように制御する。
【0131】
次のステップS212で、第1入出力制御機能および第2入出力制御機能は、第1入出力デスクリプタ情報210および第2入出力デスクリプタ情報212に対して、フラグが定義済み(例えば状態フラグが割当済み状態61)のエントリを追加し、記憶部200に書き込む。エントリが追加された第1入出力デスクリプタ情報210および第2入出力デスクリプタ情報212を記憶部200に書き込むと、第1入出力制御機能および第2入出力制御機能は、その旨を間欠制御部215に通知する。
【0132】
そして、処理がステップS213に移行され、間欠制御部215により第1入出力制御機能および第2入出力制御機能すなわちCPUの動作が停止され、処理がステップS203に戻される。なお、CPUは、自ら動作を停止させるように制御してもよい。
【0133】
このように、本第3の実施形態によれば、第1入出力部213”および第2入出力部214”の起動の際に、停止状態から起動状態への復帰を制御する復帰制御部240が設けられている。そのため、第1入出力部213”および第2入出力部214”が起動された際に、即座にデータ転送処理を開始できる。
【0134】
なお、本第3の実施形態による情報処理装置1Cのハードウェア構成としては、図11を用いて説明した第1の実施形態による情報処理装置1に対して、復帰制御部240を追加してバス10接続することで実現することができる。
【0135】
なお、上述では、第2の実施形態および第3の実施形態がそれぞれ独立して実施可能であるように説明したが、これはこの例に限定されない。すなわち、第2の実施形態および第3の実施形態を組み合わせて実施することも可能である。
【0136】
なお、本発明は上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【0137】
1,1A,1B,1C 情報処理装置
10 バス
11 CPU
12 RAM
13 ROM
14 PMU
15 NIC
16,220,220’ 転送制御部
17 SSD
20,21 DMAC
60 空き状態
61 割当済み状態
62 バッファ済み状態
200 記憶部
210 第1入出力デスクリプタ情報
211 データバッファ
212 第2入出力デスクリプタ情報
213,213’,213” 第1入出力部
214,214” 第2入出力部
215 間欠制御部
230 デスクリプタ情報更新代行部
240 復帰制御部
241 第1入出力復帰手順情報
242 第2入出力復帰手順情報

【特許請求の範囲】
【請求項1】
記憶部上の領域を示す情報と、該領域を示す情報が格納されるエントリの状態を示す状態情報とを含むデスクリプタを作成する作成部と、
前記状態情報に従い選択した前記エントリに示される前記領域に対するデータの書き込みおよび読み出しのうち少なくとも一方を行う入出力部と、
前記入出力部による前記領域に対するデータの前記書き込みおよび読み出しのうち少なくとも一方に応じて前記状態情報を更新する更新部と、
前記入出力部の前記記憶部に対するデータの前記書き込みおよび読み出しのうち少なくとも一方が終了した場合に該入出力部の動作を抑制する間欠制御部と
を有し、
前記作成部は、
前記デスクリプタを、前記入出力部が前記記憶部に対するデータの前記書き込みおよび読み出しのうち少なくとも一方が開始される前に予め作成する
ことを特徴とする情報処理装置。
【請求項2】
前記状態情報は、
前記エントリの情報が無効であることを示す第1の状態と、
前記エントリの情報が有効であることを示す第2の状態と
を含み、
前記入出力部がデータの読み出しを行う場合には、前記データの読み出し待ちを示す第3の状態をさらに含み、
前記入出力部は、
データの書き込みを行う場合には前記第2の状態の状態情報を選択し、
データの読み出しを行う場合には前記第3の状態の状態情報を選択する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記状態情報は、
前記エントリの情報が無効であることを示す第1の状態と、
前記エントリの情報が有効であることを示す第2の状態と
を含み、
前記入出力部は、
前記領域にデータを書き込む際に、前記デスクリプタに対して該領域を示す情報を書き込むと共に、前記状態情報を前記第2の状態に設定し、
前記更新部は、
前記入出力部の前記領域に対するデータの書き込みに伴い該入出力部に前記第2の状態に設定された前記状態情報を、前記第1の状態に更新する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項4】
前記入出力部が動作を抑制された状態から復帰する復帰手順を保持する復帰手順保持部と、
前記間欠制御部により動作が抑制された前記入出力部を、前記復帰手順保持部に保持される前記復帰手順に従い、動作が抑制された状態から復帰させる復帰制御部と
をさらに有する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項5】
デスクリプタに含まれる、記憶部上の領域を示す情報が格納されるエントリの状態を示す状態情報に従い選択した前記エントリに示される前記領域に対するデータの書き込みおよび読み出しのうち少なくとも一方を行う入出力部と、
前記入出力部による前記領域に対するデータの前記書き込みおよび読み出しのうち少なくとも一方に応じて前記状態情報を更新する更新部と、
前記入出力部の前記記憶部に対するデータの前記書き込みおよび読み出しのうち少なくとも一方が終了した場合に該入出力部の動作を抑制する間欠制御部と
を有するコンピュータに、
前記デスクリプタを、前記入出力部が前記記憶部に対するデータの前記書き込みおよび読み出しのうち少なくとも一方が開始される前に予め作成するステップを実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate