通信装置、通信方法、およびプログラム
【課題】ディスク記憶媒体のデータを、複数のサーバにインストールさせる作業に、長い時間を要しない通信装置を提供する。
【解決手段】通信装置5は、プロトコルシリアライザ10と、キャッシュコントローラ11とを備える。プロトコルシリアライザ10は、ディスク記憶媒体Kに記憶されたデータの読取要求を、サーバA1〜A3から受信するとともに、該受信した読取要求を、ディスク記憶媒体Kへの一つのアクセス権に係る命令にシリアライズする。キャッシュコントローラ11は、シリアライズされた読取要求の順序に従って、読取要求に係る要求データを、ディスク記憶媒体Kに記憶されたデータの中から取得する。また、プロトコルシリアライザ10は、キャッシュコントローラ11が取得した要求データを、該要求データに対応する読取要求の送信元サーバAに送信する。
【解決手段】通信装置5は、プロトコルシリアライザ10と、キャッシュコントローラ11とを備える。プロトコルシリアライザ10は、ディスク記憶媒体Kに記憶されたデータの読取要求を、サーバA1〜A3から受信するとともに、該受信した読取要求を、ディスク記憶媒体Kへの一つのアクセス権に係る命令にシリアライズする。キャッシュコントローラ11は、シリアライズされた読取要求の順序に従って、読取要求に係る要求データを、ディスク記憶媒体Kに記憶されたデータの中から取得する。また、プロトコルシリアライザ10は、キャッシュコントローラ11が取得した要求データを、該要求データに対応する読取要求の送信元サーバAに送信する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信装置、通信方法、およびプログラムに関する。
【背景技術】
【0002】
近年、データ記憶媒体へのアクセスを制御する技術が提案されている。例えば、特許文献1には、複数のプロセッサを備えるマルチプロセッサシステムにおいて、各プロセッサから主記憶へのアクセスをシリアライズする技術が開示される。特許文献2には、記録媒体に書き込むデータをキャッシュメモリに一旦格納して、該格納したデータを所定アドレス範囲のグループ単位で記憶媒体に書き込む技術が開示される。特許文献3には、異なるインターフェースを持つ複数のコンピュータが記憶媒体上のデータを共有可能とするため、コンピュータが発行する書込要求や読取要求を変換する技術が開示されている。特許文献4には、一のクライアントがCD−Rディスクから読み取るデータを最新のものとするために、一のクライアントの読み取り中に、他のクライアントが書き込み要求を出力した場合、後に出力された書き込み要求の処理を後回しにする技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2000−194680号公報
【特許文献2】特開2003−196032号公報
【特許文献3】特開平9−325905号公報
【特許文献4】特開平10−079666号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、光学ドライブに挿入されるディスク記憶媒体へのアクセスは、一つの機器にのみ認められる。このため、OS(Operating System)等のソフトウェアをディスク記憶媒体から複数の機器にインストールする場合、一の機器へのデータのインストールが完了した後、二の機器に対してインストール操作が行われていた。これにより、全ての機器に対するインストール操作が完了するまで長い時間を要していた。この問題に関して、例えば特許文献4は、一つのクライアントがCD−Rディスクのデータを読み取るものであり、CD−Rディスクのデータを複数の機器に読み取らせることを考慮したものではない。よって、特許文献4は、上記問題を解決するものではない。
【0005】
本発明は、上述のような事情に鑑みてなされたもので、ディスク記憶媒体のデータを、複数のサーバにインストールさせる作業に、長い時間を要しない通信装置、通信方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の第1の観点に係る通信装置は、
ディスク記憶媒体に記憶されたデータの読取要求を、複数のサーバから受信する受信手段と、
該受信手段が受信した前記読取要求を、前記ディスク記憶媒体への一つのアクセス権に係る命令にシリアライズするシリアライズ手段と、
前記シリアライズされた前記読取要求の順序に従って、前記読取要求に係る要求データを、前記ディスク記憶媒体に記憶されたデータの中から取得する情報取得手段と、
前記情報取得手段が取得した要求データを、該要求データに対応する前記読取要求の送信元サーバに送信する送信手段と、
を備えることを特徴とする。
【0007】
本発明の第2の観点に係る通信方法は、
ディスク記憶媒体に記憶されたデータの読取要求を、複数のサーバから受信する受信ステップと、
該受信ステップで受信された前記読取要求を、前記ディスク記憶媒体への一つのアクセス権に係る命令にシリアライズするシリアライズステップと、
前記シリアライズされた前記読取要求の順序に従って、前記読取要求に係る要求データを、前記ディスク記憶媒体に記憶されたデータの中から取得する情報取得ステップと、
前記情報取得ステップで取得された要求データを、該要求データに対応する前記読取要求の送信元サーバに送信する送信ステップと、
を備えることを特徴とする。
【0008】
本発明の第3の観点に係るプログラムは、
コンピュータを、
ディスク記憶媒体に記憶されたデータの読取要求を、複数のサーバから受信する受信手段、
該受信手段が受信した前記読取要求を、前記ディスク記憶媒体への一つのアクセス権に係る命令にシリアライズするシリアライズ手段、
前記シリアライズされた前記読取要求の順序に従って、前記読取要求に係る要求データを、前記ディスク記憶媒体に記憶されたデータの中から取得する情報取得手段、
前記情報取得手段が取得した要求データを、該要求データに対応する前記読取要求の送信元サーバに送信する送信手段、
として機能させることを特徴とする。
【発明の効果】
【0009】
本発明によれば、サーバから送信された読取要求が、ディスク記憶媒体への一つのアクセス権に係る命令にシリアライズされる。そして、該シリアライズされた読取要求の順序に従って、読取要求に係る要求データが、ディスク記憶媒体に記憶されたデータの中から取得され、要求データに対応する読取要求の送信元サーバに送信される。これにより、サーバによるディスク記憶媒体への同時アクセスが可能になり、一のサーバで要求データのインストールが完了する前に、他のサーバに対するインストール操作(読取要求の送信操作)を行った場合でも、各サーバの要求データを、読み取って、各サーバに送信することができる。したがって、ディスク記録媒体のデータを、複数のサーバにインストールさせる作業に、長い時間を要しない。
【図面の簡単な説明】
【0010】
【図1】本発明の実施の形態に係る通信システムの構成例を示すブロック図である。
【図2】サーバが送信する読取要求のパケットを示す図である。
【図3】プロトコルシリアライザの構成を示すブロック図である。
【図4】プロトコルシリアライザが、読取要求のパケットに対して実行する処理を示す図である。
【図5】キャッシュコントローラに送られる読取要求のパケットを示す図である。
【図6】キャッシュコントローラの構成を示すブロック図である。
【図7】キャッシュテーブルを示す図である。
【図8】図4の処理に続いて、キャッシュコントローラが、読取要求のパケットに対して実行する処理を示す図である。
【図9】要求データのパケットを示す図である。
【図10】図8の処理に続いて、キャッシュコントローラが、要求データのパケット等に対して実行する処理を示す図である。
【図11】図10の処理に続いて、プロトコルシリアライザが、要求データのパケットに対して実行する処理を示す図である。
【図12】読取要求に係る要求データがキャッシュメモリに存在する場合の通信システムの全体動作を示す図である。
【図13】読取要求に係る要求データがキャッシュメモリに存在しない場合の通信システムの全体動作を示す図である。
【図14】DVD/CDドライブにディスク記憶媒体が挿入されたときの通信システムの全体動作を示す図である。
【図15】DVD/CDドライブからディスク記憶媒体が抜去されたときの通信システムの全体動作を示す図である。
【図16】キャッシュテーブルの変更例を示す図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態1について、図を参照して詳細に説明する。なお図中、同一または同等の部分には同一の符号を付す。
【0012】
図1は、本発明の実施の形態に係る通信システム1の構成例を示すブロック図である。通信システム1は、複数台のサーバA1〜A3と、DVD/CDドライブ3と、キャッシュメモリ4と、通信装置5とを備える。
【0013】
DVD/CDドライブ3は、CD−ROMディスク,CD−Rディスク,CD−RWディスク,DVD−ROMディスク,DVD−Rディスク,DVD−RWディスク,DVD−RAMディスク,DVD+RWディスク,DVD+Rディスクなどのディスク記憶媒体Kが挿入されるドライブである。DVD/CDドライブ3は、ディスク記憶媒体Kへのアクセス権を単一の機器に認め、該機器にのみディスク記憶媒体Kに記憶されたデータを読み取らせる。
【0014】
キャッシュメモリ4は、一枚あるいは複数枚のDIMM(Dual Inline Memory Module)から構成され、ディスク記憶媒体Kに記憶されたデータを書き込むために使用される。キャッシュメモリ4の容量は、DVD/CDドライブ3に挿入されるディスク記憶媒体Kの最大容量以上である。
【0015】
サーバA1〜A3は、それぞれ制御部・記憶部・通信部(図示せず)を有する。各サーバA1〜A3の制御部は、通信部に読取要求を通信装置5へ送信させ、また、読取要求に応じて返信される要求データを受信させて、該要求データを記憶部に記憶する。
【0016】
図2は、サーバA1〜A3が送信する読取要求のパケットを示す図である。読取要求のパケットには、パケットIDと、リードアドレスと、リードサイズと、保護情報とが含まれる。パケットIDは、読取要求のパケットを識別するためのIDである。リードアドレスは、要求データのディスク記憶媒体Kにおける格納先アドレスを示す。リードサイズは、要求データのサイズを示す。保護情報は、パケット保護のための情報である。
【0017】
通信装置5は、サーバA1〜A3とDVD/CDドライブ3との間の通信を中継する装置であり、図1に示すように、プロトコルシリアライザ10と、キャッシュコントローラ11と、メモリコントローラ12と、DVD/CDコントローラ13と、サーバ用インターフェースB1〜B3と、DVD/CDドライブ用インターフェースCと、メモリ用インターフェースJとを備える。
【0018】
サーバ用インターフェースB1〜B3は、サーバA1〜A3毎に設けられる。各サーバ用インターフェースBは、それぞれ対応するサーバAと通信装置5とを接続するためのインターフェースであり、USB(Universal Serial Bus)2.0, USB1.1, ATA(Advanced Technology Attachment), SATA(Serial Advanced Technology Attachment)などから構成される。
【0019】
DVD/CDドライブ用インターフェースCは、DVD/CDドライブ3と通信装置5とを接続するためのインターフェースであり、サーバ用インターフェースBと同様、USB2.0, USB1.1, ATA, SATAなどから構成される。
【0020】
本実施の形態では、サーバ用インターフェースBとDVD/CDドライブ用インターフェースCとは同種類のものが使用される。なお、これらインターフェースB,Cは異なる種類のものが使用されてもよい。この場合には、公知の技術により、インターフェース変換装置が通信装置5に設けられる。
【0021】
メモリ用インターフェースJは、キャッシュメモリ4と通信装置5とを接続するためのインターフェースであり、例えば、DDR(Double-Data-Rate)2/DDR3から構成される。
【0022】
図3は、プロトコルシリアライザ10の構成を示すブロック図である。プロトコルシリアライザ10は、ドライブ側送受信バッファDと、サーバ側送受信バッファE1〜E3とを備える。ドライブ側送受信バッファDには、受信バッファF及び送信バッファGが含まれる。サーバ側送受信バッファE1〜E3は、サーバA1〜A3毎に設けられる。各サーバ側送受信バッファEには、受信バッファH及び送信バッファIが含まれる。
【0023】
図4は、プロトコルシリアライザ10が、読取要求のパケットに対して実行する処理を示す図である。
【0024】
プロトコルシリアライザ10は、サーバA1〜A3から送信される読取要求のパケットを、サーバ用インターフェースB1〜B3(図1)を介して、サーバ側送受信バッファE1〜E3内の受信バッファH1〜H3に受信させ、蓄積させる。
【0025】
図4の例では、読取要求1,4のパケットは、サーバA1から送信されたことで、サーバ側送受信バッファE1内の受信バッファH1に受信・蓄積される。読取要求3のパケットは、サーバA2から送信されたことで、サーバ側送受信バッファE2内の受信バッファH2に受信・蓄積される。読取要求2,5のパケットは、サーバA3から送信されたことで、サーバ側送受信バッファE3内の受信バッファH3に受信・蓄積される。
【0026】
さらに、プロトコルシリアライザ10は、サーバA1〜A3から受信した読取要求のパケットを、ディスク記憶媒体Kへの一つのアクセス権に係る命令にシリアライズして、キャッシュコントローラ11に送信する。具体的には、プロトコルシリアライザ10は、受信バッファH1〜H3に受信・蓄積された読取要求のパケットを受信順に取り出して、ドライブ側送受信バッファD内の受信バッファFに格納するとともに、該格納した読取要求のパケットを、FIFO(First-In First-Out)で取り出して、キャッシュコントローラ11に送る。図4の例では、読取要求1〜5のパケットは、読取要求1→2→3→4→5の受信順序で、受信バッファH1〜H3から取り出されて受信バッファFに格納され、キャッシュコントローラ11に送られる。
【0027】
図5は、キャッシュコントローラ11に送られる読取要求のパケットを示す図である。図5に示す読取要求のパケットは、図2に示す読取要求のパケットに、統合パケットIDやサーバ番号が追加されたものである。統合パケットIDは、通信装置5内で固有の識別情報であり、パケットのヘッダ情報になる。サーバ番号は、読取要求の送信元サーバAを示す。統合パケットIDやサーバ番号は、プロトコルシリアライザ10が読取要求のパケットを受信バッファFに格納する際に付加するものである。例えば、受信バッファH1に格納されていた読取要求1のパケットには、サーバA1を示すサーバ番号が付加される。
【0028】
図6は、キャッシュコントローラ11の構成を示すブロック図である。キャッシュコントローラ11は、メインコントローラ20を備えており、図7に示すキャッシュテーブルを格納する。
【0029】
キャッシュテーブルでは、ドライブ側アドレス範囲と、キャッシュ側アドレス範囲と、キャッシュ済みフラグとが対応付けられる。ドライブ側アドレス範囲は、読取要求に係る要求データがディスク記憶媒体Kに格納されるアドレス範囲を示す。キャッシュ側アドレス範囲は、読取要求に係る要求データがキャッシュメモリ4に格納されるアドレス範囲を示す。本実施の形態では、キャッシュテーブルの各行に示されるドライブ側アドレス範囲及びキャッシュ側アドレス範囲には、同一のアドレスが記される。
【0030】
キャッシュ済みフラグは、ディスク記憶媒体Kのドライブ側アドレス範囲に格納されたデータが、キャッシュメモリ4のキャッシュ側アドレス範囲に書き込み(キャッシュ)済みであるか否かを示す。キャッシュ済みフラグが「○」であるキャッシュテーブルの行は、ドライブ側アドレス範囲に格納されたデータが、キャッシュ側アドレス範囲に書き込まれていることを示す。キャッシュ済みフラグが「×」である行は、ドライブ側アドレス範囲に格納されたデータが、キャッシュ側アドレス範囲に書き込まれていないことを示す。
【0031】
図8は、図4の処理に続いて、キャッシュコントローラ11が、読取要求のパケットに対して実行する処理を示す図である。
【0032】
キャッシュコントローラ11が読取要求のパケットを受け取ると、メインコントローラ20は、キャッシュテーブルを参照して、読取要求に係る要求データがキャッシュメモリ4(図1)に存在するか否かを判別する。具体的には、メインコントローラ20は、キャッシュテーブルにおいて、読取要求のパケットに示されるリードアドレスが、ドライブ側アドレス範囲やキャッシュ側アドレス範囲に一致する行を特定して、該行のキャッシュ済みフラグが「○」である場合、要求データがキャッシュメモリ4に存在すると判別し、上記行のキャッシュ済みフラグが「×」である場合、要求データがキャッシュメモリ4に存在しないと判別する。
【0033】
メインコントローラ20は、要求データがキャッシュメモリ4に存在すると判別された読取要求のパケットを、メモリコントローラ12に送り、要求データがキャッシュメモリ4に存在しないと判別された読取要求のパケットを、DVD/CDコントローラ13に送る。
【0034】
キャッシュテーブル(図7)の第3,5行は、読取要求3,5に係る要求データ3,5の格納先アドレスを示す行であり、キャッシュ済みフラグが「○」である。よって、要求データ3,5は、キャッシュメモリ4に存在すると判別され、その結果、図8に示すように、読取要求3,5のパケットは、メモリコントローラ12に送られる。
【0035】
キャッシュテーブルの第1,2,4行は、読取要求1,2,4に係る要求データ1,2,4の格納先アドレスを示す行であり、キャッシュ済みフラグが「×」である。よって、要求データ1,2,4は、キャッシュメモリ4に存在しないと判別され、その結果、読取要求1,2,4のパケットは、DVD/CDコントローラ13に送られる。
【0036】
本実施の形態では、上記の要求データの判別や、該判別結果に基づく読取要求のパケットの送信は、プロトコルシリアライザ10から読取要求のパケットが受け取られるたびに実行される。これにより、DVD/CDコントローラ13やメモリコントローラ12に送られる読取要求のパケットは、プロトコルシリアライザ10がシリアライズした順序に従うものになる。図8の例では、読取要求1〜5が読取要求1→2→3→4→5の順序にシリアライズされていたため、読取要求3,5のパケットは、読取要求3→5の順序でメモリコントローラ12に送られ、読取要求1,2,4のパケットは、読取要求1→2→4の順序で、DVD/CDコントローラ13に送られている。
【0037】
メモリコントローラ12は、メモリ用インターフェースJ(図1)を介して、キャッシュメモリ4にデータを書き込み、また、キャッシュメモリ4からデータを読み取り可能である。該メモリコントローラ12は、キャッシュコントローラ11から読取要求のパケットを受け取るたびに、該パケットの内容(リードアドレスやリードサイズ)に従って、キャッシュメモリ4から要求データを読み取り、該要求データのパケットを、キャッシュコントローラ11に送る。
【0038】
DVD/CDコントローラ13は、DVD/CDドライブ用インターフェースC(図1)を介して、ディスク記憶媒体Kのデータを読み取り可能である。該DVD/CDコントローラ13は、キャッシュコントローラ11から読取要求のパケットを受け取るたびに、該パケットの内容に従って、ディスク記憶媒体Kから要求データを読み取り、該要求データのパケットを、キャッシュコントローラ11に送る。
【0039】
図9は、メモリコントローラ12やDVD/CDコントローラ13から送られる要求データのパケットを示す図である。要求データのパケットには、キャッシュメモリ4やディスク記憶媒体Kから読み取られた要求データに、統合バケットID・サーバ番号・パケットID・リードアドレス・保護情報が付加されている。統合バケットID〜保護情報は、読取要求のパケット(図5)に含まれていたものである。
【0040】
図10は、図8の処理に続いて、キャッシュコントローラ11が、要求データのパケット等に対して実行する処理を示す図である。
【0041】
上述のように、メモリコントローラ12やDVD/CDコントローラ13が、キャッシュメモリ4やディスク記憶媒体Kから要求データを読み取り、キャッシュコントローラ11に送ることで、キャッシュコントローラ11は、ディスク記憶媒体Kに記憶されたデータ(該データには、ディスク記憶媒体K自体に記憶されたデータや、キャッシュメモリ4に書き込まれたデータが含まれる)の中から、読取要求に係る要求データを取得する。
【0042】
また、読取要求のパケットが、メモリコントローラ12やDVD/CDコントローラ13が、読取要求のパケットを受け取るたび、要求データを読み取って、キャッシュコントローラ11に送ることで、キャッシュコントローラ11は、プロトコルシリアライザ10がシリアライズした読取要求の順序で、読取要求に係る要求データを取得する。図10の例では、キャッシュコントローラ11は、シリアライズされた読取要求3→5,1→2→4の順序で、読取要求1〜5に係る要求データ1〜5を取得している。
【0043】
メインコントローラ20は、キャッシュコントローラ11がメモリコントローラ12から要求データ(図10では要求データ3,5)のパケットを受け取るたびに、該要求データのパケットを、プロトコルシリアライザ10に送る。
【0044】
また、メインコントローラ20は、キャッシュコントローラ11がDVD/CDコントローラ13から要求データのパケットを受け取るたびに、要求データの書込要求をメモリコントローラ12に送る。図10の例では、要求データ1,2,4のパケットが受け取られることで、要求データ1,2,4の書込要求1,2,4が、メモリコントローラ12に送られている。
【0045】
書込要求は、キャッシュメモリ4に要求データを書き込ませるため、メモリコントローラ12に送信されるものである。書込要求には、少なくとも、要求データパケット(図9)の要求データやリードアドレスが含まれ、本実施の形態では、DVD/CDコントローラ13から受け取られた要求データのパケット(図9)が、そのまま書込要求としてメモリコントローラ12に転送される。上記のように、リードアドレスが書込要求に含まれるのは、要求データをキャッシュメモリ4に格納するアドレスを、ディスク記憶媒体Kにおける格納先アドレスと同一にすることを意図したものである。このことから、キャッシュテーブル(図7)に示されるドライブ側アドレス範囲とキャッシュ側アドレス範囲とが、同一のアドレスになっている。
【0046】
メモリコントローラ12は、書込要求をキャッシュコントローラ11から受け取るたびに、書込要求に含まれる要求データを、キャッシュメモリ4に書き込む。要求データが書き込まれるアドレスは、書込要求に含まれるリードアドレスに設定される。
【0047】
要求データの書き込みが完了した際には、メモリコントローラ12は、該書き込みの完了を示す完了通知を、キャッシュコントローラ11に送る。完了通知には、少なくとも、要求データが書き込まれたキャッシュメモリ4のアドレス(すなわちリードアドレス)が含まれる。
【0048】
メインコントローラ20は、キャッシュコントローラ11が完了通知を受け取るたびに、要求データの書き込みが完了したことを示す情報を、キャッシュテーブル(図7)に記録する。具体的には、メインコントローラ20は、キャッシュテーブルにおいて、キャッシュ側アドレス範囲(またはドライブ側アドレス範囲)のアドレスが、完了通知に含まれるアドレスに一致する行を特定して、該行のキャッシュ済みフラグを「×」から「○」に変更する。図10の例では、メモリコントローラ12から完了通知1,2,4が受け取られることで、キャッシュテーブルにおける要求データ1,2,4の行のキャッシュ済みフラグが「×」から「○」に変更されている。
【0049】
キャッシュテーブルの記録(フラグの変更)が完了した際には、メインコントローラ20は、DVD/CDコントローラ13から受け取った要求データ(図10では要求データ1,2,4)のパケットを、プロトコルシリアライザ10に送る。
【0050】
図11は、図10の処理に続いて、プロトコルシリアライザ10が、要求データのパケットに対して実行する処理を示す図である。
【0051】
プロトコルシリアライザ10は、キャッシュコントローラ11から送られた要求データ(図11では要求データ1〜5)のパケットを、順次、ドライブ側送受信バッファD内の送信バッファGに受信・格納する。
【0052】
また、プロトコルシリアライザ10は、要求データのパケットを送信バッファGに受信するたびに、受信バッファF内に格納された読取要求のパケット(図5)の中から、統合パケットIDやサーバ番号が上記要求データのパケットと同一である読取要求のパケットを特定して、該読取要求のパケットから統合バケットIDやサーバ番号を削除する。例えば、要求データ2のパケットが受信バッファGに受信された際には、要求データ2に対応する読取要求2のパケットから、統合バケットIDやサーバ番号が削除される。
【0053】
さらに、プロトコルシリアライザ10は、送信バッファGに格納したパケットの要求データを、FIFO(First-In First-Out)で取り出して、サーバ側送受信バッファE内の送信バッファIに送り、該送信バッファIに格納する。要求データの送り先となる送信バッファIは、要求データのパケット(図9)に含まれるサーバ番号に基づき選択される。
【0054】
さらに、プロトコルシリアライザ10は、送信バッファIに格納した要求データのパケットを、FIFO(First-In First-Out)で取り出して、サーバ用インターフェースB(図1)を介して、送信バッファIに対応するサーバAに送信する。
【0055】
例えば、要求データ2のパケットには、サーバA3を示すサーバ番号が含まれていることで、要求データ2は、サーバA3に対応する送信バッファI3に送られ、この後、送信バッファI3からサーバA3に送信される。
【0056】
次に、通信システム1の全体動作について説明する。まず、図12を用いて、読取要求に係る要求データがキャッシュメモリ4に存在する場合の動作について説明する。
【0057】
プロトコルシリアライザ10は、サーバAが送信した読取要求のパケットを、サーバ側送受信バッファE内の受信バッファHに受信・蓄積させる(ステップS101)。
【0058】
さらに、プロトコルシリアライザ10は、読取要求のパケットを受信バッファHから取り出し、統合バケットIDやサーバ番号を付加して、ドライブ側送受信バッファD内の受信バッファFに格納する(ステップS102)。
【0059】
さらに、プロトコルシリアライザ10は、FIFOで、読取要求のパケットを受信バッファFから取り出して、キャッシュコントローラ11に送る(ステップS103)。
【0060】
キャッシュコントローラ11内のメインコントローラ20は、キャッシュテーブル(図7)を参照して、読取要求に係る要求データがキャッシュメモリ4に存在するか否か(キャッシュ済みであるか否か)を判別し(ステップS104)、要求データがキャッシュメモリ4に存在することで(ステップS104でYES)、読取要求のパケットを、メモリコントローラ12に送信する(ステップS105)。
【0061】
メモリコントローラ12は、読取要求のパケットの内容に従って、キャッシュメモリ4から要求データを読み取る(ステップS106)。
【0062】
さらに、メモリコントローラ12は、ステップS106で読み取った要求データに、統合バケットIDやサーバ番号を付加することで、要求データのパケットを取得して(ステップS107)、該要求データのパケットを、キャッシュコントローラ11に送る(ステップS108)。
【0063】
キャッシュコントローラ11は、要求データのパケットを、プロトコルシリアライザ10に送る(ステップS109)。
【0064】
プロトコルシリアライザ10は、要求データのパケットを、ドライブ側送受信バッファD内の送信バッファGに受信・格納し、また、要求データに対応する受信バッファF内の読取要求のパケットから、統合バケットIDやサーバ番号を削除する(ステップS110)。
【0065】
さらに、プロトコルシリアライザ10は、送信バッファGに格納した要求データを、送信バッファIに送り、この後、要求データを、送信バッファIに対応するサーバAに送信する(ステップS111)。
【0066】
次に、読取要求に係る要求データがキャッシュメモリ4に書き込まれていない場合の動作について、図13を用いて説明する。
【0067】
図13に示す動作では、ステップS101〜S103と同様のステップS201〜S203が実行された後、ステップS104に対応するステップS204で、メインコントローラ20は、読取要求に係る要求データがキャッシュメモリ4に存在しない(キャッシュ済みではない)と判定して(ステップS204でNO)、読取要求のパケットを、DVD/CDコントローラ13に送る(ステップS205)。
【0068】
DVD/CDコントローラ13は、読取要求のパケットの内容に従って、ディスク記憶媒体Kから要求データを読み取る(ステップS206)。
【0069】
さらに、DVD/CDコントローラ13は、ステップS206で読み取った要求データに、統合バケットIDやサーバ番号を付加することで、要求データのパケットを取得し(ステップS207)、該要求データのパケットを、キャッシュコントローラ11に送る(ステップS208)。
【0070】
キャッシュコントローラ11は、ステップS208で受け取ったパケットに含まれる要求データの書込要求を、メモリコントローラ12に送る(ステップS209)。
【0071】
メモリコントローラ12は、書込要求の内容に従って、要求データをキャッシュメモリ4に書き込み(ステップS210)、該書き込みが終了した際に、完了通知をメモリコントローラ11に送信する(ステップS211)。
【0072】
キャッシュコントローラ11は、完了通知を受け取ることに応じて、要求データの書き込みが完了したことを示す情報を、キャッシュテーブルに記録する(ステップS212)。
【0073】
さらに、キャッシュコントローラ11は、キャッシュテーブルへの記録が完了することに応じて、ステップS208で受け取った要求データのパケットを、プロトコルシリアライザ10に送る(ステップS213)。以降は、図12のステップS110,S111と同様のステップS214,S215が実行される。
【0074】
本実施の形態の通信装置5によれば、サーバA1〜A3から送信された読取要求が、ディスク記憶媒体Kへの一つのアクセス権に係る命令にシリアライズされる。そして、該シリアライズされた読取要求の順序に従って、読取要求に係る要求データが、ディスク記憶媒体Kに記憶されたデータの中から取得され、要求データに対応する読取要求の送信元サーバAに送信される。これにより、サーバA1〜A3によるディスク記憶媒体Kへの同時アクセスが可能になり、一のサーバAで要求データのインストールが完了する前に、他のサーバAに対するインストール操作(読取要求の送信操作)を行った場合でも、各サーバAの要求データを、読み取って、各サーバAに送信することができる。したがって、全てのサーバAに対するインストール操作を、長い時間を要せず完了させることができる。
【0075】
また、ディスク記憶媒体Kから読み取られた要求データは、キャッシュメモリ4に書き込まれ、上記要求データに対する読取要求が再び送信された場合には、キャッシュメモリ4から要求データが読み取られて、読取要求の送信元サーバAに送信される。これにより、要求データのインストールに要する時間が短くなる。
【0076】
また、キャッシュメモリ4の容量が、DVD/CDドライブ3に挿入されるディスク記憶媒体Kの最大容量以上であるため、ディスク記憶媒体Kに記憶されたデータ全てを、キャッシュメモリ4に書き込むことができる。したがって、ディスク記憶媒体K内のいずれのデータが要求されても、短時間でサーバに要求データを送信することができる。
【0077】
本発明は、上記の実施の形態に制限されず、特許請求の範囲において種々改変することができる。
【0078】
例えば、通信装置5は、キャッシュメモリ4を備えるものであってもよい。
【0079】
また、DVD/CDドライブ3にディスク記憶媒体Kが挿入された時点や、DVD/CDドライブ3からディスク記憶媒体Kが抜去された時点で、通信装置5からサーバA1〜A3に割り込み通知を送信して、該割り込み通知をサーバA1〜A3が受信することに応じて、サーバA1〜A3からの読取要求のパケットの送信を可能にしたり、不可能にしてもよい。このようにすれば、ディスク記憶媒体Kに記憶されたデータの読み取りが可能な状態で、サーバA1〜A3・通信装置5間の通信が行われるため、読取要求の送信後、直ちに、サーバA1〜A3に要求データを送ることができ、サーバA1〜A3・通信装置5間における無駄な通信が省かれる。この場合の通信システム1の全体動作を、図14,図15を用いて説明する。
【0080】
図14は、DVD/CDドライブ3にディスク記憶媒体Kが挿入されたときの通信システム1の全体動作を示す図である。
【0081】
DVD/CDドライブ3は、ディスク記憶媒体Kが挿入されることに応じて、ディスク記憶媒体Kが挿入されたことを示す挿入通知を、DVD/CDコントローラ13に送る(ステップS301)。
【0082】
DVD/CDコントローラ13は、挿入通知を受け取ることに応じて、プロトコルシリアライザ10に割り込み通知を送り(ステップS302)、さらに、プロトコルシリアライザ10は、サーバA1〜A3に、割り込み通知を送る(ステップS303)。該割り込み通知の受信後に、サーバA1〜A3は通信装置5に読取要求のパケットを送信することが可能になる。
【0083】
図15は、DVD/CDドライブ3からディスク記憶媒体Kが抜去されたときの通信システム1の全体動作を示す図である。
【0084】
DVD/CDドライブ3は、ディスク記憶媒体Kが抜去されることに応じて、ディスク記憶媒体Kが抜去されたことを示す抜去通知を、DVD/CDコントローラ13に送る(ステップS401)。
【0085】
DVD/CDコントローラ13は、抜去通知を受け取ることに応じて、割り込み通知を、キャッシュコントローラ11に送る(ステップS402)。
【0086】
キャッシュコントローラ11は、割り込み通知を受け取ることに応じて、キャッシュテーブル(図7)の初期化を実行する(ステップS403)具体的には、キャッシュコントローラ11は、キャッシュテーブルに示されるキャッシュ済みフラグの全てを「×」に変更する。
【0087】
DVD/CDコントローラ13は、抜去通知を受け取ることに応じて、割り込み通知をプロトコルシリアライザ10に送り(ステップS404)、さらに、プロトコルシリアライザ10は、割り込み通知をサーバA1〜A3に送信する(ステップS405)。
【0088】
また上記実施の形態と異なり、キャッシュテーブル(図7)のドライブ側アドレスとキャッシュ側アドレスとは、必ずしも一致しなくてもよく、一対一で対応する異なるアドレスが割り当てられてもよい。この場合、メインコントローラ20は、要求データがキャッシュメモリに存在するか否かを判別するため、キャッシュテーブルにおいて、ドライブ側アドレスが、読取要求のパケットのリードアドレスに一致する行を特定して、該行のキャッシュ済みフラグが「○」であるか否かを判定する。メモリコントローラ12に送信される書込要求(図10)には、要求データの有無の判別に使用されたキャッシュテーブルの行に示すキャッシュ側アドレス範囲が含まれ、メモリコントローラは、該キャッシュ側アドレス範囲に要求データを書き込む。
【0089】
また、キャッシュテーブルは、図16に示すように変更されてもよい。図16のキャッシュテーブルは、図7のキャッシュテーブルから、キャッシュ済みフラグやドライブ側アドレス範囲が省略されたものである。
【0090】
図16のキャッシュテーブルが使用される場合には、メモリコントローラ12に送信される書込要求(図10)には、読取要求のパケット(図5)のリードアドレスが含まれ、要求データが書き込まれるキャッシュメモリ4上のアドレスは、上記リードアドレスに設定される。また完了通知には、要求データがキャッシュメモリ4に書き込まれたアドレスとして上記のリードアドレスが含まれ、メインコントローラは、完了通知を受け取るたび、上記リードアドレスを、キャッシュテーブル(図16)のキャッシュ側アドレス範囲に記録する。メインコントローラ20は、読取要求のパケットのリードアドレスが、キャッシュテーブル(図16)に記録されているか否かに応じて、要求データがキャッシュメモリ4に存在するか否かを判別する。
【0091】
また、ディスク記憶媒体Kからデータの読み取りが可能であるか否かを検知する検知手段を通信装置5に設け、該検知手段によりデータの読み取りが可能であると検知されることに応じて、ディスク記憶媒体Kに記憶されたデータをキャッシュメモリ4に書き込むことを開始し、ディスク記憶媒体Kに記憶されたデータの全てがキャッシュメモリ4に書き込まれた後に、読取要求の受け付けを開始して、読取要求に係る要求データをキャッシュメモリ4から取得するようにしてもよい。この場合には、キャッシュコントローラ11にキャッシュテーブルは格納されず、要求データがキャッシュメモリ4に存在するか否かの判別処理は省略される。したがって、キャッシュコントローラ11の構成を大幅に簡略化することができる。
【0092】
また、該検知手段によりデータの読み取りが可能であると検知されることに応じて、キャッシュメモリ4へのデータの書き込みを開始し、これと平行して、読取要求の受信に応じた要求データの書き込みを行うようにしてもよい。この場合には、サーバA1〜A3から読取要求が送信されなくても、所定時間後には、ディスク記憶媒体K内の全てのデータがキャッシュメモリ4に書き込まれる。このため、キャッシュメモリ4から読み取られた要求データが、サーバA1〜A3に送られる可能性を高めることができる。よって、要求データのインストールに要する時間を短くすることができる。
【0093】
また、通信システム1に設けられるサーバAの数は、上記実施の形態に示す3に限らず、任意の複数に設定される。
【0094】
また、通信システム1に設けられるDVD/CDドライブ3の数も、実施の形態に示す1に限らず、任意の複数に設定される。この場合、読取要求のパケット(図2,図5)や、キャッシュテーブルには、要求データが格納されているDVD/CDドライブ3を特定する情報が含められ、該情報を用いて要求データがキャッシュメモリ4に書き込まれているか否かの判別処理が実行される。
【0095】
その他、前記のハードウエア構成やフローチャートは一例であり、任意に変更および修正が可能である。
【0096】
通信装置5は、通常のコンピュータシステムを用いて実現可能である。例えば、前記の動作を実行するためのコンピュータプログラムを、コンピュータが読み取り可能な記録媒体(フレキシブルディスク、CD−ROM、DVD−ROM等)に格納して配布し、当該コンピュータプログラムをコンピュータにインストールすることにより、前記の処理を実行する通信装置5を構成してもよい。また、インターネット等の通信ネットワーク上のサーバが有する記憶装置に当該コンピュータプログラムを格納しておき、通常のコンピュータシステムがダウンロード等することで、通信装置5の各部を構成してもよい。
【0097】
上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0098】
(付記1)
ディスク記憶媒体に記憶されたデータの読取要求を、複数のサーバから受信する受信手段と、
該受信手段が受信した前記読取要求を、前記ディスク記憶媒体への一つのアクセス権に係る命令にシリアライズするシリアライズ手段と、
前記シリアライズされた前記読取要求の順序に従って、前記読取要求に係る要求データを、前記ディスク記憶媒体に記憶されたデータの中から取得する情報取得手段と、
前記情報取得手段が取得した要求データを、該要求データに対応する前記読取要求の送信元サーバに送信する送信手段と、
を備えることを特徴とする通信装置。
【0099】
(付記2)
前記シリアライズ手段は、前記受信手段が受信した読取要求を受信順に取り出して格納するとともに、該格納した読取要求をFIFOで取り出して、前記情報取得手段に送ることで、前記読取要求をシリアライズすることを特徴とする付記1に記載の通信装置。
【0100】
(付記3)
前記ディスク記憶媒体に記憶されたデータをキャッシュメモリに書き込む書き込み手段と、
前記読取要求に係る要求データが、前記キャッシュメモリに存在するか否かを判別する判別手段とをさらに備え、
前記情報取得手段は、前記要求データが前記キャッシュメモリに存在すると判別された場合、前記要求データを前記キャッシュメモリから取得し、前記要求データが前記キャッシュメモリに存在しないと判別された場合、前記要求データを前記ディスク記憶媒体から取得し、
前記書き込み手段は、前記要求データが前記キャッシュメモリに存在しないと判別された場合、前記情報取得手段が取得した前記要求データを、前記キャッシュメモリに書き込む、
ことを特徴とする付記1又は2に記載の通信装置。
【0101】
(付記4)
前記ディスク記憶媒体からデータの読み取りが可能であるか否かを検知する検知手段をさらに備え、
前記書き込み手段は、前記検知手段により前記データの読み取りが可能であると検知されることに応じて、前記ディスク記憶媒体に記憶されたデータを前記キャッシュメモリに書き込むことを開始する、
ことを特徴とする付記3に記載の通信装置。
【0102】
(付記5)
前記ディスク記憶媒体からデータの読み取りが可能であるか否かを検知する検知手段と、
前記ディスク記憶媒体に記憶されたデータをキャッシュメモリに書き込む書き込み手段とをさらに備え、
前記書き込み手段は、前記検知手段により前記データの読み取りが可能であると検知されることに応じて、前記ディスク記憶媒体に記憶されたデータを前記キャッシュメモリに書き込むことを開始し、
前記情報取得手段は、前記書き込み手段により前記ディスク記憶媒体に記憶されたデータの全てが前記キャッシュメモリに書き込まれた後に、前記読取要求に係る要求データを前記キャッシュメモリから取得する、
ことを特徴とする付記1又は2に記載の通信装置。
【0103】
(付記6)
前記キャッシュメモリをさらに備え、
前記キャッシュメモリの容量は、前記ディスク記憶媒体の容量以上であることを特徴とする付記1乃至5のいずれか1項に記載の通信装置。
【0104】
(付記7)
ディスク記憶媒体に記憶されたデータの読取要求を、複数のサーバから受信する受信ステップと、
該受信ステップで受信された前記読取要求を、前記ディスク記憶媒体への一つのアクセス権に係る命令にシリアライズするシリアライズステップと、
前記シリアライズされた前記読取要求の順序に従って、前記読取要求に係る要求データを、前記ディスク記憶媒体に記憶されたデータの中から取得する情報取得ステップと、
前記情報取得ステップで取得された要求データを、該要求データに対応する前記読取要求の送信元サーバに送信する送信ステップと、
を備えることを特徴とする通信方法。
【0105】
(付記8)
前記シリアライズステップは、前記受信ステップで受信された読取要求を受信順に取り出して格納するとともに、該格納した読取要求をFIFOで取り出して、前記情報取得ステップを実行する手段に送ることで、前記読取要求をシリアライズすることを特徴とする付記7に記載の通信方法。
【0106】
(付記9)
前記ディスク記憶媒体に記憶されたデータをキャッシュメモリに書き込む書き込みステップと、
前記読取要求に係る要求データが、前記キャッシュメモリに存在するか否かを判別する判別ステップとをさらに備え、
前記情報取得ステップは、前記要求データが前記キャッシュメモリに存在すると判別された場合、前記要求データを前記キャッシュメモリから取得し、前記要求データが前記キャッシュメモリに存在しないと判別された場合、前記要求データを前記ディスク記憶媒体から取得し、
前記書き込みステップは、前記要求データが前記キャッシュメモリに存在しないと判別された場合、前記情報取得ステップで取得した前記要求データを、前記キャッシュメモリに書き込む、
ことを特徴とする付記7又は8に記載の通信方法。
【0107】
(付記10)
前記ディスク記憶媒体からデータの読み取りが可能であるか否かを検知する検知ステップをさらに備え、
前記書き込みステップは、前記検知ステップにより前記データの読み取りが可能であると検知されることに応じて、前記ディスク記憶媒体に記憶されたデータを前記キャッシュメモリに書き込むことを開始する、
ことを特徴とする付記9に記載の通信方法。
【0108】
(付記11)
前記ディスク記憶媒体からデータの読み取りが可能であるか否かを検知する検知ステップと、
前記ディスク記憶媒体に記憶されたデータをキャッシュメモリに書き込む書き込みステップとをさらに備え、
前記書き込みステップは、前記検知ステップにより前記データの読み取りが可能であると検知されることに応じて、前記ディスク記憶媒体に記憶されたデータを前記キャッシュメモリに書き込むことを開始し、
前記情報取得ステップは、前記書き込みステップにより前記ディスク記憶媒体に記憶されたデータの全てが前記キャッシュメモリに書き込まれた後に、前記読取要求に係る要求データを前記キャッシュメモリから取得する、
ことを特徴とする付記7又は8に記載の通信方法。
【0109】
(付記12)
コンピュータを、
ディスク記憶媒体に記憶されたデータの読取要求を、複数のサーバから受信する受信手段、
該受信手段が受信した前記読取要求を、前記ディスク記憶媒体への一つのアクセス権に係る命令にシリアライズするシリアライズ手段、
前記シリアライズされた前記読取要求の順序に従って、前記読取要求に係る要求データを、前記ディスク記憶媒体に記憶されたデータの中から取得する情報取得手段、
前記情報取得手段が取得した要求データを、該要求データに対応する前記読取要求の送信元サーバに送信する送信手段、
として機能させることを特徴とするプログラム。
【符号の説明】
【0110】
1 通信システム
3 DVD/CDドライブ
4 キャッシュメモリ
5 通信装置
10 プロトコルシリアライザ
11 キャッシュコントローラ
12 メモリコントローラ
13 DVD/CDコントローラ
20 メインコントローラ
A1,A2,A3 サーバ
B1,B2,B3 サーバ用インターフェース
C ドライブ用インターフェース
D メモリ用インターフェース
E1,E2,E3 サーバ側送受信バッファ
D ドライブ側送受信バッファ
H1,H2,H3,F 受信バッファ
I1,I2,I3,G 送信バッファ
J メモリ用インターフェース
【技術分野】
【0001】
本発明は、通信装置、通信方法、およびプログラムに関する。
【背景技術】
【0002】
近年、データ記憶媒体へのアクセスを制御する技術が提案されている。例えば、特許文献1には、複数のプロセッサを備えるマルチプロセッサシステムにおいて、各プロセッサから主記憶へのアクセスをシリアライズする技術が開示される。特許文献2には、記録媒体に書き込むデータをキャッシュメモリに一旦格納して、該格納したデータを所定アドレス範囲のグループ単位で記憶媒体に書き込む技術が開示される。特許文献3には、異なるインターフェースを持つ複数のコンピュータが記憶媒体上のデータを共有可能とするため、コンピュータが発行する書込要求や読取要求を変換する技術が開示されている。特許文献4には、一のクライアントがCD−Rディスクから読み取るデータを最新のものとするために、一のクライアントの読み取り中に、他のクライアントが書き込み要求を出力した場合、後に出力された書き込み要求の処理を後回しにする技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2000−194680号公報
【特許文献2】特開2003−196032号公報
【特許文献3】特開平9−325905号公報
【特許文献4】特開平10−079666号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、光学ドライブに挿入されるディスク記憶媒体へのアクセスは、一つの機器にのみ認められる。このため、OS(Operating System)等のソフトウェアをディスク記憶媒体から複数の機器にインストールする場合、一の機器へのデータのインストールが完了した後、二の機器に対してインストール操作が行われていた。これにより、全ての機器に対するインストール操作が完了するまで長い時間を要していた。この問題に関して、例えば特許文献4は、一つのクライアントがCD−Rディスクのデータを読み取るものであり、CD−Rディスクのデータを複数の機器に読み取らせることを考慮したものではない。よって、特許文献4は、上記問題を解決するものではない。
【0005】
本発明は、上述のような事情に鑑みてなされたもので、ディスク記憶媒体のデータを、複数のサーバにインストールさせる作業に、長い時間を要しない通信装置、通信方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の第1の観点に係る通信装置は、
ディスク記憶媒体に記憶されたデータの読取要求を、複数のサーバから受信する受信手段と、
該受信手段が受信した前記読取要求を、前記ディスク記憶媒体への一つのアクセス権に係る命令にシリアライズするシリアライズ手段と、
前記シリアライズされた前記読取要求の順序に従って、前記読取要求に係る要求データを、前記ディスク記憶媒体に記憶されたデータの中から取得する情報取得手段と、
前記情報取得手段が取得した要求データを、該要求データに対応する前記読取要求の送信元サーバに送信する送信手段と、
を備えることを特徴とする。
【0007】
本発明の第2の観点に係る通信方法は、
ディスク記憶媒体に記憶されたデータの読取要求を、複数のサーバから受信する受信ステップと、
該受信ステップで受信された前記読取要求を、前記ディスク記憶媒体への一つのアクセス権に係る命令にシリアライズするシリアライズステップと、
前記シリアライズされた前記読取要求の順序に従って、前記読取要求に係る要求データを、前記ディスク記憶媒体に記憶されたデータの中から取得する情報取得ステップと、
前記情報取得ステップで取得された要求データを、該要求データに対応する前記読取要求の送信元サーバに送信する送信ステップと、
を備えることを特徴とする。
【0008】
本発明の第3の観点に係るプログラムは、
コンピュータを、
ディスク記憶媒体に記憶されたデータの読取要求を、複数のサーバから受信する受信手段、
該受信手段が受信した前記読取要求を、前記ディスク記憶媒体への一つのアクセス権に係る命令にシリアライズするシリアライズ手段、
前記シリアライズされた前記読取要求の順序に従って、前記読取要求に係る要求データを、前記ディスク記憶媒体に記憶されたデータの中から取得する情報取得手段、
前記情報取得手段が取得した要求データを、該要求データに対応する前記読取要求の送信元サーバに送信する送信手段、
として機能させることを特徴とする。
【発明の効果】
【0009】
本発明によれば、サーバから送信された読取要求が、ディスク記憶媒体への一つのアクセス権に係る命令にシリアライズされる。そして、該シリアライズされた読取要求の順序に従って、読取要求に係る要求データが、ディスク記憶媒体に記憶されたデータの中から取得され、要求データに対応する読取要求の送信元サーバに送信される。これにより、サーバによるディスク記憶媒体への同時アクセスが可能になり、一のサーバで要求データのインストールが完了する前に、他のサーバに対するインストール操作(読取要求の送信操作)を行った場合でも、各サーバの要求データを、読み取って、各サーバに送信することができる。したがって、ディスク記録媒体のデータを、複数のサーバにインストールさせる作業に、長い時間を要しない。
【図面の簡単な説明】
【0010】
【図1】本発明の実施の形態に係る通信システムの構成例を示すブロック図である。
【図2】サーバが送信する読取要求のパケットを示す図である。
【図3】プロトコルシリアライザの構成を示すブロック図である。
【図4】プロトコルシリアライザが、読取要求のパケットに対して実行する処理を示す図である。
【図5】キャッシュコントローラに送られる読取要求のパケットを示す図である。
【図6】キャッシュコントローラの構成を示すブロック図である。
【図7】キャッシュテーブルを示す図である。
【図8】図4の処理に続いて、キャッシュコントローラが、読取要求のパケットに対して実行する処理を示す図である。
【図9】要求データのパケットを示す図である。
【図10】図8の処理に続いて、キャッシュコントローラが、要求データのパケット等に対して実行する処理を示す図である。
【図11】図10の処理に続いて、プロトコルシリアライザが、要求データのパケットに対して実行する処理を示す図である。
【図12】読取要求に係る要求データがキャッシュメモリに存在する場合の通信システムの全体動作を示す図である。
【図13】読取要求に係る要求データがキャッシュメモリに存在しない場合の通信システムの全体動作を示す図である。
【図14】DVD/CDドライブにディスク記憶媒体が挿入されたときの通信システムの全体動作を示す図である。
【図15】DVD/CDドライブからディスク記憶媒体が抜去されたときの通信システムの全体動作を示す図である。
【図16】キャッシュテーブルの変更例を示す図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態1について、図を参照して詳細に説明する。なお図中、同一または同等の部分には同一の符号を付す。
【0012】
図1は、本発明の実施の形態に係る通信システム1の構成例を示すブロック図である。通信システム1は、複数台のサーバA1〜A3と、DVD/CDドライブ3と、キャッシュメモリ4と、通信装置5とを備える。
【0013】
DVD/CDドライブ3は、CD−ROMディスク,CD−Rディスク,CD−RWディスク,DVD−ROMディスク,DVD−Rディスク,DVD−RWディスク,DVD−RAMディスク,DVD+RWディスク,DVD+Rディスクなどのディスク記憶媒体Kが挿入されるドライブである。DVD/CDドライブ3は、ディスク記憶媒体Kへのアクセス権を単一の機器に認め、該機器にのみディスク記憶媒体Kに記憶されたデータを読み取らせる。
【0014】
キャッシュメモリ4は、一枚あるいは複数枚のDIMM(Dual Inline Memory Module)から構成され、ディスク記憶媒体Kに記憶されたデータを書き込むために使用される。キャッシュメモリ4の容量は、DVD/CDドライブ3に挿入されるディスク記憶媒体Kの最大容量以上である。
【0015】
サーバA1〜A3は、それぞれ制御部・記憶部・通信部(図示せず)を有する。各サーバA1〜A3の制御部は、通信部に読取要求を通信装置5へ送信させ、また、読取要求に応じて返信される要求データを受信させて、該要求データを記憶部に記憶する。
【0016】
図2は、サーバA1〜A3が送信する読取要求のパケットを示す図である。読取要求のパケットには、パケットIDと、リードアドレスと、リードサイズと、保護情報とが含まれる。パケットIDは、読取要求のパケットを識別するためのIDである。リードアドレスは、要求データのディスク記憶媒体Kにおける格納先アドレスを示す。リードサイズは、要求データのサイズを示す。保護情報は、パケット保護のための情報である。
【0017】
通信装置5は、サーバA1〜A3とDVD/CDドライブ3との間の通信を中継する装置であり、図1に示すように、プロトコルシリアライザ10と、キャッシュコントローラ11と、メモリコントローラ12と、DVD/CDコントローラ13と、サーバ用インターフェースB1〜B3と、DVD/CDドライブ用インターフェースCと、メモリ用インターフェースJとを備える。
【0018】
サーバ用インターフェースB1〜B3は、サーバA1〜A3毎に設けられる。各サーバ用インターフェースBは、それぞれ対応するサーバAと通信装置5とを接続するためのインターフェースであり、USB(Universal Serial Bus)2.0, USB1.1, ATA(Advanced Technology Attachment), SATA(Serial Advanced Technology Attachment)などから構成される。
【0019】
DVD/CDドライブ用インターフェースCは、DVD/CDドライブ3と通信装置5とを接続するためのインターフェースであり、サーバ用インターフェースBと同様、USB2.0, USB1.1, ATA, SATAなどから構成される。
【0020】
本実施の形態では、サーバ用インターフェースBとDVD/CDドライブ用インターフェースCとは同種類のものが使用される。なお、これらインターフェースB,Cは異なる種類のものが使用されてもよい。この場合には、公知の技術により、インターフェース変換装置が通信装置5に設けられる。
【0021】
メモリ用インターフェースJは、キャッシュメモリ4と通信装置5とを接続するためのインターフェースであり、例えば、DDR(Double-Data-Rate)2/DDR3から構成される。
【0022】
図3は、プロトコルシリアライザ10の構成を示すブロック図である。プロトコルシリアライザ10は、ドライブ側送受信バッファDと、サーバ側送受信バッファE1〜E3とを備える。ドライブ側送受信バッファDには、受信バッファF及び送信バッファGが含まれる。サーバ側送受信バッファE1〜E3は、サーバA1〜A3毎に設けられる。各サーバ側送受信バッファEには、受信バッファH及び送信バッファIが含まれる。
【0023】
図4は、プロトコルシリアライザ10が、読取要求のパケットに対して実行する処理を示す図である。
【0024】
プロトコルシリアライザ10は、サーバA1〜A3から送信される読取要求のパケットを、サーバ用インターフェースB1〜B3(図1)を介して、サーバ側送受信バッファE1〜E3内の受信バッファH1〜H3に受信させ、蓄積させる。
【0025】
図4の例では、読取要求1,4のパケットは、サーバA1から送信されたことで、サーバ側送受信バッファE1内の受信バッファH1に受信・蓄積される。読取要求3のパケットは、サーバA2から送信されたことで、サーバ側送受信バッファE2内の受信バッファH2に受信・蓄積される。読取要求2,5のパケットは、サーバA3から送信されたことで、サーバ側送受信バッファE3内の受信バッファH3に受信・蓄積される。
【0026】
さらに、プロトコルシリアライザ10は、サーバA1〜A3から受信した読取要求のパケットを、ディスク記憶媒体Kへの一つのアクセス権に係る命令にシリアライズして、キャッシュコントローラ11に送信する。具体的には、プロトコルシリアライザ10は、受信バッファH1〜H3に受信・蓄積された読取要求のパケットを受信順に取り出して、ドライブ側送受信バッファD内の受信バッファFに格納するとともに、該格納した読取要求のパケットを、FIFO(First-In First-Out)で取り出して、キャッシュコントローラ11に送る。図4の例では、読取要求1〜5のパケットは、読取要求1→2→3→4→5の受信順序で、受信バッファH1〜H3から取り出されて受信バッファFに格納され、キャッシュコントローラ11に送られる。
【0027】
図5は、キャッシュコントローラ11に送られる読取要求のパケットを示す図である。図5に示す読取要求のパケットは、図2に示す読取要求のパケットに、統合パケットIDやサーバ番号が追加されたものである。統合パケットIDは、通信装置5内で固有の識別情報であり、パケットのヘッダ情報になる。サーバ番号は、読取要求の送信元サーバAを示す。統合パケットIDやサーバ番号は、プロトコルシリアライザ10が読取要求のパケットを受信バッファFに格納する際に付加するものである。例えば、受信バッファH1に格納されていた読取要求1のパケットには、サーバA1を示すサーバ番号が付加される。
【0028】
図6は、キャッシュコントローラ11の構成を示すブロック図である。キャッシュコントローラ11は、メインコントローラ20を備えており、図7に示すキャッシュテーブルを格納する。
【0029】
キャッシュテーブルでは、ドライブ側アドレス範囲と、キャッシュ側アドレス範囲と、キャッシュ済みフラグとが対応付けられる。ドライブ側アドレス範囲は、読取要求に係る要求データがディスク記憶媒体Kに格納されるアドレス範囲を示す。キャッシュ側アドレス範囲は、読取要求に係る要求データがキャッシュメモリ4に格納されるアドレス範囲を示す。本実施の形態では、キャッシュテーブルの各行に示されるドライブ側アドレス範囲及びキャッシュ側アドレス範囲には、同一のアドレスが記される。
【0030】
キャッシュ済みフラグは、ディスク記憶媒体Kのドライブ側アドレス範囲に格納されたデータが、キャッシュメモリ4のキャッシュ側アドレス範囲に書き込み(キャッシュ)済みであるか否かを示す。キャッシュ済みフラグが「○」であるキャッシュテーブルの行は、ドライブ側アドレス範囲に格納されたデータが、キャッシュ側アドレス範囲に書き込まれていることを示す。キャッシュ済みフラグが「×」である行は、ドライブ側アドレス範囲に格納されたデータが、キャッシュ側アドレス範囲に書き込まれていないことを示す。
【0031】
図8は、図4の処理に続いて、キャッシュコントローラ11が、読取要求のパケットに対して実行する処理を示す図である。
【0032】
キャッシュコントローラ11が読取要求のパケットを受け取ると、メインコントローラ20は、キャッシュテーブルを参照して、読取要求に係る要求データがキャッシュメモリ4(図1)に存在するか否かを判別する。具体的には、メインコントローラ20は、キャッシュテーブルにおいて、読取要求のパケットに示されるリードアドレスが、ドライブ側アドレス範囲やキャッシュ側アドレス範囲に一致する行を特定して、該行のキャッシュ済みフラグが「○」である場合、要求データがキャッシュメモリ4に存在すると判別し、上記行のキャッシュ済みフラグが「×」である場合、要求データがキャッシュメモリ4に存在しないと判別する。
【0033】
メインコントローラ20は、要求データがキャッシュメモリ4に存在すると判別された読取要求のパケットを、メモリコントローラ12に送り、要求データがキャッシュメモリ4に存在しないと判別された読取要求のパケットを、DVD/CDコントローラ13に送る。
【0034】
キャッシュテーブル(図7)の第3,5行は、読取要求3,5に係る要求データ3,5の格納先アドレスを示す行であり、キャッシュ済みフラグが「○」である。よって、要求データ3,5は、キャッシュメモリ4に存在すると判別され、その結果、図8に示すように、読取要求3,5のパケットは、メモリコントローラ12に送られる。
【0035】
キャッシュテーブルの第1,2,4行は、読取要求1,2,4に係る要求データ1,2,4の格納先アドレスを示す行であり、キャッシュ済みフラグが「×」である。よって、要求データ1,2,4は、キャッシュメモリ4に存在しないと判別され、その結果、読取要求1,2,4のパケットは、DVD/CDコントローラ13に送られる。
【0036】
本実施の形態では、上記の要求データの判別や、該判別結果に基づく読取要求のパケットの送信は、プロトコルシリアライザ10から読取要求のパケットが受け取られるたびに実行される。これにより、DVD/CDコントローラ13やメモリコントローラ12に送られる読取要求のパケットは、プロトコルシリアライザ10がシリアライズした順序に従うものになる。図8の例では、読取要求1〜5が読取要求1→2→3→4→5の順序にシリアライズされていたため、読取要求3,5のパケットは、読取要求3→5の順序でメモリコントローラ12に送られ、読取要求1,2,4のパケットは、読取要求1→2→4の順序で、DVD/CDコントローラ13に送られている。
【0037】
メモリコントローラ12は、メモリ用インターフェースJ(図1)を介して、キャッシュメモリ4にデータを書き込み、また、キャッシュメモリ4からデータを読み取り可能である。該メモリコントローラ12は、キャッシュコントローラ11から読取要求のパケットを受け取るたびに、該パケットの内容(リードアドレスやリードサイズ)に従って、キャッシュメモリ4から要求データを読み取り、該要求データのパケットを、キャッシュコントローラ11に送る。
【0038】
DVD/CDコントローラ13は、DVD/CDドライブ用インターフェースC(図1)を介して、ディスク記憶媒体Kのデータを読み取り可能である。該DVD/CDコントローラ13は、キャッシュコントローラ11から読取要求のパケットを受け取るたびに、該パケットの内容に従って、ディスク記憶媒体Kから要求データを読み取り、該要求データのパケットを、キャッシュコントローラ11に送る。
【0039】
図9は、メモリコントローラ12やDVD/CDコントローラ13から送られる要求データのパケットを示す図である。要求データのパケットには、キャッシュメモリ4やディスク記憶媒体Kから読み取られた要求データに、統合バケットID・サーバ番号・パケットID・リードアドレス・保護情報が付加されている。統合バケットID〜保護情報は、読取要求のパケット(図5)に含まれていたものである。
【0040】
図10は、図8の処理に続いて、キャッシュコントローラ11が、要求データのパケット等に対して実行する処理を示す図である。
【0041】
上述のように、メモリコントローラ12やDVD/CDコントローラ13が、キャッシュメモリ4やディスク記憶媒体Kから要求データを読み取り、キャッシュコントローラ11に送ることで、キャッシュコントローラ11は、ディスク記憶媒体Kに記憶されたデータ(該データには、ディスク記憶媒体K自体に記憶されたデータや、キャッシュメモリ4に書き込まれたデータが含まれる)の中から、読取要求に係る要求データを取得する。
【0042】
また、読取要求のパケットが、メモリコントローラ12やDVD/CDコントローラ13が、読取要求のパケットを受け取るたび、要求データを読み取って、キャッシュコントローラ11に送ることで、キャッシュコントローラ11は、プロトコルシリアライザ10がシリアライズした読取要求の順序で、読取要求に係る要求データを取得する。図10の例では、キャッシュコントローラ11は、シリアライズされた読取要求3→5,1→2→4の順序で、読取要求1〜5に係る要求データ1〜5を取得している。
【0043】
メインコントローラ20は、キャッシュコントローラ11がメモリコントローラ12から要求データ(図10では要求データ3,5)のパケットを受け取るたびに、該要求データのパケットを、プロトコルシリアライザ10に送る。
【0044】
また、メインコントローラ20は、キャッシュコントローラ11がDVD/CDコントローラ13から要求データのパケットを受け取るたびに、要求データの書込要求をメモリコントローラ12に送る。図10の例では、要求データ1,2,4のパケットが受け取られることで、要求データ1,2,4の書込要求1,2,4が、メモリコントローラ12に送られている。
【0045】
書込要求は、キャッシュメモリ4に要求データを書き込ませるため、メモリコントローラ12に送信されるものである。書込要求には、少なくとも、要求データパケット(図9)の要求データやリードアドレスが含まれ、本実施の形態では、DVD/CDコントローラ13から受け取られた要求データのパケット(図9)が、そのまま書込要求としてメモリコントローラ12に転送される。上記のように、リードアドレスが書込要求に含まれるのは、要求データをキャッシュメモリ4に格納するアドレスを、ディスク記憶媒体Kにおける格納先アドレスと同一にすることを意図したものである。このことから、キャッシュテーブル(図7)に示されるドライブ側アドレス範囲とキャッシュ側アドレス範囲とが、同一のアドレスになっている。
【0046】
メモリコントローラ12は、書込要求をキャッシュコントローラ11から受け取るたびに、書込要求に含まれる要求データを、キャッシュメモリ4に書き込む。要求データが書き込まれるアドレスは、書込要求に含まれるリードアドレスに設定される。
【0047】
要求データの書き込みが完了した際には、メモリコントローラ12は、該書き込みの完了を示す完了通知を、キャッシュコントローラ11に送る。完了通知には、少なくとも、要求データが書き込まれたキャッシュメモリ4のアドレス(すなわちリードアドレス)が含まれる。
【0048】
メインコントローラ20は、キャッシュコントローラ11が完了通知を受け取るたびに、要求データの書き込みが完了したことを示す情報を、キャッシュテーブル(図7)に記録する。具体的には、メインコントローラ20は、キャッシュテーブルにおいて、キャッシュ側アドレス範囲(またはドライブ側アドレス範囲)のアドレスが、完了通知に含まれるアドレスに一致する行を特定して、該行のキャッシュ済みフラグを「×」から「○」に変更する。図10の例では、メモリコントローラ12から完了通知1,2,4が受け取られることで、キャッシュテーブルにおける要求データ1,2,4の行のキャッシュ済みフラグが「×」から「○」に変更されている。
【0049】
キャッシュテーブルの記録(フラグの変更)が完了した際には、メインコントローラ20は、DVD/CDコントローラ13から受け取った要求データ(図10では要求データ1,2,4)のパケットを、プロトコルシリアライザ10に送る。
【0050】
図11は、図10の処理に続いて、プロトコルシリアライザ10が、要求データのパケットに対して実行する処理を示す図である。
【0051】
プロトコルシリアライザ10は、キャッシュコントローラ11から送られた要求データ(図11では要求データ1〜5)のパケットを、順次、ドライブ側送受信バッファD内の送信バッファGに受信・格納する。
【0052】
また、プロトコルシリアライザ10は、要求データのパケットを送信バッファGに受信するたびに、受信バッファF内に格納された読取要求のパケット(図5)の中から、統合パケットIDやサーバ番号が上記要求データのパケットと同一である読取要求のパケットを特定して、該読取要求のパケットから統合バケットIDやサーバ番号を削除する。例えば、要求データ2のパケットが受信バッファGに受信された際には、要求データ2に対応する読取要求2のパケットから、統合バケットIDやサーバ番号が削除される。
【0053】
さらに、プロトコルシリアライザ10は、送信バッファGに格納したパケットの要求データを、FIFO(First-In First-Out)で取り出して、サーバ側送受信バッファE内の送信バッファIに送り、該送信バッファIに格納する。要求データの送り先となる送信バッファIは、要求データのパケット(図9)に含まれるサーバ番号に基づき選択される。
【0054】
さらに、プロトコルシリアライザ10は、送信バッファIに格納した要求データのパケットを、FIFO(First-In First-Out)で取り出して、サーバ用インターフェースB(図1)を介して、送信バッファIに対応するサーバAに送信する。
【0055】
例えば、要求データ2のパケットには、サーバA3を示すサーバ番号が含まれていることで、要求データ2は、サーバA3に対応する送信バッファI3に送られ、この後、送信バッファI3からサーバA3に送信される。
【0056】
次に、通信システム1の全体動作について説明する。まず、図12を用いて、読取要求に係る要求データがキャッシュメモリ4に存在する場合の動作について説明する。
【0057】
プロトコルシリアライザ10は、サーバAが送信した読取要求のパケットを、サーバ側送受信バッファE内の受信バッファHに受信・蓄積させる(ステップS101)。
【0058】
さらに、プロトコルシリアライザ10は、読取要求のパケットを受信バッファHから取り出し、統合バケットIDやサーバ番号を付加して、ドライブ側送受信バッファD内の受信バッファFに格納する(ステップS102)。
【0059】
さらに、プロトコルシリアライザ10は、FIFOで、読取要求のパケットを受信バッファFから取り出して、キャッシュコントローラ11に送る(ステップS103)。
【0060】
キャッシュコントローラ11内のメインコントローラ20は、キャッシュテーブル(図7)を参照して、読取要求に係る要求データがキャッシュメモリ4に存在するか否か(キャッシュ済みであるか否か)を判別し(ステップS104)、要求データがキャッシュメモリ4に存在することで(ステップS104でYES)、読取要求のパケットを、メモリコントローラ12に送信する(ステップS105)。
【0061】
メモリコントローラ12は、読取要求のパケットの内容に従って、キャッシュメモリ4から要求データを読み取る(ステップS106)。
【0062】
さらに、メモリコントローラ12は、ステップS106で読み取った要求データに、統合バケットIDやサーバ番号を付加することで、要求データのパケットを取得して(ステップS107)、該要求データのパケットを、キャッシュコントローラ11に送る(ステップS108)。
【0063】
キャッシュコントローラ11は、要求データのパケットを、プロトコルシリアライザ10に送る(ステップS109)。
【0064】
プロトコルシリアライザ10は、要求データのパケットを、ドライブ側送受信バッファD内の送信バッファGに受信・格納し、また、要求データに対応する受信バッファF内の読取要求のパケットから、統合バケットIDやサーバ番号を削除する(ステップS110)。
【0065】
さらに、プロトコルシリアライザ10は、送信バッファGに格納した要求データを、送信バッファIに送り、この後、要求データを、送信バッファIに対応するサーバAに送信する(ステップS111)。
【0066】
次に、読取要求に係る要求データがキャッシュメモリ4に書き込まれていない場合の動作について、図13を用いて説明する。
【0067】
図13に示す動作では、ステップS101〜S103と同様のステップS201〜S203が実行された後、ステップS104に対応するステップS204で、メインコントローラ20は、読取要求に係る要求データがキャッシュメモリ4に存在しない(キャッシュ済みではない)と判定して(ステップS204でNO)、読取要求のパケットを、DVD/CDコントローラ13に送る(ステップS205)。
【0068】
DVD/CDコントローラ13は、読取要求のパケットの内容に従って、ディスク記憶媒体Kから要求データを読み取る(ステップS206)。
【0069】
さらに、DVD/CDコントローラ13は、ステップS206で読み取った要求データに、統合バケットIDやサーバ番号を付加することで、要求データのパケットを取得し(ステップS207)、該要求データのパケットを、キャッシュコントローラ11に送る(ステップS208)。
【0070】
キャッシュコントローラ11は、ステップS208で受け取ったパケットに含まれる要求データの書込要求を、メモリコントローラ12に送る(ステップS209)。
【0071】
メモリコントローラ12は、書込要求の内容に従って、要求データをキャッシュメモリ4に書き込み(ステップS210)、該書き込みが終了した際に、完了通知をメモリコントローラ11に送信する(ステップS211)。
【0072】
キャッシュコントローラ11は、完了通知を受け取ることに応じて、要求データの書き込みが完了したことを示す情報を、キャッシュテーブルに記録する(ステップS212)。
【0073】
さらに、キャッシュコントローラ11は、キャッシュテーブルへの記録が完了することに応じて、ステップS208で受け取った要求データのパケットを、プロトコルシリアライザ10に送る(ステップS213)。以降は、図12のステップS110,S111と同様のステップS214,S215が実行される。
【0074】
本実施の形態の通信装置5によれば、サーバA1〜A3から送信された読取要求が、ディスク記憶媒体Kへの一つのアクセス権に係る命令にシリアライズされる。そして、該シリアライズされた読取要求の順序に従って、読取要求に係る要求データが、ディスク記憶媒体Kに記憶されたデータの中から取得され、要求データに対応する読取要求の送信元サーバAに送信される。これにより、サーバA1〜A3によるディスク記憶媒体Kへの同時アクセスが可能になり、一のサーバAで要求データのインストールが完了する前に、他のサーバAに対するインストール操作(読取要求の送信操作)を行った場合でも、各サーバAの要求データを、読み取って、各サーバAに送信することができる。したがって、全てのサーバAに対するインストール操作を、長い時間を要せず完了させることができる。
【0075】
また、ディスク記憶媒体Kから読み取られた要求データは、キャッシュメモリ4に書き込まれ、上記要求データに対する読取要求が再び送信された場合には、キャッシュメモリ4から要求データが読み取られて、読取要求の送信元サーバAに送信される。これにより、要求データのインストールに要する時間が短くなる。
【0076】
また、キャッシュメモリ4の容量が、DVD/CDドライブ3に挿入されるディスク記憶媒体Kの最大容量以上であるため、ディスク記憶媒体Kに記憶されたデータ全てを、キャッシュメモリ4に書き込むことができる。したがって、ディスク記憶媒体K内のいずれのデータが要求されても、短時間でサーバに要求データを送信することができる。
【0077】
本発明は、上記の実施の形態に制限されず、特許請求の範囲において種々改変することができる。
【0078】
例えば、通信装置5は、キャッシュメモリ4を備えるものであってもよい。
【0079】
また、DVD/CDドライブ3にディスク記憶媒体Kが挿入された時点や、DVD/CDドライブ3からディスク記憶媒体Kが抜去された時点で、通信装置5からサーバA1〜A3に割り込み通知を送信して、該割り込み通知をサーバA1〜A3が受信することに応じて、サーバA1〜A3からの読取要求のパケットの送信を可能にしたり、不可能にしてもよい。このようにすれば、ディスク記憶媒体Kに記憶されたデータの読み取りが可能な状態で、サーバA1〜A3・通信装置5間の通信が行われるため、読取要求の送信後、直ちに、サーバA1〜A3に要求データを送ることができ、サーバA1〜A3・通信装置5間における無駄な通信が省かれる。この場合の通信システム1の全体動作を、図14,図15を用いて説明する。
【0080】
図14は、DVD/CDドライブ3にディスク記憶媒体Kが挿入されたときの通信システム1の全体動作を示す図である。
【0081】
DVD/CDドライブ3は、ディスク記憶媒体Kが挿入されることに応じて、ディスク記憶媒体Kが挿入されたことを示す挿入通知を、DVD/CDコントローラ13に送る(ステップS301)。
【0082】
DVD/CDコントローラ13は、挿入通知を受け取ることに応じて、プロトコルシリアライザ10に割り込み通知を送り(ステップS302)、さらに、プロトコルシリアライザ10は、サーバA1〜A3に、割り込み通知を送る(ステップS303)。該割り込み通知の受信後に、サーバA1〜A3は通信装置5に読取要求のパケットを送信することが可能になる。
【0083】
図15は、DVD/CDドライブ3からディスク記憶媒体Kが抜去されたときの通信システム1の全体動作を示す図である。
【0084】
DVD/CDドライブ3は、ディスク記憶媒体Kが抜去されることに応じて、ディスク記憶媒体Kが抜去されたことを示す抜去通知を、DVD/CDコントローラ13に送る(ステップS401)。
【0085】
DVD/CDコントローラ13は、抜去通知を受け取ることに応じて、割り込み通知を、キャッシュコントローラ11に送る(ステップS402)。
【0086】
キャッシュコントローラ11は、割り込み通知を受け取ることに応じて、キャッシュテーブル(図7)の初期化を実行する(ステップS403)具体的には、キャッシュコントローラ11は、キャッシュテーブルに示されるキャッシュ済みフラグの全てを「×」に変更する。
【0087】
DVD/CDコントローラ13は、抜去通知を受け取ることに応じて、割り込み通知をプロトコルシリアライザ10に送り(ステップS404)、さらに、プロトコルシリアライザ10は、割り込み通知をサーバA1〜A3に送信する(ステップS405)。
【0088】
また上記実施の形態と異なり、キャッシュテーブル(図7)のドライブ側アドレスとキャッシュ側アドレスとは、必ずしも一致しなくてもよく、一対一で対応する異なるアドレスが割り当てられてもよい。この場合、メインコントローラ20は、要求データがキャッシュメモリに存在するか否かを判別するため、キャッシュテーブルにおいて、ドライブ側アドレスが、読取要求のパケットのリードアドレスに一致する行を特定して、該行のキャッシュ済みフラグが「○」であるか否かを判定する。メモリコントローラ12に送信される書込要求(図10)には、要求データの有無の判別に使用されたキャッシュテーブルの行に示すキャッシュ側アドレス範囲が含まれ、メモリコントローラは、該キャッシュ側アドレス範囲に要求データを書き込む。
【0089】
また、キャッシュテーブルは、図16に示すように変更されてもよい。図16のキャッシュテーブルは、図7のキャッシュテーブルから、キャッシュ済みフラグやドライブ側アドレス範囲が省略されたものである。
【0090】
図16のキャッシュテーブルが使用される場合には、メモリコントローラ12に送信される書込要求(図10)には、読取要求のパケット(図5)のリードアドレスが含まれ、要求データが書き込まれるキャッシュメモリ4上のアドレスは、上記リードアドレスに設定される。また完了通知には、要求データがキャッシュメモリ4に書き込まれたアドレスとして上記のリードアドレスが含まれ、メインコントローラは、完了通知を受け取るたび、上記リードアドレスを、キャッシュテーブル(図16)のキャッシュ側アドレス範囲に記録する。メインコントローラ20は、読取要求のパケットのリードアドレスが、キャッシュテーブル(図16)に記録されているか否かに応じて、要求データがキャッシュメモリ4に存在するか否かを判別する。
【0091】
また、ディスク記憶媒体Kからデータの読み取りが可能であるか否かを検知する検知手段を通信装置5に設け、該検知手段によりデータの読み取りが可能であると検知されることに応じて、ディスク記憶媒体Kに記憶されたデータをキャッシュメモリ4に書き込むことを開始し、ディスク記憶媒体Kに記憶されたデータの全てがキャッシュメモリ4に書き込まれた後に、読取要求の受け付けを開始して、読取要求に係る要求データをキャッシュメモリ4から取得するようにしてもよい。この場合には、キャッシュコントローラ11にキャッシュテーブルは格納されず、要求データがキャッシュメモリ4に存在するか否かの判別処理は省略される。したがって、キャッシュコントローラ11の構成を大幅に簡略化することができる。
【0092】
また、該検知手段によりデータの読み取りが可能であると検知されることに応じて、キャッシュメモリ4へのデータの書き込みを開始し、これと平行して、読取要求の受信に応じた要求データの書き込みを行うようにしてもよい。この場合には、サーバA1〜A3から読取要求が送信されなくても、所定時間後には、ディスク記憶媒体K内の全てのデータがキャッシュメモリ4に書き込まれる。このため、キャッシュメモリ4から読み取られた要求データが、サーバA1〜A3に送られる可能性を高めることができる。よって、要求データのインストールに要する時間を短くすることができる。
【0093】
また、通信システム1に設けられるサーバAの数は、上記実施の形態に示す3に限らず、任意の複数に設定される。
【0094】
また、通信システム1に設けられるDVD/CDドライブ3の数も、実施の形態に示す1に限らず、任意の複数に設定される。この場合、読取要求のパケット(図2,図5)や、キャッシュテーブルには、要求データが格納されているDVD/CDドライブ3を特定する情報が含められ、該情報を用いて要求データがキャッシュメモリ4に書き込まれているか否かの判別処理が実行される。
【0095】
その他、前記のハードウエア構成やフローチャートは一例であり、任意に変更および修正が可能である。
【0096】
通信装置5は、通常のコンピュータシステムを用いて実現可能である。例えば、前記の動作を実行するためのコンピュータプログラムを、コンピュータが読み取り可能な記録媒体(フレキシブルディスク、CD−ROM、DVD−ROM等)に格納して配布し、当該コンピュータプログラムをコンピュータにインストールすることにより、前記の処理を実行する通信装置5を構成してもよい。また、インターネット等の通信ネットワーク上のサーバが有する記憶装置に当該コンピュータプログラムを格納しておき、通常のコンピュータシステムがダウンロード等することで、通信装置5の各部を構成してもよい。
【0097】
上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0098】
(付記1)
ディスク記憶媒体に記憶されたデータの読取要求を、複数のサーバから受信する受信手段と、
該受信手段が受信した前記読取要求を、前記ディスク記憶媒体への一つのアクセス権に係る命令にシリアライズするシリアライズ手段と、
前記シリアライズされた前記読取要求の順序に従って、前記読取要求に係る要求データを、前記ディスク記憶媒体に記憶されたデータの中から取得する情報取得手段と、
前記情報取得手段が取得した要求データを、該要求データに対応する前記読取要求の送信元サーバに送信する送信手段と、
を備えることを特徴とする通信装置。
【0099】
(付記2)
前記シリアライズ手段は、前記受信手段が受信した読取要求を受信順に取り出して格納するとともに、該格納した読取要求をFIFOで取り出して、前記情報取得手段に送ることで、前記読取要求をシリアライズすることを特徴とする付記1に記載の通信装置。
【0100】
(付記3)
前記ディスク記憶媒体に記憶されたデータをキャッシュメモリに書き込む書き込み手段と、
前記読取要求に係る要求データが、前記キャッシュメモリに存在するか否かを判別する判別手段とをさらに備え、
前記情報取得手段は、前記要求データが前記キャッシュメモリに存在すると判別された場合、前記要求データを前記キャッシュメモリから取得し、前記要求データが前記キャッシュメモリに存在しないと判別された場合、前記要求データを前記ディスク記憶媒体から取得し、
前記書き込み手段は、前記要求データが前記キャッシュメモリに存在しないと判別された場合、前記情報取得手段が取得した前記要求データを、前記キャッシュメモリに書き込む、
ことを特徴とする付記1又は2に記載の通信装置。
【0101】
(付記4)
前記ディスク記憶媒体からデータの読み取りが可能であるか否かを検知する検知手段をさらに備え、
前記書き込み手段は、前記検知手段により前記データの読み取りが可能であると検知されることに応じて、前記ディスク記憶媒体に記憶されたデータを前記キャッシュメモリに書き込むことを開始する、
ことを特徴とする付記3に記載の通信装置。
【0102】
(付記5)
前記ディスク記憶媒体からデータの読み取りが可能であるか否かを検知する検知手段と、
前記ディスク記憶媒体に記憶されたデータをキャッシュメモリに書き込む書き込み手段とをさらに備え、
前記書き込み手段は、前記検知手段により前記データの読み取りが可能であると検知されることに応じて、前記ディスク記憶媒体に記憶されたデータを前記キャッシュメモリに書き込むことを開始し、
前記情報取得手段は、前記書き込み手段により前記ディスク記憶媒体に記憶されたデータの全てが前記キャッシュメモリに書き込まれた後に、前記読取要求に係る要求データを前記キャッシュメモリから取得する、
ことを特徴とする付記1又は2に記載の通信装置。
【0103】
(付記6)
前記キャッシュメモリをさらに備え、
前記キャッシュメモリの容量は、前記ディスク記憶媒体の容量以上であることを特徴とする付記1乃至5のいずれか1項に記載の通信装置。
【0104】
(付記7)
ディスク記憶媒体に記憶されたデータの読取要求を、複数のサーバから受信する受信ステップと、
該受信ステップで受信された前記読取要求を、前記ディスク記憶媒体への一つのアクセス権に係る命令にシリアライズするシリアライズステップと、
前記シリアライズされた前記読取要求の順序に従って、前記読取要求に係る要求データを、前記ディスク記憶媒体に記憶されたデータの中から取得する情報取得ステップと、
前記情報取得ステップで取得された要求データを、該要求データに対応する前記読取要求の送信元サーバに送信する送信ステップと、
を備えることを特徴とする通信方法。
【0105】
(付記8)
前記シリアライズステップは、前記受信ステップで受信された読取要求を受信順に取り出して格納するとともに、該格納した読取要求をFIFOで取り出して、前記情報取得ステップを実行する手段に送ることで、前記読取要求をシリアライズすることを特徴とする付記7に記載の通信方法。
【0106】
(付記9)
前記ディスク記憶媒体に記憶されたデータをキャッシュメモリに書き込む書き込みステップと、
前記読取要求に係る要求データが、前記キャッシュメモリに存在するか否かを判別する判別ステップとをさらに備え、
前記情報取得ステップは、前記要求データが前記キャッシュメモリに存在すると判別された場合、前記要求データを前記キャッシュメモリから取得し、前記要求データが前記キャッシュメモリに存在しないと判別された場合、前記要求データを前記ディスク記憶媒体から取得し、
前記書き込みステップは、前記要求データが前記キャッシュメモリに存在しないと判別された場合、前記情報取得ステップで取得した前記要求データを、前記キャッシュメモリに書き込む、
ことを特徴とする付記7又は8に記載の通信方法。
【0107】
(付記10)
前記ディスク記憶媒体からデータの読み取りが可能であるか否かを検知する検知ステップをさらに備え、
前記書き込みステップは、前記検知ステップにより前記データの読み取りが可能であると検知されることに応じて、前記ディスク記憶媒体に記憶されたデータを前記キャッシュメモリに書き込むことを開始する、
ことを特徴とする付記9に記載の通信方法。
【0108】
(付記11)
前記ディスク記憶媒体からデータの読み取りが可能であるか否かを検知する検知ステップと、
前記ディスク記憶媒体に記憶されたデータをキャッシュメモリに書き込む書き込みステップとをさらに備え、
前記書き込みステップは、前記検知ステップにより前記データの読み取りが可能であると検知されることに応じて、前記ディスク記憶媒体に記憶されたデータを前記キャッシュメモリに書き込むことを開始し、
前記情報取得ステップは、前記書き込みステップにより前記ディスク記憶媒体に記憶されたデータの全てが前記キャッシュメモリに書き込まれた後に、前記読取要求に係る要求データを前記キャッシュメモリから取得する、
ことを特徴とする付記7又は8に記載の通信方法。
【0109】
(付記12)
コンピュータを、
ディスク記憶媒体に記憶されたデータの読取要求を、複数のサーバから受信する受信手段、
該受信手段が受信した前記読取要求を、前記ディスク記憶媒体への一つのアクセス権に係る命令にシリアライズするシリアライズ手段、
前記シリアライズされた前記読取要求の順序に従って、前記読取要求に係る要求データを、前記ディスク記憶媒体に記憶されたデータの中から取得する情報取得手段、
前記情報取得手段が取得した要求データを、該要求データに対応する前記読取要求の送信元サーバに送信する送信手段、
として機能させることを特徴とするプログラム。
【符号の説明】
【0110】
1 通信システム
3 DVD/CDドライブ
4 キャッシュメモリ
5 通信装置
10 プロトコルシリアライザ
11 キャッシュコントローラ
12 メモリコントローラ
13 DVD/CDコントローラ
20 メインコントローラ
A1,A2,A3 サーバ
B1,B2,B3 サーバ用インターフェース
C ドライブ用インターフェース
D メモリ用インターフェース
E1,E2,E3 サーバ側送受信バッファ
D ドライブ側送受信バッファ
H1,H2,H3,F 受信バッファ
I1,I2,I3,G 送信バッファ
J メモリ用インターフェース
【特許請求の範囲】
【請求項1】
ディスク記憶媒体に記憶されたデータの読取要求を、複数のサーバから受信する受信手段と、
該受信手段が受信した前記読取要求を、前記ディスク記憶媒体への一つのアクセス権に係る命令にシリアライズするシリアライズ手段と、
前記シリアライズされた前記読取要求の順序に従って、前記読取要求に係る要求データを、前記ディスク記憶媒体に記憶されたデータの中から取得する情報取得手段と、
前記情報取得手段が取得した要求データを、該要求データに対応する前記読取要求の送信元サーバに送信する送信手段と、
を備えることを特徴とする通信装置。
【請求項2】
前記シリアライズ手段は、前記受信手段が受信した読取要求を受信順に取り出して格納するとともに、該格納した読取要求をFIFOで取り出して、前記情報取得手段に送ることで、前記読取要求をシリアライズすることを特徴とする請求項1に記載の通信装置。
【請求項3】
前記ディスク記憶媒体に記憶されたデータをキャッシュメモリに書き込む書き込み手段と、
前記読取要求に係る要求データが、前記キャッシュメモリに存在するか否かを判別する判別手段とをさらに備え、
前記情報取得手段は、前記要求データが前記キャッシュメモリに存在すると判別された場合、前記要求データを前記キャッシュメモリから取得し、前記要求データが前記キャッシュメモリに存在しないと判別された場合、前記要求データを前記ディスク記憶媒体から取得し、
前記書き込み手段は、前記要求データが前記キャッシュメモリに存在しないと判別された場合、前記情報取得手段が取得した前記要求データを、前記キャッシュメモリに書き込む、
ことを特徴とする請求項1又は2に記載の通信装置。
【請求項4】
前記ディスク記憶媒体からデータの読み取りが可能であるか否かを検知する検知手段をさらに備え、
前記書き込み手段は、前記検知手段により前記データの読み取りが可能であると検知されることに応じて、前記ディスク記憶媒体に記憶されたデータを前記キャッシュメモリに書き込むことを開始する、
ことを特徴とする請求項3に記載の通信装置。
【請求項5】
前記ディスク記憶媒体からデータの読み取りが可能であるか否かを検知する検知手段と、
前記ディスク記憶媒体に記憶されたデータをキャッシュメモリに書き込む書き込み手段とをさらに備え、
前記書き込み手段は、前記検知手段により前記データの読み取りが可能であると検知されることに応じて、前記ディスク記憶媒体に記憶されたデータを前記キャッシュメモリに書き込むことを開始し、
前記情報取得手段は、前記書き込み手段により前記ディスク記憶媒体に記憶されたデータの全てが前記キャッシュメモリに書き込まれた後に、前記読取要求に係る要求データを前記キャッシュメモリから取得する、
ことを特徴とする請求項1又は2に記載の通信装置。
【請求項6】
前記キャッシュメモリをさらに備え、
前記キャッシュメモリの容量は、前記ディスク記憶媒体の容量以上であることを特徴とする請求項1乃至5のいずれか1項に記載の通信装置。
【請求項7】
ディスク記憶媒体に記憶されたデータの読取要求を、複数のサーバから受信する受信ステップと、
該受信ステップで受信された前記読取要求を、前記ディスク記憶媒体への一つのアクセス権に係る命令にシリアライズするシリアライズステップと、
前記シリアライズされた前記読取要求の順序に従って、前記読取要求に係る要求データを、前記ディスク記憶媒体に記憶されたデータの中から取得する情報取得ステップと、
前記情報取得ステップで取得された要求データを、該要求データに対応する前記読取要求の送信元サーバに送信する送信ステップと、
を備えることを特徴とする通信方法。
【請求項8】
コンピュータを、
ディスク記憶媒体に記憶されたデータの読取要求を、複数のサーバから受信する受信手段、
該受信手段が受信した前記読取要求を、前記ディスク記憶媒体への一つのアクセス権に係る命令にシリアライズするシリアライズ手段、
前記シリアライズされた前記読取要求の順序に従って、前記読取要求に係る要求データを、前記ディスク記憶媒体に記憶されたデータの中から取得する情報取得手段、
前記情報取得手段が取得した要求データを、該要求データに対応する前記読取要求の送信元サーバに送信する送信手段、
として機能させることを特徴とするプログラム。
【請求項1】
ディスク記憶媒体に記憶されたデータの読取要求を、複数のサーバから受信する受信手段と、
該受信手段が受信した前記読取要求を、前記ディスク記憶媒体への一つのアクセス権に係る命令にシリアライズするシリアライズ手段と、
前記シリアライズされた前記読取要求の順序に従って、前記読取要求に係る要求データを、前記ディスク記憶媒体に記憶されたデータの中から取得する情報取得手段と、
前記情報取得手段が取得した要求データを、該要求データに対応する前記読取要求の送信元サーバに送信する送信手段と、
を備えることを特徴とする通信装置。
【請求項2】
前記シリアライズ手段は、前記受信手段が受信した読取要求を受信順に取り出して格納するとともに、該格納した読取要求をFIFOで取り出して、前記情報取得手段に送ることで、前記読取要求をシリアライズすることを特徴とする請求項1に記載の通信装置。
【請求項3】
前記ディスク記憶媒体に記憶されたデータをキャッシュメモリに書き込む書き込み手段と、
前記読取要求に係る要求データが、前記キャッシュメモリに存在するか否かを判別する判別手段とをさらに備え、
前記情報取得手段は、前記要求データが前記キャッシュメモリに存在すると判別された場合、前記要求データを前記キャッシュメモリから取得し、前記要求データが前記キャッシュメモリに存在しないと判別された場合、前記要求データを前記ディスク記憶媒体から取得し、
前記書き込み手段は、前記要求データが前記キャッシュメモリに存在しないと判別された場合、前記情報取得手段が取得した前記要求データを、前記キャッシュメモリに書き込む、
ことを特徴とする請求項1又は2に記載の通信装置。
【請求項4】
前記ディスク記憶媒体からデータの読み取りが可能であるか否かを検知する検知手段をさらに備え、
前記書き込み手段は、前記検知手段により前記データの読み取りが可能であると検知されることに応じて、前記ディスク記憶媒体に記憶されたデータを前記キャッシュメモリに書き込むことを開始する、
ことを特徴とする請求項3に記載の通信装置。
【請求項5】
前記ディスク記憶媒体からデータの読み取りが可能であるか否かを検知する検知手段と、
前記ディスク記憶媒体に記憶されたデータをキャッシュメモリに書き込む書き込み手段とをさらに備え、
前記書き込み手段は、前記検知手段により前記データの読み取りが可能であると検知されることに応じて、前記ディスク記憶媒体に記憶されたデータを前記キャッシュメモリに書き込むことを開始し、
前記情報取得手段は、前記書き込み手段により前記ディスク記憶媒体に記憶されたデータの全てが前記キャッシュメモリに書き込まれた後に、前記読取要求に係る要求データを前記キャッシュメモリから取得する、
ことを特徴とする請求項1又は2に記載の通信装置。
【請求項6】
前記キャッシュメモリをさらに備え、
前記キャッシュメモリの容量は、前記ディスク記憶媒体の容量以上であることを特徴とする請求項1乃至5のいずれか1項に記載の通信装置。
【請求項7】
ディスク記憶媒体に記憶されたデータの読取要求を、複数のサーバから受信する受信ステップと、
該受信ステップで受信された前記読取要求を、前記ディスク記憶媒体への一つのアクセス権に係る命令にシリアライズするシリアライズステップと、
前記シリアライズされた前記読取要求の順序に従って、前記読取要求に係る要求データを、前記ディスク記憶媒体に記憶されたデータの中から取得する情報取得ステップと、
前記情報取得ステップで取得された要求データを、該要求データに対応する前記読取要求の送信元サーバに送信する送信ステップと、
を備えることを特徴とする通信方法。
【請求項8】
コンピュータを、
ディスク記憶媒体に記憶されたデータの読取要求を、複数のサーバから受信する受信手段、
該受信手段が受信した前記読取要求を、前記ディスク記憶媒体への一つのアクセス権に係る命令にシリアライズするシリアライズ手段、
前記シリアライズされた前記読取要求の順序に従って、前記読取要求に係る要求データを、前記ディスク記憶媒体に記憶されたデータの中から取得する情報取得手段、
前記情報取得手段が取得した要求データを、該要求データに対応する前記読取要求の送信元サーバに送信する送信手段、
として機能させることを特徴とするプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2012−203687(P2012−203687A)
【公開日】平成24年10月22日(2012.10.22)
【国際特許分類】
【出願番号】特願2011−68271(P2011−68271)
【出願日】平成23年3月25日(2011.3.25)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】
【公開日】平成24年10月22日(2012.10.22)
【国際特許分類】
【出願日】平成23年3月25日(2011.3.25)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】
[ Back to top ]