(57)【特許請求の範囲】
【請求項１】
データ送信装置に接続されるデータ受信装置において、
前記データ送信装置が送信するデータを受信するとともに、前記受信したデータの状態を示す固定長の状態情報を生成する受信部と、
所定の範囲に区切られた複数の領域を備えた記憶部と、
前記記憶部の複数の領域のうち、いずれかの領域の最後尾に位置するように、前記受信部が生成した状態情報を書込むとともに、前記状態情報が書込まれた領域において、前記書込まれた状態情報に連続するように、前記受信したデータを書込む書込み部を有することを特徴とするデータ受信装置。
【請求項２】
前記データ受信装置において、
前記データ送信装置が送信するデータは、前記データ送信装置の記憶装置に保持された可変長のソフトウェアデータと、前記ソフトウェアデータの制御に用いられる固定長の制御データを含み、
前記書込み部は、前記記憶部の複数の領域のうち、いずれかの領域の最後尾に位置するように、前記受信部が生成した状態情報を書込むとともに、前記状態情報が書込まれた領域において、前記書込まれた状態情報に連続するように、前記受信した制御データとソフトウェアデータを書込むことを特徴とする請求項１記載のデータ受信装置。
【請求項３】
前記データ受信装置において、
前記書込み部は、前記記憶部の複数の領域のうち、いずれかの領域の最後尾から、前記受信部が生成した状態情報、前記受信したデータに含まれる制御データ、前記受信したデータに含まれるソフトウェアデータ、の順で書込むことを特徴とする請求項２記載のデータ受信装置。
【請求項４】
前記データ受信装置において、
前記書込み部は、前記受信データのエラーを検出した場合、前記検出したエラーの情報を前記状態情報として書込むことを特徴とする請求項１〜３のいずれか１項に記載のデータ受信装置。
【請求項５】
前記データ受信装置は、さらに、
前記記憶部に記憶された受信データを更新する場合、前記受信データの書込み開始アドレスを、前記受信データを予め決められたメモリアライン、又は、予め決められたブロックサイズの整数倍に揃える更新部を有することを特徴とする請求項１〜４のいずれか１項に記載のデータ受信装置。
【請求項６】
データ送信装置と、前記データ送信装置に接続されるデータ受信装置を有するデータ送受信システムにおいて、
前記データ送信装置は、
データを記憶する記憶装置と、
前記記憶装置が記憶するデータを送信する送信部を有し、
前記受信装置は、
前記データ送信装置が送信するデータを受信するとともに、前記受信したデータの状態を示す固定長の状態情報を生成する受信部と、
所定の範囲に区切られた複数の領域を備えた記憶部と、
前記記憶部の複数の領域のうち、いずれかの領域の最後尾に位置するように、前記受信部が生成した状態情報を書込むとともに、前記状態情報が書込まれた領域において、前記書込まれた状態情報に連続するように、前記受信したデータを書込む書込み部を有する
ことを特徴とするデータ送受信システム。
【請求項７】
データ送信装置と、前記データ送信装置に接続されるデータ受信装置を有するデータ送受信システムの制御方法において、
前記データ送信装置が有する送信部が、記憶装置が記憶するデータを送信し、
前記データ受信装置が有する受信部が、前記データ送信装置が送信するデータを受信し、
前記データ受信装置が有する受信部が、前記受信したデータの状態を示す固定長の状態情報を生成し、
前記データ受信装置が有する所定の範囲に区切られた複数の領域を備えた記憶部の複数の領域のうち、いずれかの領域の最後尾に位置するように、前記データ受信装置が有する書込み部が、前記受信部が生成した状態情報を書込み、
前記状態情報が書込まれた領域において、前記書込まれた状態情報に連続するように、前記書込み部が、前記受信したデータを書込むことを特徴とするデータ送受信システムの制御方法。
【請求項８】
データ送信装置に接続されるデータ受信装置の制御プログラムにおいて、
コンピュータに、
前記データ送信装置が送信するデータを受信するとともに、前記受信したデータの状態を示す固定長の状態情報を生成させ、
所定の範囲に区切られた複数の領域を備えた記憶部の複数の領域のうち、いずれかの領域の最後尾に位置するように、前記受信部が生成した状態情報を書込ませ、
前記状態情報が書込まれた領域において、前記書込まれた状態情報に連続するように、前記受信したデータを書込ませることを特徴とするデータ受信装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データ受信装置、データ送受信システム、データ送受信システムの制御方法及びデータ受信装置の制御プログラムに関する。
【背景技術】
【０００２】
従来より、コンピュータシステムは、データを受信する場合には、メインメモリなどの記憶部上に受信したデータを格納する受信データ領域と、受信完了通知などを格納する受信ステータス領域の２つの領域が必要であった。例えば、特許文献１（特開２００１−１４７８７５号公報）に開示されているデータ通信システムの場合でも、同様に２つの領域が必要である。
【０００３】
図１０を用いて、この２つの領域を使用するデータの流れについて、具体的に説明すると、受信側端末装置のＣＰＵなどで動作するソフトウエアは、受信データ領域にデータが書込まれたことを認識するために、受信ステータス領域を一定間隔でチェックしている（図１０の（１））。そして、受信側端末装置の通信制御部は、外部よりメッセージ（データ）を受信すると（図１０の（２））、受信したデータを受信データ領域に書込む（ＤＭＡ  Ｗｒｉｔｅ）と共に（図１０の（３））、受信が完了したことを示す情報を受信ステータス領域に書込む（ＤＭＡ  Ｗｒｉｔｅ）（図１０の（４））。
【０００４】
その後、受信側端末装置のＣＰＵは、受信データ領域にデータが書込まれたことを認識すると（図１０の（５））、受信データ領域にアクセスして書込まれたデータを読み取る（図１０の（６））。このようにして、受信されたデータは読み取られて、ソフトウエアなどに利用される。
【０００５】
【特許文献１】特開２００１−１４７８７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、上記した従来の技術は、受信データと受信ステータスとを別々の領域であり、２回の書込み処理（ＤＭＡ  Ｗｒｉｔｅ）が必要であるので、レイテンシが大きくなるという問題点があった。
【０００７】
また、ＣＰＵなどで動作するソフトウエアは、書込まれたデータを読み取る場合、受信データ領域と受信ステータス領域の２つの領域を読み取る必要があり、データとステータスとを読み出すと一つのキャッシュラインに収まらないので、データ読込み処理などのパフォーマンスが低下するという問題点があった。
【０００８】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、
レイテンシを小さくすることが可能であるとともに、データ読込み処理などのパフォーマンスを向上させることが可能である記憶制御装置、記憶制御方法、記憶制御プログラムおよび情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するため、本発明は、受信データおよび当該受信データのステータスを示す受信ステータスを記憶する記憶制御装置であって、所定の範囲で区切られた複数の領域から構成されるデータ記憶手段と、前記受信データを外部より受信した場合に、前記データ記憶手段における一つの領域の最後尾に前記受信ステータスが位置するように、前記受信データおよび前記受信ステータスを前記領域に対して一括に書込むデータ書込み手段と、を備えたことを特徴とする。
【００１０】
また、本発明は、上記の発明において、前記データ書込み手段は、前記受信データが前記領域に後詰めになるように、前記受信データおよび前記受信ステータスを前記領域に対して一括に書込むことを特徴とする。
【００１１】
また、本発明は、上記の発明において、前記受信データは、二種類のデータから構成されるものであって、前記データ書込み手段は、前記領域の最後尾に前記受信ステータスが位置し、前記受信ステータスの前に前記二種類のデータが位置するように、前記二種類のデータと前記受信ステータスとを前記領域に対して一括に書込むことを特徴とする。
【００１２】
また、本発明は、上記の発明において、前記データ書込み手段は、前記受信データにエラーがある場合、前記受信ステータスをエラーフラグに差し替えて書込むことを特徴とする。
【００１３】
また、本発明は、上記の発明において、前記データ記憶手段に記憶された前記受信データを更新する場合、前記受信データの書込み開始アドレスを、前記受信データをあらかじめ決められたメモリアライン、または、あらかじめ決められたブロックサイズの整数倍に揃えるデータ更新手段をさらに備えたことを特徴とする。
【００１４】
また、本発明は、上記の発明において、受信データおよび当該受信データのステータスを示す受信ステータスを記憶する記憶制御方法であって、所定の範囲で区切られた複数の領域から構成されるデータ記憶手段と、前記受信データを外部より受信した場合に、前記データ記憶手段における一つの領域の最後尾に前記受信ステータスが位置するように、前記受信データおよび前記受信ステータスを前記領域に対して一括に書込むデータ書込み工程と、を備えたことを特徴とする。
【００１５】
また、本発明は、上記の発明において、受信データおよび当該受信データのステータスを示す受信ステータスを記憶する記憶制御装置としてコンピュータに実行させる記憶制御プログラムであって、所定の範囲で区切られた複数の領域から構成されるデータ記憶手順と、前記受信データを外部より受信した場合に、前記データ記憶手段における一つの領域の最後尾に前記受信ステータスが位置するように、前記受信データおよび前記受信ステータスを前記領域に対して一括に書込むデータ書込み手順と、を備えたことを特徴とする。
【００１６】
また、本発明は、上記の発明において、情報の送受信を制御する通信手段と、情報を記憶する記憶手段と、前記通信手段を介して情報を受信した場合、前記受信した情報の受信状態を示す受信ステータス情報を当該受信した情報の末尾に付し、前記記憶手段に書込む書込み手段とを備えることを特徴とする。
【００１７】
また、本発明は、上記の発明において、情報の送受信を制御する通信手段と、情報を記憶する複数の領域を有する記憶手段と、前記通信手段を介して情報を受信した場合、前記記憶手段の領域の一つに前記受信した情報を書込むとともに、当該受信した情報が記憶された領域の末尾に、当該受信した情報の受信状態を示す受信ステータス情報を書込む書込み手段とを備えることを特徴とする。
【発明の効果】
【００１８】
本発明によれば、所定の範囲で区切られた複数の領域から構成され、受信データを外部より受信した場合に、一つの領域の最後尾に受信ステータスが位置するように、受信データおよび受信ステータスを領域に対して一括に書込むので、１回の書込みで受信データと受信ステータスとを書込むことができる結果、レイテンシを小さくすることが可能であるとともに、受信データと受信ステータスを読込むのに一つの領域をＲｅａｄすればよく、データとステータスとを読み出した際に一つのキャッシュラインに収まる結果、ＣＰＵなどのソフトウエアによるデータ読込み処理などのパフォーマンスを向上させることが可能である。
【００１９】
また、本発明によれば、受信データが領域に後詰めになるように、受信データおよび受信ステータスを領域に対して一括に書込むので、例えば、受信データを使用するソフトウエア側で、あらかじめアドレスを指定して受信データを読込むことができるなど、決めうち処理を用いることができる結果、オーバーヘッドを低減することが可能である。
【００２０】
また、本発明によれば、領域の最後尾に受信ステータスが位置し、受信ステータスの前に二種類のデータが位置するように、二種類のデータと受信ステータスとを領域に対して一括に書込むので、例えば、受信データがアプリケーションデータとソフトウエアの制御情報を示す埋め込みデータとから構成されている場合、領域の最後尾に受信ステータスが位置し、受信ステータスの前に埋め込みデータが位置するように、受信データと受信ステータスと埋め込みデータとを領域に対して一括に書込むので、埋め込みデータが固定位置に書込まれることとなる結果、ソフトウエアは決めうち処理を用いることが可能であるとともに、書込みフォーマットと同じフォーマットでデータを受信するため受信データの変換処理が不要である結果、さらにオーバーヘッドを低減することが可能である。また、埋め込みデータが受信ステータスに隣接して書込まれることになり、例えば、ＣＰＵなどのソフトウエアによりデータの読み出しが行われた場合、埋め込みデータと受信ステータスが同じキャッシュラインの収まる可能性が高くなるなど、キャッシュを有効的に使用することが可能である。
【００２１】
また、本発明によれば、受信データにエラーがある場合、例えば、受信データの末尾にＣＲＣを付けてビットエラーを検出している場合など、前記受信ステータスをエラーフラグに差し替えて書込むので、受信ステータスを書込む際には、受信データの書込みは終了していることになり書込んだデータの妥当性を保証することができ、例えば、データを最後まで受信し終わる前に、書込みを開始するなど、さらにレイテンシを改善することが可能である。
【００２２】
また、本発明によれば、記憶された受信データを更新する場合、受信データの書込み開始アドレスを、受信データをあらかじめ決められたメモリアライン、または、あらかじめ決められたブロックサイズの整数倍に揃えるので、例えば、キャッシュライン・サイズのブロックに対するｐａｒｔｉａｌ  ｗｒｉｔｅ（部分的な書換え）がブロック全体の書換えに比べて遅い情報処理装置（計算機）において、本来書き込むべき領域より手前側（アドレス上位）から更新することが可能な状況で、最大限の性能を引き出すことが可能である。なお、例を挙げると、キャッシュライン・サイズが６４ｂｙｔｅの計算機の場合、書込み開始アドレス（バイトアドレス）の下位６ｂｉｔ（２の６乗＝６４）を０でマスクする（強制的に０にする）。
【発明を実施するための最良の形態】
【００２３】
以下に添付図面を参照して、この発明に係る記憶制御装置の実施例を詳細に説明する。
【実施例１】
【００２４】
以下の実施例１では、本発明の一形態に係る記憶制御装置の概要および特徴、記憶制御装置の構成および処理の流れ、実施例１による効果等を順に説明する。
【００２５】
［記憶制御装置（受信側端末装置）の概要および特徴］
まず最初に、図１を用いて、実施例１に係る記憶制御装置の概要および特徴を説明する。図１は、実施例１に係る記憶制御装置（受信側端末装置）の概要と特徴を示す図である。同図に示すように、本実施例に係る記憶制御装置２０（受信側端末装置）は、通信制御部２１と、記憶部２２と、ソフトウエア２４とから構成される。記憶部２２には、受信データ及び受信ステータスが保存される受信データ領域２５が設けられる。受信ステータスは、対応する受信データの最後尾に受信データと合わせて書き込まれる。
【００２６】
このような構成を有する記憶制御装置（受信側端末装置）２０は、受信データおよび当該受信データのステータスを示す受信ステータスを合わせて書込むことを概要とするものであり、レイテンシを小さくすることが可能である点と、ＣＰＵ・ソフトウエアによるデータ読込み処理などのパフォーマンスを向上させることが可能である点に主たる特徴がある。
【００２７】
この主たる特徴を具体的に説明すると、図１において、受信データ領域２５は、所定の範囲で区切られた複数の領域から構成されている。そして、受信側端末装置２０のソフトウエア２４（ＣＰＵで動作、以下同様）は、記憶部２２の受信データ領域２５にデータが書込まれたことを認識するために、受信データ領域２５の受信ステータス、つまり、受信データ領域の複数領域の最後尾を一定間隔でチェックしている（図１の（１））。
【００２８】
一方、受信側端末装置２０の通信制御部２１は、外部よりデータを受信すると、受信ステータスを作成するとともに、受信データ領域２５における一つの領域の最後尾に受信ステータスが位置するように、受信データおよび受信ステータスを当該領域に対して一括に書込む。（図１の（２）〜（３））。
【００２９】
そして、ソフトウエア２４は、受信データ領域２５にデータが書込まれたことを示す受信ステータスを認識すると（図１の（４））、受信データ領域２５に書込まれた受信データを読み取る（図１の（５））。
【００３０】
このように、受信側端末装置２０は、１回の書込みで受信データと受信ステータスとを書込むことができる結果、上記した主たる特徴の如く、レイテンシを小さくすることが可能であるとともに、受信データと受信ステータスを読込むのに一つの領域をＲｅａｄすればよく、データとステータスとを読み出した際に一つのキャッシュラインに収まる結果、上記した主たる特徴の如く、ＣＰＵなどで動作するソフトウエアによるデータ読込み処理などのパフォーマンスを向上させることが可能である。
【００３１】
［記憶制御装置（送信側端末装置）の構成］
次に、図２を用いて、図１に示した記憶制御装置を用いた送信側端末装置１０の構成を説明する。図２は、記憶制御装置を用いたシステムの内部構成を示すブロック図である。同図に示すように、送信側端末装置１０は、通信制御部１１と、記憶部１２と、制御部１３とから構成され、ネットワークを介して受信側端末装置２０と接続される。
【００３２】
このうち、通信制御部１１は、ネットワークを介して受信側端末装置２０との間でやり取りするデータを制御する手段およびデータを作成する手段であり、特に本発明に密接に関連するものとしては、通信部１１ａと、作成部１１ｂとを備える。
【００３３】
通信部１１ａは、ネットワークを介して受信側端末装置２０との間でやり取りする各種情報に関する通信を制御する手段であり、具体的には、後述する作成部１１ｂにより作成された送信データを、ネットワークを介して受信側端末装置２０に送信する。
【００３４】
また、作成部１１ｂは、受信側端末装置２０に送信されるデータを作成する手段である。具体的には、下位ソフトウエア１３ｂから投入された送信コマンド内のパラメータに基づいて、送信側端末装置１０のメモリ領域を読み取り、それを送信コマンド内の埋め込みデータとマージして、ペイロードを作成する。また、ユーザデータのサイズや埋め込みデータのサイズに基づきヘッダを作成する（埋め込みデータのサイズは固定サイズである）。そして、作成したペイロードとヘッダを併せて送信データを作成する。
【００３５】
例えば、図３に示したように、送信コマンド内のパラメータに基づいて、記憶部１２などからアプリケーションデータを読み出す。そして、送信コマンド内の埋め込みデータを後ろ詰めにして、読み出したアプリケーションデータと合せて、送信データを作成する。そして、作成された送信データを受信すると、受信側端末装置２０は、受信バッファの一つの領域の最後尾に受信ステータスが位置し、受信ステータスの前に埋め込みデータが位置するように、アプリケーションデータと受信ステータスと埋め込みデータとを当該領域に対して一括に書込む。
【００３６】
記憶部１２は、制御部１３による各種処理に必要なデータおよびプログラムを格納する格納手段（記憶手段）であり、特に本発明に密接に関連するものとしては、送信する二種類のデータの一つとしてアプリケーションデータ１２ａを備える。このうち、アプリケーションデータ１２ａは、作成部１１ｂにより読み出されて、埋め込みデータと共に送信データとして、受信側端末装置２０に送信される。
【００３７】
制御部１３は、ＯＳ（Operating System）などの制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する処理部であり、特に本発明に密接に関連するものとしては、アプリケーション（ソフトウエア）１３ａと、下位ソフトウエア１３ｂとを備える。
【００３８】
このうち、アプリケーション１３ａは、データの転送要求を行う処理を実行するソフトウエアであり、具体的に例を挙げれば、ユーザの指示操作により制御部１３により実行されて、下位ソフトウエア１３ｂに対して記憶部１２に記憶されているアプリケーションデータ１２ａの転送を要求する。
【００３９】
また、下位ソフトウエア１３ｂは、データの転送要求を受けて、送信コマンドを通信制御部１１に送信する手段である。具体的に例を挙げれば、アプリケーション１３ａよりデータ転送要求を受信すると、下位ソフトウエア１３ｂは、アプリケーション１３ａが指定したパラメータ（例えば、先頭アドレスやサイズなど）を元に送信コマンドを作成する。そして、作成した送信コマンドを通信制御部１１に投入する。
【００４０】
［記憶制御装置（受信側端末装置）の構成］
次に、同じく図２を用いて、図１に示した記憶制御装置を用いた受信側端末装置２０の構成を説明する。同図に示すように、この受信側端末装置２０は、通信制御部２１と、記憶部２２と、制御部２３とから構成される。
【００４１】
このうち、通信制御部２１は、ネットワークを介して送信側端末装置１０からデータを受信し、受信データから受信ステータスを作成し、受信データと受信ステータスを書込む手段であり、特に本発明に密接に関連するものとしては、通信部２１ａと、データ書込み部２１ｂとを備える。なお、データ書込み部２１ｂは、特許請求の範囲に記載の「データ書込み手段」に対応する。
【００４２】
このうち、通信部２１ａは、送信側端末装置１０からデータを受信し、受信ステータスを作成する手段である。具体的に例を挙げると、図３に示したように、送信側端末装置１０から埋め込みデータを後ろ詰めにして、アプリケーションデータと合せて、作成された送信データを受信すると、そのデータのヘッダからペイロード（アプリケーションデータと埋め込みデータの合計）のサイズを得る。そして、受信ステータスを作成し、続いて、記憶部２２のデータ記憶部２２ａの一つの領域内の書込み開始位置を算出する（受信ステータスのサイズは固定である）。なお、受信ステータスは、更新フラグ、エラーの有無、受信データサイズなどで構成される。
【００４３】
また、データ書込み部２１ｂは、データ記憶部２２ａの一つの領域の最後尾に受信ステータスが位置し、受信ステータスの前に二種類のデータが位置するように、二種類のデータと受信ステータスとを領域に対して一括に書込む手段である。具体的に例を挙げれば、通信部２１ａより得られた書込み開始位置を用いて、データ記憶部２２ａの一つの領域の最後尾に受信ステータスが位置し、受信ステータスの前に埋め込みデータが位置するように、受信データと受信ステータスと埋め込みデータとを当該領域に対して一括に書込む（図６参照）。
【００４４】
記憶部２２は、制御部２３による各種処理に必要なデータおよびプログラムを格納する格納手段（記憶手段）であり、特に本発明に密接に関連するものとしては、データ記憶部２２ａを備える。データ記憶部２２ａは、所定の範囲で区切られた複数の領域から構成され、データ書込み部２１ｂにより書込まれたデータなどを記憶する手段である。具体的に例を挙げれば、データ書込み部２１ｂにより複数の領域のうち一つの領域の最後尾に受信ステータスが位置し、受信ステータスの前に埋め込みデータが位置するように、受信データと受信ステータスと埋め込みデータとが書込まれる。
【００４５】
制御部２３は、ＯＳ（Operating System）などの制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する処理部であり、特に本発明に密接に関連するものとしては、アプリケーション２３ａと、下位ソフトウエア２３ｂとを備える。
【００４６】
このうち、アプリケーション２３ａは、記憶部２２に記憶されているアプリケーションデータを使用して、処理を実行するソフトウエアである。具体的に例を挙げれば、アプリケーション２３ａは、下位ソフトウエア２３ｂを実行して、記憶部２２のデータ記憶部２２ａに記憶されたアプリケーションデータを参照し、処理を実行する。
【００４７】
また、下位ソフトウエア２３ｂは、受信ステータスを参照し、受信データをアプリケーション２３ａに引き渡す手段である。具体的に例を挙げると、一定間隔でデータ記憶部２２ａの領域の最後尾を参照し、受信ステータスが書込まれるのをチェックする。そして、受信ステータスが書込まれたことを確認すると、受信ステータスを読み取り、データ記憶部２２ａに書込まれたアプリケーションデータと埋め込みデータのサイズを得て、埋め込みデータを読み取る。その後、アプリケーションデータの先頭アドレス（オフセット）を計算して、計算して得られた先頭アドレスをアプリケーション２３ａに引き渡す。
【００４８】
［送信側端末装置による処理］
次に、図４を用いて、送信側端末装置による処理を説明する。図４は、送信側端末装置における送信データ作成処理の流れを示すフローチャートである。図４に図示された処理は、各種ソフトウエアにより実行される。
【００４９】
図４に示すように、制御部１３の下位ソフトウエア１３ｂは、アプリケーション１３ａからデータ転送要求を受け付けると（ステップＳ４０１肯定）、アプリケーション１３ａが指定したパラメータ（例えば、先頭アドレスやサイズなど）から送信コマンドを作成する（ステップＳ４０２）。続いて、下位ソフトウエア１３ｂは、作成した送信コマンドを通信制御部１１の作成部１１ｂに投入する（ステップＳ４０３）。
【００５０】
そして、作成部１１ｂは、受信した送信コマンド内のパラメータに基づいて、記憶部１２のアプリケーションデータ１２ａを読み取り（ステップＳ４０４）、読み取ったアプリケーションデータ１２ａと送信コマンド内の埋め込みデータとを併せて、ペイロードを作成する（ステップＳ４０５）。
【００５１】
その後、作成部１１ｂは、送信するアプリケーションデータ１２ａのサイズや埋め込みデータのサイズに基づき、ヘッダを作成する（ステップＳ４０６）。そして、作成部１２ｂは、ペイロードとヘッダを併せてメッセージ（送信データ）を作成し、通信部１２ａは、作成されたメッセージ（送信データ）を、受信側端末装置２０に送信する（ステップＳ４０７）。
【００５２】
［受信側端末装置による処理］
次に、図５を用いて、受信側端末装置による処理を説明する。図５は、受信側端末装置における受信データ書込み、参照処理の流れを示すフローチャートである。図５に図示された処理も、各種ソフトウエアにより実行される。
【００５３】
図５に示すように、通信部２１ａは、送信側端末装置１０から送信されたデータを受信すると（ステップＳ５０１肯定）、受信したデータのヘッダからペイロード（アプリケーションデータと埋め込みデータとの合計）を得る（ステップＳ５０２）。そして、通信部２１ａは、受信ステータスを作成し（ステップＳ５０３）、続いて、記憶部２２のデータ記憶部２２ａの一つの領域内の書込み開始位置を算出する（ステップＳ５０４）。
【００５４】
そして、データ書込み部２１ｂは、データ記憶部２２ａの一つの領域の最後尾に受信ステータスが位置し、受信ステータスの前に埋め込みデータが位置するように、ペイロード（受信データ）と受信ステータスと埋め込みデータとを当該領域に対して一括に書込む（ステップＳ５０５）。
【００５５】
続いて、受信ステータスの書込みが終了すると（ステップＳ５０６肯定）、下位ソフトウエア２３ｂは、当該領域の最後尾の受信ステータスをチェックして（ステップＳ５０７）、書込まれたデータサイズと埋め込みデータサイズを得る（ステップＳ５０８）。そして、下位ソフトウエア２３ｂは、埋め込みデータを読み取り（ステップＳ５０９）、アプリケーション２３ａに引き渡す、データ記憶部２２ａに書込まれたデータの先頭アドレス（オフセット）を算出し、アプリケーション２３ａにデータを引き渡す（ステップＳ５１０）。
【００５６】
［実施例１による効果］
上述してきたように、実施例１によれば、データ記憶部２２ａは、所定の範囲で区切られた複数の領域から構成され、受信データを外部より受信した場合に、データ記憶部２２ａの一つの領域の最後尾に受信ステータスが位置するように、受信データおよび受信ステータスを当該領域に対して一括に書込む。このような構成により、１回の書込みで受信データと受信ステータスとを書込むことができる結果、レイテンシを小さくすることが可能であるとともに、受信データと受信ステータスを読込むのに一つの領域をＲｅａｄすればよい。そのため、データとステータスとを読み出した際に一つのキャッシュラインに収まる結果、ＣＰＵなどのソフトウエアによるデータ読込み処理などのパフォーマンスを向上させることが可能である。
【００５７】
また、実施例１によれば、受信データが当該領域に後詰めになるように、受信データおよび受信ステータスを当該領域に対して一括に書込むので、例えば、受信データを使用するソフトウエア側で、あらかじめアドレスを指定して受信データを読込むことができるなど、決めうち処理を用いることができる結果、オーバーヘッドを低減することが可能である。
【００５８】
また、実施例１によれば、データ記憶部２２ａの一つの領域の最後尾に受信ステータスが位置し、受信ステータスの前に二種類のデータが位置するように、二種類のデータと受信ステータスとを領域に対して一括に書込むので、例えば、二種類のデータが、受信データがアプリケーションデータとソフトウエアの制御情報を示す埋め込みデータとから構成されている場合、領域の最後尾に受信ステータスが位置し、受信ステータスの前に埋め込みデータが位置するように、受信データと受信ステータスと埋め込みデータとを領域に対して一括に書込むので、埋め込みデータが固定位置に書込まれることとなる結果、ソフトウエアは決めうち処理を用いることが可能である。また、書込みフォーマットと同じフォーマットでデータを受信するため受信データの変換処理が不要である結果、さらにオーバーヘッドを低減することが可能である。また、埋め込みデータが受信ステータスに隣接して書込まれることになり、例えば、ＣＰＵなどのソフトウエアによりデータの読み出しが行われた場合、埋め込みデータと受信ステータスが同じキャッシュラインの収まる可能性が高くなるなど、キャッシュを有効的に使用することが可能である。
【００５９】
ここで、上記した決めうち処理を具体的に説明すると、図６の（１）に示したように、受信ステータス、アプリケーションデータ、埋め込みデータの順に受信データ領域に書込んだ場合、アプリケーションデータのサイズに応じて、埋め込みデータの位置が異なるので、埋め込みデータの位置を受信ステータスを読むまで得ることはできない。一方、図６の（２）に示したように、受信ステータス、埋め込みデータ、アプリケーションデータの順に受信データ領域に書込んだ場合、受信ステータスと埋め込みデータのデータサイズは固定であり、アプリケーションデータのサイズに依存しないので、例えば、埋め込みデータを参照するなどの決めうち処理を用いることが可能である。
【実施例２】
【００６０】
ところで、上記した実施例１では、受信データを受信データ領域の一つの領域に書込む場合を説明したが、本発明はこれに限定されるものではなく、書込んだデータを更新する場合に本発明を用いてもよい。そこで、以下では、受信データ領域の一つの領域に書込んだデータを更新する場合を実施例２として説明する。なお、実施例２では、実施例２に係る全体構成および実施例２による効果を説明する。
【００６１】
［記憶制御装置を利用したシステムの全体構成（実施例２）］
まず最初に、図７を用いて、実施例２に係る記憶制御装置を利用したシステムの全体構成を説明する。図７は、実施例２に係る記憶制御装置を利用したシステムの全体構成図である。送信側端末装置７０は記憶部と通信制御部７１を有し、図示されない制御部（ＣＰＵ）により動作が制御される。また、受信側端末装置７３にも記憶部７５および通信制御部７４が設けられるとともに、全体の動作制御が図示されない制御部により司られる。送信側端末装置７０と受信側端末装置７３とは、ネットワークなどにより相互に接続されている。
【００６２】
図７に示したように、送信側端末装置７０の通信制御部７１は、下位ソフトウエアから投入された送信コマンド内のパラメータに基づいて、送信側端末装置１０のメモリ領域を読み取り、それを送信コマンド内の埋め込みデータとマージして、ペイロードを作成する。また、ユーザデータのサイズや埋め込みデータのサイズに基づきヘッダを作成する。その後、送信コマンド内のパラメータに基づいて、記憶部からアプリケーションデータを読み出す。そして、送信コマンド内の埋め込みデータを後ろ詰めにして、読み出したアプリケーションデータと合せて、送信データ７２（メッセージ）を作成する。
【００６３】
続いて、送信側端末装置７０にて送信された送信データ７２を受信した受信側端末装置７３の通信制御部７４は、送信データ７２のヘッダからペイロード（アプリケーションデータと埋め込みデータの合計）のサイズを得る。そして、受信ステータスを作成し、続いて、記憶部２２のデータ記憶部２２ａの一つの領域内の書込み開始位置を算出する。
【００６４】
その後、受信側端末装置７３は、受信データバッファの一つの領域の最後尾に受信ステータスが位置し、受信ステータスの前に二種類のデータ（例えば、アプリケーションデータと埋め込みデータ）が位置するように、アプリケーションデータと埋め込みデータと受信ステータスとを受信データバッファの一つの領域に対して一括に書込む。そして、下位ソフトウエアは、受信ステータスを読み出し、アプリケーションデータをアプリケーションに引き渡す。
【００６５】
そして、受信側端末装置７３の通信制御部７４は、記憶部７５に書込まれ記憶されているデータを更新する場合、受信データバッファの書込み開始アドレスを、データを読み出したキャッシュのキャッシュラインに揃える（図７の（１））。具体的には、例えば、データを読み出したキャッシュのキャッシュラインに揃うようにするため、受信データを書込むために割り与えられた領域と等しいサイズになるように書込むデータの先頭部分にパディング（ごみ）を書込む。
【００６６】
［実施例２による効果］
上述してきたように、実施例２によれば、記憶された受信データを更新する場合、受信データの書込み開始アドレスを、受信データをあらかじめ決められたメモリアライン、または、あらかじめ決められたブロックサイズの整数倍に揃えるので、例えば、キャッシュライン・サイズのブロックに対するｐａｒｔｉａｌ  ｗｒｉｔｅ（部分的な書換え）がブロック全体の書換えに比べて遅い情報処理装置（計算機）において、本来書き込むべき領域より手前側（アドレス上位）から更新することが可能な状況で、最大限の性能を引き出すことが可能である。
【実施例３】
【００６７】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では実施例３として、本発明に含まれる他の実施例について説明する。
【００６８】
例えば、受信データにエラーがある場合、受信ステータスをエラーフラグに差し替えて書込むようにしてもよい。これにより、受信データにエラーがある場合、例えば、受信データの末尾にＣＲＣを付けてビットエラーを検出している場合など、受信ステータスをエラーフラグに差し替えて書込むので、受信ステータスを書込む際には、受信データの書込みは終了していることになり書込んだデータの妥当性を保証することができ、例えば、データを最後まで受信し終わる前に、書込みを開始するなど、さらにレイテンシを改善することが可能である。
【００６９】
また、本実施例において説明した送信側端末装置による処理（図４参照）や受信側端末装置による処理（図５参照）のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報（例えば、受信データや受信ステータスなど）については、特記する場合を除いて任意に変更することができる。
【００７０】
また、図４または図５に図示した送信側端末装置や受信側端末装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合、例えば、通信部１１ａと作成部１１ｂを統合・分散するなど、具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、送信側端末装置や受信側端末装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００７１】
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例（送信側および受信側）を説明する。
【００７２】
［記憶制御プログラムを実行するコンピュータシステム（送信側）］
図８は、記憶制御プログラムを実行するコンピュータシステム（送信側）８０を示す図である。同図に示すように、コンピュータシステム（送信側）８０は、ＲＡＭ８１と、ＨＤＤ８２と、ＲＯＭ８３と、ＣＰＵ８４とから構成される。ここで、ＲＯＭ８３には、上記の実施例と同様の機能を発揮するプログラム、つまり、図８に示すように、通信プログラム８３ａと、作成プログラム８３ｂと、アプリケーションプログラム８３ｃと、下位ソフトウエアプログラム８３ｄがあらかじめ記憶されている。
【００７３】
そして、ＣＰＵ８４には、これらのプログラム８３ａ〜８３ｄを読み出して実行することで、図８に示すように、通信プロセス８４ａと、作成プロセス８４ｂと、アプリケーションプロセス８４ｃと、下位ソフトウエアプロセス８４ｄとなる。なお、各プロセス８４ａ〜８４ｄは、図２に示した、通信部１１ａ、作成部１１ｂ、アプリケーション１３ａおよび下位ソフトウエア１３ｂにそれぞれ対応する。
【００７４】
また、ＨＤＤ８２には、アプリケーションプロセス８４ｃなどに使用され、また、ネットワークを介して他のコンピュータシステムに送信されるアプリケーションデータテーブル８２ａが設けられる。そして、ＣＰＵ８４は、アプリケーションデータテーブル８２ａに格納される情報をＲＡＭ８１に呼び出して、各種処理を実行する。なお、アプリケーションデータテーブル８２ａは、図２に示した、アプリケーションデータ１２ａに対応する。
【００７５】
ところで、上記したプログラム８３ａ〜８３ｄは、必ずしもＲＯＭ８３に記憶させておく必要はなく、例えば、コンピュータシステム（送信側）８０に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」の他に、コンピュータシステム（送信側）８０の内外に備えられるハードディスクドライブ（ＨＤＤ）などの「固定用の物理媒体」、さらに、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータシステム（送信側）８０に接続される「他のコンピュータシステム」に記憶させておき、コンピュータシステム（送信側）８０がこれらからプログラムを読み出して実行するようにしてもよい。
【００７６】
［記憶制御プログラムを実行するコンピュータシステム（受信側）］
図９は、記憶制御プログラムを実行するコンピュータシステム（受信側）９０を示す図である。同図に示すように、コンピュータシステム（受信側）９０は、ＲＡＭ９１と、ＨＤＤ９２と、ＲＯＭ９３と、ＣＰＵ９４とから構成される。ここで、ＲＯＭ９３には、上記の実施例と同様の機能を発揮するプログラム、つまり、図９に示すように、通信プログラム９３ａと、データ書込みプログラム９３ｂと、アプリケーションプログラム９３ｃと、下位ソフトウエアプログラム９３ｄがあらかじめ記憶されている。
【００７７】
そして、ＣＰＵ９４には、これらのプログラム９３ａ〜９３ｄを読み出して実行することで、図９に示すように、通信プロセス９４ａと、データ書込みプロセス９４ｂと、アプリケーションプロセス９４ｃと、下位ソフトウエアプロセス９４ｄとなる。なお、各プロセス９４ａ〜９４ｄは、図２に示した、通信部２１ａ、データ書込み部２１ｂ、アプリケーション２３ａおよび下位ソフトウエア２３ｂにそれぞれ対応する。
【００７８】
また、ＨＤＤ９２には、所定の範囲で区切られた複数の領域から構成されるデータ記憶テーブル９２ａが設けられる。そして、ＣＰＵ９４は、データ記憶テーブル９２ａに格納される情報をＲＡＭ９１に呼び出して、各種処理を実行する。なお、データ記憶テーブル９２ａは、図２に示した、データ記憶部２２ａに対応する。
【００７９】
ところで、上記したプログラム９３ａ〜９３ｄは、必ずしもＲＯＭ９３に記憶させておく必要はなく、例えば、コンピュータシステム（受信側）９０に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」の他に、コンピュータシステム（受信側）９０の内外に備えられるハードディスクドライブ（ＨＤＤ）などの「固定用の物理媒体」、さらに、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータシステム（受信側）９０に接続される「他のコンピュータシステム」に記憶させておき、コンピュータシステム（受信側）９０がこれらからプログラムを読み出して実行するようにしてもよい。
【産業上の利用可能性】
【００８０】
以上のように、本発明に係る記憶制御装置、記憶制御方法、記憶制御プログラムおよび情報処理装置は、受信データと、前記受信データのステータスを示す受信ステータスとを記憶するに有用であり、特に、１回の書込みで受信データと受信ステータスとを書込むことができる結果、レイテンシを小さくすることが可能であるとともに、受信データと受信ステータスを読込むのに一つの領域をＲｅａｄすればよく、データとステータスとを読み出した際に一つのキャッシュラインに収まる結果、ＣＰＵなどのソフトウエアによるデータ読込み処理などのパフォーマンスを向上させることに適する。
【図面の簡単な説明】
【００８１】
【図１】実施例１に係る記憶制御装置の概要と特徴を示す図である。
【図２】実施例１に係る記憶制御装置を用いたシステムの内部構成を示すブロック図である。
【図３】送信コマンド埋め込みデータの扱い例を示す図である。
【図４】実施例１に係る送信側端末装置における送信データ作成処理の流れを示すフローチャートである。
【図５】実施例１に係る受信側端末装置における受信データ書込み処理の流れを示すフローチャートである。
【図６】埋め込みデータを後ろに置く場合の例を示す図である。
【図７】実施例２に係る記憶制御装置を利用したシステムの全体構成を示す図である。
【図８】記憶制御プログラムを実行するコンピュータシステム（送信側）を示す図である。
【図９】記憶制御プログラムを実行するコンピュータシステム（受信側）を示す図である。
【図１０】従来技術を説明するための図である。
【符号の説明】
【００８２】
１０  送信側端末装置
１１  通信制御部
１１ａ  通信部
１１ｂ  作成部
１２  記憶部
１２ａ  アプリケーションデータ
１３  制御部
１３ａ  アプリケーション
１３ｂ  下位ソフトウエア
２０  受信側端末装置
２１  通信制御部
２１ａ  通信部
２１ｂ  データ書込み部
２２  記憶部
２２ａ  データ記憶部
２３  制御部
２３ａ  アプリケーション
２３ｂ  下位ソフトウエア
７０  送信側端末装置
７１  通信制御部
７２  送信データ
７３  受信側端末装置
７４  通信制御部
７５  記憶部
８０  コンピュータシステム（送信側）
８１  ＲＡＭ
８２  ＨＤＤ
８２ａ  アプリケーションデータテーブル
８３  ＲＯＭ
８３ａ  通信プログラム
８３ｂ  作成プログラム
８３ｃ  アプリケーションプログラム
８３ｄ  下位ソフトウエアプログラム
８４  ＣＰＵ
８４ａ  通信プロセス
８４ｂ  作成プロセス
８４ｃ  アプリケーションプロセス
８４ｄ  下位ソフトウエアプロセス
９０  コンピュータシステム（受信側）
９１  ＲＡＭ
９２  ＨＤＤ
９２ａ  データ記憶テーブル
９３  ＲＯＭ
９３ａ  通信プログラム
９３ｂ  データ書込みプログラム
９３ｃ  アプリケーションプログラム
９３ｄ  下位ソフトウエアプログラム
９４  ＣＰＵ
９４ａ  通信プロセス
９４ｂ  データ書込みプロセス
９４ｃ  アプリケーションプロセス
９４ｄ  下位ソフトウエアプロセス
【図１】
0004740766.tif 000002
【図２】
0004740766.tif 000003
【図３】
0004740766.tif 000004
【図４】
0004740766.tif 000005
【図５】
0004740766.tif 000006
【図６】
0004740766.tif 000007
【図７】
0004740766.tif 000008
【図８】
0004740766.tif 000009
【図９】
0004740766.tif 000010
【図１０】
0004740766.tif 000011