(57)【要約】  【課題】  コンテンツ動的生成を低コストで実現することができる半導体集積回路を提供する。  【解決手段】  パーソナルコンピュータ６との間で信号の送受信を行うインタフェース部１１と、所定の容量を有するバッファメモリ１２と、バッファメモリ１２の容量に応じたサイズを各々が有する第１〜第６実行ブロックを記録するコンテンツ記録部１３と、バッファメモリ１２を作業領域として使用しながら第１〜第６実行ブロックを実行し、インタフェース部１１を介してパーソナルコンピュータ６とＨＴＴＰによって通信を行うＨＴＴＰサーバ処理部１４とを具備する。【選択図】  図２
2005157831.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続された外部装置と所定のプロトコルによって通信を行うための半導体集積回路であって、
前記外部装置との間で信号の送受信を行うインタフェース部と、
所定の容量を有するバッファメモリ部と、
前記所定の容量に応じたサイズを各々が有する複数のブロックを含む情報を記録する情報記録部と、
前記情報に基づいて、前記バッファメモリ部を作業領域として使用しながら、前記インタフェース部を介して前記外部装置と前記所定のプロトコルによって通信を行う通信処理部と、
を具備する半導体集積回路。
【請求項２】
前記情報記録部が、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、又は、フラッシュメモリである、請求項１記載の半導体集積回路。
【請求項３】
前記所定のプロトコルが、ＨＴＴＰ（Hyper Text Transfer Protocol）であり、前記通信処理部が、ＨＴＴＰサーバとして、クライアントとしての前記外部装置と通信を行う、請求項１又は２記載の半導体集積回路。
【請求項４】
前記複数のブロックが、所定の言語で記述された複数のサブプログラムであり、前記情報が、前記複数のサブプログラムを含むプログラムであり、前記通信処理部が、前記プログラムを解釈して実行することにより前記外部装置と通信を行う、請求項１〜３のいずれか１項に記載の半導体集積回路。
【請求項５】
前記複数のサブプログラムの各々が、前記通信処理部が当該サブプログラムを実行するときに必要とする作業領域の容量が前記所定の容量以下となるように作成されている、請求項４記載の半導体集積回路。
【請求項６】
前記プログラムが、ＨＴＭＬデータを変換することにより得られたものである、請求項４又は５記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して接続された外部装置と所定のプロトコルによって通信を行うための半導体集積回路に関する。
【背景技術】
【０００２】
現在、インターネット、イントラネット、ＬＡＮ（Local Area Network）等において、サーバコンピュータとクライアントコンピュータとの間の通信にＨＴＴＰ（Hyper Text Transfer Protocol）が広く用いられている。なお、ＨＴＴＰ／１．０は、ＲＦＣ（Request For Comment）１９４５に、ＨＴＴＰ／１．１は、ＲＦＣ２６１６に、それぞれ規定されている。
【０００３】
一般に、サーバコンピュータ上では、ＨＴＴＰサーバプログラムが実行され、クライアントコンピュータ上では、ウェブブラウザプログラムが実行されている。また、サーバコンピュータは、ＨＴＭＬ（Hyper Text Markup Language）データを格納している。そして、サーバコンピュータは、クライアントコンピュータからの要求に応じて、インターネット等のネットワークを介してＨＴＭＬデータを送信し、クライアントコンピュータは、受信したＨＴＭＬデータに基づいて文字、画像等を表示する。
【０００４】
従来においては、上記のように、あらかじめ格納していたＨＴＭＬデータを送受信することしか行われていなかった。しかしながら、近年においては、サーバコンピュータが、クライアントコンピュータからの要求に応じてプログラムを実行し、実行結果としてのコンテンツを動的に生成してクライアントに送信すること（以下、「コンテンツ動的生成」）という）も行われるようになっている。
上記のようなコンテンツ動的生成のために、（１）ＣＧＩ（Common Gateway Interface）、（２）ＳＳＩ（Server Side Include）が、広く利用されている。以下、これらについて説明する。
【０００５】
（１）ＣＧＩ
サーバコンピュータ上で実行されているＨＴＴＰサーバプログラムが、クライアントコンピュータからの要求に応じて他のプログラム（外部プログラム）を呼び出すためのインタフェースの仕様である。外部プログラムは、ＨＴＴＰサーバプログラムから受け取った文字列を解釈すると、ＨＴＴＰサーバプログラムがクライアントコンピュータに送信すべきコンテンツ全体を新たに作成し、ＨＴＴＰサーバプログラムは、この新たなコンテンツをそのままクライアントコンピュータに送信する。
【０００６】
（２）ＳＳＩ
ＨＴＭＬデータ中に記述可能なコマンド又はスクリプト（プログラム）である。ＨＴＴＰサーバプログラムは、ＨＴＭＬデータ中に記述されたＳＳＩを、ＳＳＩの文法に基づいて動的に解釈し、ＨＴＭＬデータに置き換えてクライアントコンピュータに送信する。
【０００７】
ところで、従来、ＨＴＴＰによる通信は、専らコンピュータ間で行われていた。しかし、現在においては、コンピュータ以外の装置（例えば、家庭電化製品等）においても、ネットワーク接続のニーズが生じてきており、さらに、ＨＴＴＰサーバ機能を具備することが求められるようになってきている。このようなものとして、例えば、デバイス装置（レーザビームプリンタ）に関する情報を示すコンテンツデータ（ＨＴＭＬデータ、ビットマップ画像）を外部装置（Ｗｅｂブラウザを実行するホストコンピュータ）に送信する情報管理装置等が知られている（例えば、特許文献１参照）。
【０００８】
【特許文献１】特開２００２−１９６９９５号公報
【０００９】
しかしながら、家庭電化製品等において、コンテンツ動的生成を実現するには、下記のような問題点がある。
【００１０】
（ａ）ＣＧＩを実現する場合の問題点
ＨＴＴＰサーバプログラムがＣＧＩを用いて外部プログラムを呼び出す場合において、ＨＴＴＰサーバプログラムは、外部プログラムが生成するコンテンツのサイズを予め知ることができない。家庭電化製品等においては搭載できるメモリ容量にコスト的制約、実装上の制約等があることから、ＣＧＩを実現するためには、（ｉ）外部プログラムが一度に生成するコンテンツのサイズに制限値を設定する、（ｉｉ）外部プログラムをＨＴＴＰサーバプログラムと別スレッドで動作させ、外部プログラムによって生成されたコンテンツのサイズが所定のサイズを超える都度、ＨＴＴＰサーバプログラムに引き渡すことを繰り返す、等の対策が必要となる。
上記（ｉｉ）の対策を行う場合、外部プログラムが生成可能なコンテンツのサイズに制限はなくなる。しかし、外部プログラムをＨＴＴＰサーバプログラムと別スレッドで動作させるため、新たなリソース（例えば、スタック領域等）が必要となる。
【００１１】
（ｂ）ＳＳＩを実現する場合の問題点
ＨＴＴＰサーバプログラムが、ＨＴＭＬデータを解析してＳＳＩを見つけ、ＳＳＩを見つけたならば、解析して実行しなければならない。この処理は、家庭電化製品等に内蔵される半導体集積回路内のＣＰＵコアにとって大きな負荷となる。
また、ＳＳＩの機能によっては、ＨＴＴＰサーバプログラムが、外部プログラムを呼び出し、外部プログラムの出力をＣＧＩの場合と同様に取り込まなければならない。このとき、上記（ａ）と同様の問題が生ずる。家庭電化製品等に内蔵される半導体集積回路を用いてＳＳＩを実現する場合において、外部プログラムの呼び出しは、半導体集積回路外部のデバイスとデータのやり取りを行うために必須であり、上記（ａ）の問題は、不可避である。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
そこで、上記の点に鑑み、本発明は、コンテンツ動的生成を低コストで実現することができる半導体集積回路を提供することを目的とする。
【課題を解決するための手段】
【００１３】
以上の課題を解決するため、本発明に係る半導体集積回路は、ネットワークを介して接続された外部装置と所定のプロトコルによって通信を行うための半導体集積回路であって、外部装置との間で信号の送受信を行うインタフェース部と、所定の容量を有するバッファメモリ部と、所定の容量に応じたサイズを各々が有する複数のブロックを含む情報を記録する情報記録部と、情報に基づいて、バッファメモリ部を作業領域として使用しながら、インタフェース部を介して外部装置と前記所定のプロトコルによって通信を行う通信処理部とを具備する。
【００１４】
ここで、情報記録部が、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、又は、フラッシュメモリであることとしても良い。また、所定のプロトコルが、ＨＴＴＰ（Hyper Text Transfer Protocol）であり、通信処理部が、ＨＴＴＰサーバとして、クライアントとしての外部装置と通信を行うこととしても良い。
【００１５】
さらに、複数のブロックが、所定の言語で記述された複数のサブプログラムであり、情報が、複数のサブプログラムを含むプログラムであり、通信処理部が、プログラムを解釈して実行することにより外部装置と通信を行うこととしても良い。また、複数のサブプログラムの各々が、通信処理部が当該サブプログラムを実行するときに必要とする作業領域の容量が所定の容量以下となるように作成されていることとしても良い。さらに、プログラムが、ＨＴＭＬデータを変換することにより得られたものであっても良い。
【発明の効果】
【００１６】
本発明によれば、バッファメモリの容量が少ない場合であっても、コンテンツ動的生成を実現することができる。これにより、コンテンツ動的生成を低コストで実現することが可能である。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照しながら、本発明の実施の形態について説明する。
図１は、本発明の一実施形態としての通信コントローラを用いたＤＶＤ（Digital Versatile Disc）プレイヤーを含むシステムを示す図である。図１に示すように、このシステム１は、ＤＶＤプレイヤー２と、パーソナルコンピュータ６とを含んでいる。
【００１８】
ＤＶＤプレイヤー２とパーソナルコンピュータ６は、ネットワーク（例えば、家の中に配設されたＬＡＮ（Local Area Network）、インターネット等）を介して相互に接続されており、ＨＴＴＰ（Hyper Text Transfer Protocol）によって通信を行う。パーソナルコンピュータ６には、ウェブブラウザプログラムがインストールされており、パーソナルコンピュータ６は、このウェブブラウザプログラムを用いて、ＤＶＤプレイヤー２から受信したデータに基づく文字又は画像を表示する。
【００１９】
ＤＶＤプレイヤー２は、ＤＶＤ−Ｖｉｄｅｏディスクに記録されている画像及び音声信号を読み出してテレビジョン装置に出力するための装置である。ＤＶＤプレイヤー２は、ホストＣＰＵ３と、ＤＶＤドライブユニット部４と、通信コントローラ５とを具備する。
ホストＣＰＵ３は、ＤＶＤプレイヤー２全体の制御を行う。
【００２０】
ＤＶＤドライブユニット部４は、スピンドルモータ、レーザピックアップ等を含んでおり、ホストＣＰＵ３の制御下で、ＤＶＤ−Ｖｉｄｅｏディスクに記録されている画像及び音声信号を読み出して出力する。
通信コントローラ５は、ホストＣＰＵ３とパーソナルコンピュータ６との間の通信を担う半導体集積回路である。
【００２１】
図２は、通信コントローラ５の内部構成を示す図である。図２に示すように、通信コントローラ５は、インタフェース部１１と、コンテンツ記録部１３と、バッファメモリ１２と、ＨＴＴＰサーバ処理部１４とを具備する。
インタフェース部１１は、ネットワークを介してパーソナルコンピュータ６との間で信号の送受信を行う。
バッファメモリ１２は、所定の容量を有するＲＡＭ（Random Access Memory）である。
【００２２】
コンテンツ記録部１３は、ユーザ（ここでは、ＤＶＤプレイヤー２の製造メーカ）によって作成されたコンテンツを記録したＲＯＭ（Read Only Memory）である。コンテンツ記録部１３に記録されているコンテンツは、ユーザによって作成されたＨＴＭＬ（Hyper Text Markup Language）データを所定の中間言語に変換したものである。図３は、ユーザによって作成されたＨＴＭＬデータ及びコンテンツ記録部１３に記録されているコンテンツの一例を表す図である。ユーザによって作成されたＨＴＭＬデータ（図３中の左側参照）は、第１〜第６ブロックに分けられ、第１〜第３及び第６ブロックは、第１〜第３及び第６実行ブロックにそれぞれ変換され、第４ブロックは、第４−１及び第４−２実行ブロックに変換され、第５ブロックは、第５−１及び第５−２実行ブロックに変換されている。なお、コンテンツ記録部１３として、ＲＡＭ（Random Access Memory）、フラッシュメモリ等を用いても良い。
【００２３】
ＨＴＴＰサーバ処理部１４は、ＨＴＴＰサーバとして動作し、インタフェース部１１を介してパーソナルコンピュータ６とＨＴＴＰによって通信を行う。なお、ＨＴＴＰサーバ処理部１４は、ハードワイヤード回路で構成することもでき、ＣＰＵコアとＨＴＴＰサーバプログラム（ソフトウェア）で構成することもできる。
【００２４】
さらに、ＨＴＴＰサーバ処理部１４は、バッファメモリ１２を作業領域として使用しながら、コンテンツ記録部１３に記録されている第１〜第６実行ブロックを実行する。これら第１〜第６実行ブロックの各々は、ＨＴＴＰサーバ処理部１４が第１〜第６実行ブロックを実行するときに必要とする作業領域の容量がバッファメモリ１２の容量以下となるように作成されている。すなわち、第１〜第６実行ブロックの各々は、バッファメモリ１２がＨＴＴＰサーバ処理部１４の作業領域として不足することがないように作成されている。
このため、第１〜第３及び第６ブロックは、第１〜第３及び第６実行ブロックにそれぞれ変換されているが、第４ブロックは、第４−１及び第４−２実行ブロックの２つの実行ブロックに変換されている。これは、第４ブロックを１個の実行ブロックに変換したとすると、当該実行ブロックをＨＴＴＰサーバ処理部１４が実行するときに必要とする作業領域がバッファメモリ１２の容量を超えてしまうためである。同様に、第５ブロックは、第５−１及び第５−２実行ブロックの２つの実行ブロックに変換されているが、これも、第５ブロックを１個の実行ブロックに変換したとすると、当該実行ブロックをＨＴＴＰサーバ処理部１４が実行するときに必要とする作業領域がバッファメモリ１２の容量を超えてしまうためである。
【００２５】
次に、システム１の動作について説明する。図４は、システム１の動作を示すフローチャートである。
パーソナルコンピュータ６においてウェブブラウザプログラムが実行されると、パーソナルコンピュータ６は、ｈｔｔｐリクエストを通信コントローラ５に送信する（ステップＳ１０１）。
通信コントローラ５内のＨＴＴＰサーバ処理部１４は、ｈｔｔｐリクエストを受信すると、コンテンツ記録部１３に記録されている第１実行ブロックを実行し、ｈｔｔｐ応答、「<head>」、及び、「<head>」をパーソナルコンピュータ６に送信する（ステップＳ２０１）。なお、第１〜第６実行ブロックの末尾には、次に実行すべき実行ブロックの先頭アドレスが格納されており、第１実行ブロックの末尾には、次に実行すべき第２実行ブロックの先頭アドレスが格納されている。
【００２６】
次に、ＨＴＴＰサーバ処理部１４は、第２実行ブロックを実行し、「status_toiawase」というコマンドを実行する（ステップＳ２０２）。ここでは、「status_toiawase」コマンドは、ＤＶＤ−Ｖｉｄｅｏディスクを再生中であるか停止中であるかを表すステータスをホストＣＰＵ３に問い合わせるためのコマンドであるものとする。なお、この「status_toiawase」コマンドは、ライブラリ等として提供することができる。
ホストＣＰＵ３は、ステータスの問い合わせを受けると、ＤＶＤ−Ｖｉｄｅｏディスクを再生中の場合には戻り値としての変数「cond1」に「１」を、停止中の場合には変数「cond1」に「０」を設定する（ステップＳ３０１）。
【００２７】
次に、ＨＴＴＰサーバ処理部１４は、第３実行ブロックを実行し、ＤＶＤ−Ｖｉｄｅｏディスクを再生中であるか否か（変数「cond1」が「１」であるか「０」であるか）をチェックし、再生中である場合には第４−１実行ブロックを実行し、停止中である場合には第５−１実行ブロックを実行する（ステップＳ２０３）。
【００２８】
ＤＶＤ−Ｖｉｄｅｏディスクを再生中であると判断した場合、ＨＴＴＰサーバ処理部１４は、第４−１実行ブロックを実行し（ステップＳ２０４）、次いで第４−２実行ブロックを実行する（ステップＳ２０５）。なお、ＨＴＴＰサーバ処理部１４は、第４−１〜第４−２実行ブロックを実行すると、図５に示す画像を表示するためのＨＴＭＬデータを動的に生成してパーソナルコンピュータ６に送信する。
一方、ＤＶＤ−Ｖｉｄｅｏディスクを停止中であると判断した場合、ＨＴＴＰサーバ処理部１４は、第５−１実行ブロックを実行し（ステップＳ２０６）、次いで第５−２実行ブロックを実行する（ステップＳ２０７）。なお、ＨＴＴＰサーバ処理部１４は、第５−１〜第５−２実行ブロックを実行すると、図６に示す画像を表示するためのＨＴＭＬデータを動的に生成してパーソナルコンピュータ６に送信する。
【００２９】
その後、ＨＴＴＰサーバ処理部１４は、第６実行ブロックを実行し、「</body>」及び「</html>」をパーソナルコンピュータ６に送信する（ステップＳ２０８）。
【００３０】
パーソナルコンピュータ６は、ＨＴＴＰサーバ処理部１４から受信したデータに基づいて、図５又は図６に示す画像を表示する（ステップＳ１０２）。なお、パーソナルコンピュータ６のユーザが、図５又は図６中の「停止ボタン」又は「再生ボタン」をクリックすると、パーソナルコンピュータ６〜通信コントローラ５〜ホストＣＰＵ３の経路を介して、ＤＶＤ−Ｖｉｄｅｏディスクの停止又は再生を行うことができる。
【００３１】
このように、通信コントローラ５によれば、第１〜第６実行ブロックの各々が、ＨＴＴＰサーバ処理部１４が第１〜第６実行ブロックを実行するときに必要とする作業領域の容量がバッファメモリ１２の容量以下となるように作成されているので、バッファメモリ１２の容量が少ない場合であっても、ＨＴＭＬデータの動的生成を実現することが可能となる。
【産業上の利用可能性】
【００３２】
本発明は、ＨＴＴＰサーバ機能を有する半導体集積回路において利用可能である。さらに、本発明は、家庭電化製品等に内蔵するための半導体集積回路において利用可能である。
【図面の簡単な説明】
【００３３】
【図１】本発明の一実施形態としての半導体集積回路を用いたシステムを示す図。
【図２】図１の通信コントローラ５の内部構成を示す図。
【図３】図２のコンテンツ記録部１３に記録されているデータの概要を示す図。
【図４】図１のシステム１の動作を示すフローチャート。
【図５】図１のパーソナルコンピュータ６に表示される画像の一例を示す図。
【図６】図１のパーソナルコンピュータ６に表示される画像の一例を示す図。
【符号の説明】
【００３４】
１  システム、２  ＤＶＤプレイヤー、３  ホストＣＰＵ、４  ＤＶＤドライブユニット部、５  通信コントローラ、６  パーソナルコンピュータ、１１  インタフェース部、１２  バッファメモリ、１３  コンテンツ記録部、１４  ＨＴＴＰサーバ処理部
【図１】
2005157831.tif 000003
【図２】
2005157831.tif 000004
【図３】
2005157831.tif 000005
【図４】
2005157831.tif 000006
【図５】
2005157831.tif 000007
【図６】
2005157831.tif 000008