(57)【要約】【課題】  複数のチャネルに対する処理を同時に実行したい。【解決手段】  ＲＦ部１２では、複数のチャネルが周波数多重された無線周波数の信号を受信する。ＡＤ部１４は、デジタル信号への変換を実行する。処理部１６は、ＡＤ部１４によって変換されたデジタル信号に含まれた複数のチャネルのそれぞれを処理する。ここで、処理部１６には、周波数多重された複数のチャネルのそれぞれに対応した帯域を有しつつ、デジタル信号を複数のチャネルに分離するＢＰＦ３０と、ＢＰＦ３０によって分離された複数のチャネルのそれぞれを復調する復調部３６とが少なくとも含まれる。【選択図】  図１
2006319763.tif 000002
【特許請求の範囲】
【請求項１】
複数のチャネルが周波数多重された無線周波数の信号を受信する受信部と、
前記受信部において受信した無線周波数の信号をデジタル信号に変換する変換部と、
前記変換部によって変換されたデジタル信号に含まれた複数のチャネルのそれぞれを処理する処理部とを備え、
前記処理部は、
周波数多重された複数のチャネルのそれぞれに対応した帯域を有しつつ、デジタル信号を複数のチャネルに分離するバンドパスフィルタと、
前記バンドパスフィルタによって分離された複数のチャネルのそれぞれを復調する復調部とを備えることを特徴とする受信装置。
【請求項２】
前記処理部は、
前記バンドパスフィルタと前記復調部の機能を有するソフトウエアプログラムと、
前記ソフトウエアプログラムを実行する複数のプロセッサを備え、
前記複数のプロセッサのそれぞれは、ソフトウエアプログラムにおける機能に含まれた複数の処理の内容のうち、少なくともひとつを割り当てられつつ、割り当てられた少なくともひとつの処理の内容を内部のキャッシュに固定的に格納することを特徴とする請求項１に記載の受信装置。
【請求項３】
前記復調部において復調した複数のチャネルをそれぞれ復号する復号部と、
前記復号部によって復号された複数のチャネルのうちの少なくともひとつを選択してから出力する出力部とをさらに備え、
前記復号部の機能は、前記処理部におけるソフトウエアプログラムによって実現されることを特徴とする請求項２に記載の受信装置。
【請求項４】
前記復調部において復調した複数のチャネルをそれぞれ復号する復号部と、
前記復号部によって復号された複数のチャネルを並列に出力する出力部とをさらに備え、
前記復号部の機能は、前記処理部におけるソフトウエアプログラムによって実現されることを特徴とする請求項２に記載の受信装置。
【請求項５】
複数のチャネルが周波数多重された無線周波数の信号を受信し、受信した無線周波数の信号をデジタル信号に変換した後、変換したデジタル信号に含まれた複数のチャネルのそれぞれを処理する受信方法であって、
周波数多重された複数のチャネルのそれぞれに対応した帯域を有したバンドパスフィルタによって、デジタル信号を複数のチャネルに分離した後、分離された複数のチャネルのそれぞれを復調することを特徴とする受信方法。
【請求項６】
複数のチャネルが周波数多重された無線周波数の信号を変換したデジタル信号を入力するステップと、
周波数多重された複数のチャネルのそれぞれに対応した帯域を有したバンドパスフィルタによって、デジタル信号を複数のチャネルに分離するステップと、
分離された複数のチャネルのそれぞれを復調するステップと、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、受信技術に関し、特に周波数多重された信号を受信する受信方法および装置に関する。
【背景技術】
【０００２】
地上波デジタルテレビジョン放送やＮＴＳＣ（Ｎａｔｉｏｎａｌ  Ｔｅｌｅｖｉｓｉｏｎ  Ｓｔａｎｄａｒｄｓ  Ｃｏｍｍｉｔｔｅｅ）方式のテレビジョン放送において、複数のチャネルが周波数多重されている。複数のチャネルが周波数多重された放送波は、受信装置に受信される。受信装置は、放送波に対して、無線周波数から中間周波数への変換、および中間周波数からベースバンド周波数への変換を実行するとともに、バンドパスフィルタを使用しながら、所定のチャネルを抽出する。さらに、所定のチャネルでの番組が再生される（例えば、特許文献１参照。）。
【特許文献１】特開２００１−３２６８６３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明者はこうした状況下、以下の課題を認識するに至った。受信装置は、受信した放送波に対して、無線周波数から中間周波数への変換を実行する際に、バンドパスフィルタによって、所定のチャネルを抽出する。以上の処理を実行すべき変換装置は、ひとつのチャネルを復調するためにひとつ必要とされる。そのため、ひとつのチャネルでの番組を視聴しながら、別のチャネルでの番組を録画するような場合、すなわち複数のチャネルを同時に復調する場合、複数の変換装置が必要とされる。その結果、受信装置の規模が大きくなってしまう。また、チャネルでの番組に含まれる映像データがＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔ  Ｇｒｏｕｐ）等によって符号化されている場合、復号の処理に所定の遅延が生じる。その結果、選択すべきチャネルを変更したときに、最初の映像が表示されるまでに時間がかかってしまう場合が生じる。
【０００４】
本発明はこうした状況に鑑みてなされたものであり、その目的は、複数のチャネルに対する処理を並行に実行する受信技術を提供することにある。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明のある態様の受信装置は、複数のチャネルが周波数多重された無線周波数の信号を受信する受信部と、受信部において受信した無線周波数の信号をデジタル信号に変換する変換部と、変換部によって変換されたデジタル信号に含まれた複数のチャネルのそれぞれを処理する処理部とを備える。処理部は、周波数多重された複数のチャネルのそれぞれに対応した帯域を有しつつ、デジタル信号を複数のチャネルに分離するバンドパスフィルタと、バンドパスフィルタによって分離された複数のチャネルのそれぞれを復調する復調部とを備える。
【０００６】
「無線周波数の信号をデジタル信号に変換する」とは、無線周波数の信号をデジタル信号に直接変換する場合の他に、中間周波数を介してデジタル信号に変換する場合も含む。すなわち、無線周波数の信号が入力され、最終的にデジタル信号が出力されればよい。この態様によると、無線周波数の信号をそのままデジタル信号に変換し、変換したデジタル信号をチャネル単位に分離してから、分離したそれぞれのチャネルを処理するので、複数のチャネルに対する処理を並行に実行できる。
【０００７】
処理部は、バンドパスフィルタと復調部の機能を有するソフトウエアプログラムと、ソフトウエアプログラムを実行する複数のプロセッサを備えてもよい。複数のプロセッサのそれぞれは、ソフトウエアプログラムにおける機能に含まれた複数の処理の内容のうち、少なくともひとつを割り当てられつつ、割り当てられた少なくともひとつの処理の内容を内部のキャッシュに固定的に格納してもよい。「処理の内容」とは、機能を実現するために、機能を構成している少なくともひとつのモジュールによってなされる動作に相当する。
【０００８】
本発明の別の態様は、受信方法である。この方法は、複数のチャネルが周波数多重された無線周波数の信号を受信し、受信した無線周波数の信号をデジタル信号に変換した後、変換したデジタル信号に含まれた複数のチャネルのそれぞれを処理する受信方法であって、周波数多重された複数のチャネルのそれぞれに対応した帯域を有したバンドパスフィルタによって、デジタル信号を複数のチャネルに分離した後、分離された複数のチャネルのそれぞれを復調する。
【０００９】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１０】
本発明によれば、複数のチャネルに対する処理を並行に実行できる。
【発明を実施するための最良の形態】
【００１１】
本発明を具体的に説明する前に、概要を述べる。本発明の実施例は、地上波デジタルテレビジョン放送での無線周波数の信号を受信し、受信した無線周波数の信号に含まれた番組を再生する受信装置に関する。地上波デジタルテレビジョン放送での無線周波数の信号には、複数のチャネルが含まれている。無線周波数の信号に含まれた複数のチャネルに対する処理を実行するために、本実施例に係る受信装置は、以下のように構成される。受信装置は、受信した無線周波数の信号を中間周波数の信号に周波数変換する。その際、受信装置は、複数のチャネルのうちのいずれかを選択せずに、複数のチャネルが含められた形で周波数変換を実行する。また、複数のチャネルのそれぞれに対応した複数のバンドパスフィルタが備えられており、複数のバンドパスフィルタによって、中間周波数の信号が、複数のチャネルに分離される。受信装置は、分離された複数のチャネルのそれぞれに対して、復調処理やＭＰＥＧのデコードを実行することによって、番組を再生する。さらに、いずれかのチャネルに対応した番組を出力する。
【００１２】
図１は、本発明の実施例に係る受信装置１００の構成を示す。受信装置１００は、アンテナ１０、ＲＦ部１２、ＡＤ部１４、処理部１６、操作部１８を含む。また、処理部１６は、ＢＰＦ３０と総称される第１ＢＰＦ３０ａ、第２ＢＰＦ３０ｂ、第ＮＢＰＦ３０ｎ、直交検波部３２と総称される第１直交検波部３２ａ、第２直交検波部３２ｂ、第Ｎ直交検波部３２ｎ、ＦＦＴ（Ｆａｓｔ  Ｆｏｕｒｉｅｒ  Ｔｒａｎｓｆｏｒｍ）部３４と総称される第１ＦＦＴ部３４ａ、第２ＦＦＴ部３４ｂ、第ＮＦＦＴ部３４ｎ、復調部３６と総称される第１復調部３６ａ、第２復調部３６ｂ、第Ｎ復調部３６ｎ、復号部３８と総称される第１復号部３８ａ、第２復号部３８ｂ、第Ｎ復号部３８ｎ、ＭＰＥＧ解凍部４０と総称される第１ＭＰＥＧ解凍部４０ａ、第２ＭＰＥＧ解凍部４０ｂ、第ＮＭＰＥＧ解凍部４０ｎ、選局部４２、映像出力部４４、音声出力部４６を含む。さらに、受信装置１００は、モニタ２０、スピーカ２２と接続される。
【００１３】
ＲＦ部１２は、アンテナ１０を介して、複数のチャネルが周波数多重された無線周波数の信号を受信する。前述のごとく、無線周波数の信号は、地上波デジタルテレビジョン放送に対応する。また、ＲＦ部１２は、複数のチャネルのうちのいずれかを選択することなく、複数のチャネルを含みつつ、無線周波数の信号を中間周波数の信号に変更する。図２（ａ）−（ｂ）は、受信装置１００において処理される信号のスペクトルを示す。図２（ａ）は、ＲＦ部１２に受信される無線周波数の信号のスペクトルを示す。図中において、横軸が周波数を示す。なお、ここでは、複数のチャネルとして、９つのチャネルが含まれるものとする。また、ひとつのチャネルの帯域幅は、「６ＭＨｚ」として規定されているので、無線周波数の信号の帯域幅は、「５４ＭＨｚ」として規定される。
【００１４】
そのため、無線周波数の信号は、「４７０ＭＨｚ」から「５２４ＭＨｚ」の帯域に配置される。さらに、ひとつのチャネルは、ＯＦＤＭ（Ｏｒｔｈｏｇｏｎａｌ  Ｆｒｅｑｕｅｎｃｙ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅｘｉｎｇ）変調方式による複数のサブキャリアによって構成されているものとする。ここで、無線周波数の信号に含まれるチャネルの数は、「９」でなくてもよい。図２（ｂ）は、ＲＦ部１２によって周波数変換された中間周波数の信号のスペクトルを示す。図示のごとく、中間周波数の信号は、無線周波数の信号と同様に複数のチャネルを有する。一方、中間周波数の信号は、「０ＭＨｚ」から「５４ＭＨｚ」の帯域に配置される。
【００１５】
図１に戻る。ＡＤ部１４は、ＲＦ部１２によって無線周波数の信号から変換された中間周波数の信号をデジタル信号に変換する。前述の複数のチャネルが含まれた中間周波数の信号をそのままデジタル信号に変換できるようなサンプリング周波数によって、ＡＤ部１４は、デジタル信号への変換を実行する。処理部１６は、ＡＤ部１４によって変換されたデジタル信号に含まれた複数のチャネルのそれぞれを処理する。ここで、処理部１６は、プロセッサにインストールされたプログラムによって、以下に説明する処理を実行する。
【００１６】
複数のＢＰＦ３０は、周波数多重された複数のチャネルのそれぞれに対応した帯域を有する。ＢＰＦ３０は、ＡＤ部１４によって変換されたデジタル信号を入力し、複数のチャネルのそれぞれに対応した信号に分離する。ＢＰＦ３０は、例えば、ＦＩＲ（Ｆｉｎｉｔｅ  Ｉｍｐｕｌｓｅ  Ｒｅｓｐｏｎｓｅ）フィルタによって構成される。直交検波部３２は、複数のチャネルのそれぞれに対応した信号を直交検波する。その結果、直交検波部３２は、複数のチャネルのそれぞれに対応したベースバンド信号を出力する。なお、ベースバンド信号は、同相成分と直交成分によって形成されるので、ふたつの信号線によって示されるべきであるが、ここでは、図を明瞭にするために、ひとつの信号線によって示されるものとする。
【００１７】
ＦＦＴ部３４は、直交検波部３２からのベースバンド信号をＦＦＴする。すなわち、ＦＦＴ部３４は、時間領域の信号を周波数領域の信号に変換する。復調部３６は、ＦＦＴ部３４によってＦＦＴされた信号を復調する。なお、復調部３６は、所定の変調方式に対応した復調を実行する。復号部３８は、復調部３６によって復調された信号を復号する。復号部３８における復号は、図示しない送信装置においてなされる符号化方式に対応しているものとする。復号部３８によって復号された信号は、図示しない送信装置においてＭＰＥＧ符号化されているものとする。すなわち、チャネルにて送信される番組は、ＭＰＥＧ符号化されている。ＭＰＥＧ解凍部４０は、復号部３８によって復号された信号に対して、ＭＰＥＧ復号を実行する。その結果、ＭＰＥＧ解凍部４０から、番組に含まれた映像データと音声データが出力される。
【００１８】
操作部１８は、ユーザから、番組の選択の指示を受けつける。操作部１８は、ボタン等によって構成されており、ユーザが、選択すべき番組に対応したボタンを選択することによって、操作部１８は指示を受けつける。操作部１８は、受けつけた指示を選局部４２に出力する。選局部４２は、操作部１８からの指示をもとに、ＭＰＥＧ解凍部４０によって復号された複数の番組のうちの少なくともひとつを選択する。選局部４２は、選択した番組を出力する。映像出力部４４は、選択された番組のうち、映像データをモニタ２０に出力し、モニタ２０にて映像データを再生する。また、音声出力部４６は、選択された番組のうち、映像データをスピーカ２２に出力し、スピーカ２２にて音声データを再生する。このような構成によって、操作部１８が、ユーザから、選択すべき番組の変更を受けつけたとき、ＭＰＥＧ解凍部４０は、変更になる番組を既に再生しているので、選局部４２は、直ちに変更された番組を出力する。その結果、ユーザは、モニタ２０とスピーカ２２によって、変更した番組を直ちに視聴できる。
【００１９】
以上の構成は、ハードウエア的には、任意のコンピュータのＣＰＵ、メモリ、その他のＬＳＩで実現でき、ソフトウエア的にはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【００２０】
前述のごとく、処理部１６にインストールされているソフトウエアプログラムは、ＢＰＦ３０、復調部３６等の機能を有する。また、処理部１６は、ソフトウエアプログラムを実行するために、複数のプロセッサを備える。複数のプロセッサの詳細は、後述する。簡単に説明すると、複数のプロセッサのそれぞれには、ソフトウエアプログラムにおける機能に含まれた複数の処理の内容のうち、少なくともひとつが割り当てられる。ここで、処理の内容とは、例えば、ＢＰＦ３０における処理、直交検波部３２における処理等に相当する。また、複数のプロセッサは、割り当てられた少なくともひとつの処理の内容を内部のキャッシュに固定的に格納する。例えば、ひとつのプロセッサにＢＰＦ３０の処理が割り当てられる。以下において、処理部１６の詳細を説明する。
【００２１】
図３は、処理部１６の構成を示す。処理部１６は、情報処理コントローラ１０１１、メインメモリ１０２６、サブメモリ１０２７、外部記録部１０３１と総称される第１外部記録部１０３１−１、第２外部記録部１０３１−２を含む。また、情報処理コントローラ１０１１は、メインプロセッサ１０２１、ＤＭＡＣ１０２５、コントロールレジスタ１０２８、ワークメモリ１０２９、ＤＣ１０３０、サブプロセッサ１０２３と総称される第１サブプロセッサ１０２３−１、第２サブプロセッサ１０２３−２、第３サブプロセッサ１０２３−３、バス１０３２を含む。また、メインプロセッサ１０２１は、ＬＳ（ローカルストレージ）１０２２を含み、第１サブプロセッサ１０２３−１は、ＬＳ１０２４−１を含み、第２サブプロセッサ１０２３−２は、ＬＳ１０２４−２を含み、第３サブプロセッサ１０２３−３は、ＬＳ１０２４−３を含む。
【００２２】
メインプロセッサ１０２１は、第１サブプロセッサ１０２３−１、第２サブプロセッサ１０２３−２、第３サブプロセッサ１０２３−３によるサブプロセッサプログラム実行（データ処理）のスケジュール管理と、情報処理コントローラ１０１１の全般的な管理とを行う。ただし、メインプロセッサ１０２１内で管理のためのプログラム以外のプログラムが動作するように構成することもできる。その場合には、メインプロセッサ１０２１はサブプロセッサとしても機能することになる。
【００２３】
サブプロセッサ１０２３は、ひとつでもよいが、望ましくは複数とする。この例は、複数の場合である。第１サブプロセッサ１０２３−１、第２サブプロセッサ１０２３−２、第３サブプロセッサ１０２３−３は、メインプロセッサ１０２１の制御によって並列的かつ独立に、サブプロセッサプログラムを実行し、データを処理する。さらに、場合によってメインプロセッサ１０２１内のプログラムがサブプロセッサ１０２３内のサブプロセッサプログラムと連携して動作するように構成することもできる。後述する機能プログラムもメインプロセッサ１０２１内で動作するプログラムである。
【００２４】
ＤＭＡＣ１０２５は、情報処理コントローラ１０１１に接続されたＤＲＡＭ（ダイナミックＲＡＭ）などからなるメインメモリ１０２６および同様に接続されたＳＲＡＭ（スタティックＲＡＭ）などからなるサブメモリ１０２７に格納されているプログラムおよびデータにアクセスする。ＤＭＡＣ１０２５を介すことにより、各サブプロセッサ１０２３およびメインメモリ１０２６間ではＤＭＡ方式によりデータ転送を行うことができ、高速化を実現できる。コントロールレジスタ１０２８は情報処理コントローラ１０１１内で処理されるべきサブプロセッサプログラムを、どのサブプロセッサ１０２３、さらにはサブプロセッサ１０２３内に複数個存在する後述するプレセッシングスレッドのいずれが処理するかを決定すると共に、サブプロセッサ１０２３によるサブプロセッサプログラム実行の進捗を管理するために使用される。ワークメモリ１０２９は情報処理コントローラ１０１１内に含まれるＳＲＡＭなどからなる作業用メモリであり、メインプロセッサ１０２１およびサブプロセッサ１０２３によってアクセスされる。
【００２５】
ＤＣ１０３０は、情報処理コントローラ１０１１に接続された第１外部記録部１０３１−１、第２外部記録部１０３１−２にアクセスするものである。外部記録部１０３１は、固定ディスク（ハードディスク）でも、リムーバブルディスクでもよく、また、ＭＯ、ＣＤ±ＲＷ、ＤＶＤ±ＲＷなどの光ディスク、メモリディスク、ＳＲＡＭ（スタティックＲＡＭ）、ＲＯＭなど、各種のものを用いることができる。したがって、ＤＣ１０３０は、ディスクコントローラと称するが、外部記録部コントローラである。
【００２６】
図３の例のように、情報処理コントローラ１０１１に対して外部記録部１０３１を複数接続できるように、情報処理コントローラ１０１１を構成することができる。メインプロセッサ１０２１、各サブプロセッサ１０２３、ＤＭＡＣ１０２５、コントロールレジスタ１０２８、ワークメモリ１０２９およびＤＣ１０３０は、バス１０３２によって接続される。メインプロセッサ１０２１および各サブプロセッサ１０２３に対して、それぞれを特定できる識別子が、メインプロセッサＩＤおよびサブプロセッサＩＤとして割り当てられる。情報処理コントローラ１０１１は、ワンチップＩＣ（集積回路）として構成することが望ましい。
【００２７】
ここで、各サブプロセッサ１０２３からメインメモリ１０２６へのアクセスについて、説明する。上述したように、情報処理コントローラ１０１１内の各サブプロセッサ１０２３は、独立にサブプロセッサプログラムを実行し、データを処理するが、異なるサブプロセッサがメインメモリ１０２６内の同一領域に対して同時に読み出しまたは書き込みを行った場合には、データの不整合を生じ得る。そこで、サブプロセッサ１０２３からメインメモリ１０２６へのアクセスは、以下のような手順によって行う。サブメモリ１０２７およびワークメモリ１０２９についても同様に、異なるサブプロセッサ１０２３が同一領域に対してアクセスすることが考えられるが、ここではメインメモリ１０２６について記載する。
【００２８】
図１の処理部１６に含まれるＢＰＦ３０等の処理のそれぞれが、メインプロセッサ１０２１やサブプロセッサ１０２３に固定的に配置される。すなわち、処理部１６に含まれるＢＰＦ３０等の処理を実行するためのプログラムおよびデータのそれぞれが、ＬＳ１０２２、ＬＳ１０２４等に固定的に格納される。
【００２９】
図４（ａ）−（ｃ）は、各サブプロセッサ１０２３からメインメモリ１０２６へのアクセスを説明するための概要を示す。図４（ａ）に示すように、メインメモリ１０２６は、アドレス指定可能な複数のメモリロケーション０〜Ｎによって構成される。各メモリロケーションに対しては、データの状態を示す情報を格納するための追加セグメント０〜Ｎが割り振られる。追加セグメントは、Ｆ／Ｅビット、サブプロセッサＩＤおよびＬＳアドレス（ローカルストレージアドレス）を含むものとされる。また、各メモリロケーションには、後述のアクセスキー０〜Ｎも割り振られる。Ｆ／Ｅビットは、以下のように定義される。
【００３０】
Ｆ／Ｅビット＝０は、サブプロセッサ１０２３によって読み出されている処理中のデータ、または空き状態であるため最新データではない無効データであり、読み出し不可であることを示す。また、Ｆ／Ｅビット＝０は、当該メモリロケーションにデータ書き込み可能であることを示し、書き込み後に１に設定される。Ｆ／Ｅビット＝１は、当該メモリロケーションのデータがサブプロセッサ１０２３によって読み出されておらず、未処理の最新データであることを示す。当該メモリロケーションのデータは読み出し可能であり、サブプロセッサ１０２３によって読み出された後に０に設定される。また、Ｆ／Ｅビット＝１は、当該メモリロケーションがデータ書き込み不可であることを示す。さらに、上記Ｆ／Ｅビット＝０（読み出し不可／書き込み可）の状態において、当該メモリロケーションについて読み出し予約を設定することは可能である。Ｆ／Ｅビット＝０のメモリロケーションに対して読み出し予約を行う場合には、サブプロセッサ１０２３は、読み出し予約を行うメモリロケーションの追加セグメントに、読み出し予約情報として当該サブプロセッサ１０２３のサブプロセッサＩＤおよびＬＳアドレスを書き込む。
【００３１】
その後、データ書き込み側のサブプロセッサ１０２３によって、読み出し予約されたメモリロケーションにデータが書き込まれ、Ｆ／Ｅビット＝１（読み出し可／書き込み不可）に設定されたとき、あらかじめ読み出し予約情報として追加セグメントに書き込まれたサブプロセッサＩＤおよびＬＳアドレスに読み出される。複数のサブプロセッサ１０２３によってデータを多段階に処理する必要がある場合、このように各メモリロケーションのデータの読み出し／書き込みを制御することによって、前段階の処理を行うサブプロセッサ１０２３が、処理済みのデータをメインメモリ１０２６内の所定アドレスに書き込んだ後に即座に、後段階の処理を行う別のサブプロセッサ１０２３が前処理後のデータを読み出すことが可能となる。
【００３２】
図４（ｂ）に示すように、各サブプロセッサ１０２３内のＬＳ１０２４も、アドレス指定可能な複数のメモリロケーション０〜Ｌによって構成される。各メモリロケーションに対しては、同様に追加セグメント０〜Ｌが割り振られる。追加セグメントは、ビジービットを含むものとされる。サブプロセッサ１０２３がメインメモリ１０２６内のデータを自分のＬＳ１０２４のメモリロケーションに読み出すときは、読み出し先のメモリロケーションに対応するビジービットを１に設定して予約する。ビジービットが１であるメモリロケーションには、他のデータは格納することができない。ＬＳ１０２４のメモリロケーションに読み出し後、ビジービットは０になり、任意の目的に使用できるようになる。
【００３３】
図４（ａ）に示すように、さらに、各情報処理コントローラと接続されたメインメモリ１０２６には、複数のサンドボックスが含まれる。サンドボックスは、メインメモリ１０２６内の領域を画定するものであり、各サンドボックスは、各サブプロセッサ１０２３に割り当てられ、当該サブプロセッサが排他的に使用できる。すなわち、各々のサブプロセッサ１０２３は、自分に割り当てられたサンドボックスを使用できるが、この領域を超えてデータのアクセスを行うことはできない。メインメモリ１０２６は、複数のメモリロケーション０〜Ｎから構成されるが、サンドボックスは、これらのメモリロケーションの集合である。すなわちひとつのサンドボックスは、ひとつまたは複数のメモリロケーションから構成される。
【００３４】
さらに、メインメモリ１０２６の排他的な制御を実現するために、図４（ｃ）に示すようなキー管理テーブルが用いられる。キー管理テーブルは、情報処理コントローラ１０１１内のＳＲＡＭのような比較的高速のメモリに格納され、ＤＭＡＣ１０２５と関連付けられる。ワークメモリ１０２９に格納されてもよい。キー管理テーブル内には、情報処理コントローラ１０１１内のサブプロセッサ１０２３の数と同数のエントリが存在し、各エントリにはサブプロセッサＩＤおよび、それに対応するサブプロセッサキーおよびキーマスクが関連付けられて格納されている。サブプロセッサ１０２３がメインメモリ１０２６を使用する際のプロセスは、以下のとおりである。まず、サブプロセッサ１０２３はＤＭＡＣ１０２５に、読み出しまたは書き込みのコマンドを送信する。このコマンドには、自分のサブプロセッサＩＤと、アクセス要求先であるメインメモリ１０２６内のアドレスが含まれる。
【００３５】
ＤＭＡＣ１０２５は、このコマンドを実行する前に、キー管理テーブルを参照して、アクセス要求元のサブプロセッサ１０２３のサブプロセッサキーを調べる。次に、ＤＭＡＣ１０２５は、調べたアクセス要求元のサブプロセッサキーと、アクセス要求先であるメインメモリ１０２６内の図４（ａ）に示したメモリロケーションに割り振られたアクセスキーとを比較して、ふたつのキーが一致した場合にのみ、上記のコマンドを実行する。
【００３６】
図４（ｃ）に示したキー管理テーブル上のキーマスクは、その任意のビットが１になることによって、そのキーマスクに関連付けられたサブプロセッサキーの対応するビットが０または１になることができる。例えば、サブプロセッサキーが１０１０であるとする。通常、このサブプロセッサキーによって１０１０のアクセスキーを持つサンドボックスへのアクセスだけが可能である。しかし、このサブプロセッサキーと関連付けられたキーマスクが０００１に設定されている場合には、キーマスクのビットが１に設定された桁のみにつき、サブプロセッサキーとアクセスキーとの一致判定がマスクされ、このサブプロセッサキーの１０１０によってアクセスキーが１０１０または１０１１のいずれかであるアクセスキーを持つサンドボックスへのアクセスが可能となる。
【００３７】
以上のようにして、メインメモリ１０２６のサンドボックスの排他性が実現される。すなわち、情報処理コントローラ１０１１内の複数のサブプロセッサ１０２３によってデータを多段階に処理する必要がある場合、以上のように構成することによって、前段階の処理を行うサブプロセッサ１０２３と、後段階の処理を行うサブプロセッサ１０２３のみが、メインメモリ１０２６内の所定アドレスにアクセスできるようになり、データを保護することができる。例えば、以下のように使用することが考えられる。まず、処理部１６の起動直後においては、キーマスクの値はすべてゼロである。
【００３８】
メインプロセッサ１０２１内のプログラムが実行され、サブプロセッサ１０２３内のサブプロセッサプログラムと連携動作するものとする。第１サブプロセッサ１０２３−１により実行された処理結果データを一旦メインメモリ１０２６に格納し、第２サブプロセッサ１０２３−２に送信したいときには、該当するメインメモリ領域は、当然どちらのサブプロセッサ１０２３からもアクセス可能である必要がある。そのような場合に、メインプロセッサ１０２１内のプログラムは、キーマスクの値を適切に変更し、複数のサブプロセッサからアクセスできるメインメモリ領域を設けることにより、サブプロセッサ１０２３による多段階的の処理を可能にする。
【００３９】
次に、各サブプロセッサ１０２３からメインメモリ１０２６、サブメモリ１０２７へのアクセスを説明する。情報処理コントローラ１０１１内の各サブプロセッサ１０２３は、メインメモリ１０２６に対してと同様に、サブメモリ１０２７に対しても読み出しまたは書き込みが可能であるが、コマンドにはいくつかの種類が考えられ、優先度の高低があることもあり得る。そこで、各サブプロセッサ１０２３が正確にメインメモリ１０２６およびサブメモリ１０２７を使用するための手順を以下に記載する。
【００４０】
図５は、ＤＭＡＣ１０２５、メインメモリ１０２６、サブメモリ１０２７の構成を示す。ＤＭＡＣ１０２５は、メインメモリコントロールレジスタ１０３３、サブメモリコントロールレジスタ１０３４、メインプロセッサ用リードコマンドブロック１０３５、メインプロセッサ用ライトコマンドブロック１０３６、アドレス変換レジスタ１０３７を含む。
【００４１】
ＤＭＡＣ１０２５は、内部にメインメモリコントロールレジスタ１０３３とサブメモリコントロールレジスタ１０３４を有する。メインメモリコントロールレジスタ１０３３は、メインメモリ１０２６にアクセスするために使用されるレジスタであり、サブメモリコントロールレジスタ１０３４は、サブメモリ１０２７にアクセスするためのものである。まず、メインメモリコントロールレジスタ１０３３の使用手順について記す。メインメモリコントロールレジスタ１０３３は４つのブロックから構成され、各々が以下のようにメインメモリ１０２６へアクセスするコマンドを格納する。
【００４２】
（１）優先コマンドブロック：優先度の高いコマンドを複数個格納する。当該ブロック内のコマンドは優先的に処理される。
（２）通常コマンドブロック１：通常のコマンドを複数個格納する。
（３）通常コマンドブロック２：同様に通常のコマンドを複数個格納する。通常コマンドブロック１と２には機能的な差はない。しかしながら例えば、メインメモリ１０２６へのアクセス実行前のコマンドを一方のブロックに格納し、実行後のコマンドをもう一方に格納することにより、実行前と実行後のコマンドを各々、集中的および連続的に処理できるという効果を得ることができる。
（４）オーダーコマンドブロック：正しい順番で処理される必要のあるコマンドを複数個格納する。つまり、各サブプロセッサ１０２３からのコマンドを、受信した順番にコマンド送信元であるサブプロセッサ識別子と共に格納する。これにより、受信した順番にコマンドを処理し、かつ同じ順番でコマンド送信元のサブプロセッサ１０２３へ実行結果を返信することができる。
【００４３】
次にサブメモリコントロールレジスタ１０３４の使用手順について記す。サブメモリコントロールレジスタ１０３４も４つのブロックから構成され、各々が以下のようにサブメモリ１０２７へアクセスするコマンドを格納する。
【００４４】
（１）優先コマンドブロック：優先度の高いコマンドを複数個格納する。当該ブロック内のコマンドは優先的に処理される。
（２）リードコマンドブロック：リードコマンドを複数個格納する。
（３）ライトコマンドブロック：ライトコマンドを複数個格納する。
（４）待ちコマンドブロック：サブメモリ１０２７内の任意の領域に対してアクセスを試みたが、対象領域がロックされており不可であったコマンドを複数個格納する。ロック解除時には優先コマンドブロックへ移動する。
【００４５】
そして、各サブプロセッサ１０２３は例えば、図６に示されるコマンドによってメインメモリ１０２６またはサブメモリ１０２７へアクセスする。図６は、コマンドのデータ構造を示す。アクセス実行後のメインメモリ１０２６またはサブメモリ１０２７からの実行結果のレスポンスも同一構造である。当該コマンド／レスポンスにおいて、コマンドタイプはリードとライトがある。優先コマンド識別子は、当該コマンドは優先度が高いことを示す。通常コマンド識別子はメインメモリ１０２６へのアクセス時のものであり、当該コマンドが通常コマンドブロック１または２に格納されることを示す。チェーンコマンド識別子もメインメモリ１０２６へのアクセス時のものであり、当該コマンドが直前または直後のコマンドと共に連続的なアクセスが必要であることを示す。または連続するコマンド列の通し番号でもよい。
【００４６】
チェーンコマンド識別子がセットされたコマンドはオーダーコマンドブロックに格納されるが、処理の優先度は優先コマンドブロック内のコマンドよりも高いものとする。アドレスは、コマンドを実行するメインメモリ１０２６またはサブアドレス内のアドレスを示す。また、ワークメモリ１０２９内のアドレスでもよい。サブプロセッサ識別子はコマンド送信元であるサブプロセッサ１０２３の識別子である。プレセッシングスレッド子識別子はコマンド送信元であるプレセッシングスレッド識別子の識別子であり、詳細は後述する。ＯＫ／ＮＧはコマンドの成功／失敗を示す。データは、リードコマンド実行時にレスポンスに含まれる読み出されたデータか、またはライトコマンド実行時にコマンドに含まれる書き込まれるデータである。
【００４７】
図５に戻る。各サブプロセッサ１０２３がメインメモリ１０２６に正確にアクセスするためのメインメモリコントロールレジスタ１０３３、同様にサブメモリ１０２７に正確にアクセスするためのサブメモリコントロールレジスタ１０３４の他に、メインプロセッサ１０２１がメインメモリ１０２６またはサブメモリ１０２７にアクセスするためのリードコマンドおよびライトコマンドを各々、複数個格納できる、メインプロセッサ用リードコマンドブロック１０３５およびメインプロセッサ用ライトコマンドブロック１０３６を情報処理コントローラ１０１１内に設けることも考えられる。
【００４８】
さらに、複数のサブプロセッサがＤＭＡＣ１０２５に対して、優先度の同じコマンドを同じタイミングで送信した場合には、以下の手順に従うものとする。すなわちＤＭＡＣ１０２５は内部に、メモリアクセスに成功した最後のサブプロセッサ１０２３を示すポインタを有する。そして、複数のサブプロセッサ１０２３から優先度の同じメモリアクセスのコマンドを、同じタイミングで受信したときは、当該ポインタより値が大きく、かつ差分の少ないサブプロセッサ１０２３からのコマンドを優先させるものとする。この際、一番大きいポインタ値の次は、一番小さいポインタ値とする。
【００４９】
次に、各サブプロセッサ１０２３からメインメモリ１０２６に正確にアクセスするためのサブメモリ１０２７へのアクセスについて説明する。ＤＲＡＭ等により構成されるメインメモリ１０２６および、ＳＲＡＭ等により構成されるサブメモリ１０２７は当然のことながら、各々の素子の構造が異なるため使用目的も異なってくる。メインメモリ１０２６とサブメモリ１０２７を組み合わせた使用方法の一例として、各サブプロセッサ１０２３がメインメモリ１０２６にアクセスするときのアドレス変換を、サブメモリ１０２７が担うことが考えられる。そのための手順を図７（ａ）−（ｂ）を用いて記載する。図７（ａ）−（ｂ）は、ＤＭＡＣ１０２５、メインメモリ１０２６、サブメモリ１０２７の別の構成を示す。
【００５０】
前述の通り、メインメモリ１０２６は複数のメモリロケーションによって構成され、さらに、ひとつのサンドボックスはひとつまたは複数のメモリロケーションから構成される。そして、各サブプロセッサ１０２３は自分に割り当てられたサンドボックスを排他的に使用できる。ここで例えば情報処理コントローラ１０１１内のあるサブプロセッサ１０２３に、メインメモリ１０２６内のサンドボックス１、２、３が割り当てられているものとする。サンドボックス１、２、３の領域は各々０ｘ２００〜０ｘ２ＦＦ、０ｘ８００〜０ｘ８ＦＦ、０ｘＦ００〜０ｘＦＦＦとし、各サンドボックスは先頭アドレスによって識別されるものとする。すなわち割り当てられた各サンドボックスはアドレスが連続していなくても構わない。
【００５１】
図７（ａ）においてサブプロセッサ１０２３は、サンドボックス１、２、３からデータを読み出すときに、まず、ＤＭＡＣ１０２５内のアドレス変換レジスタ１０３７にアクセスする。アドレス変換レジスタ１０３７はサブプロセッサ１０２３と、当該サブプロセッサ１０２３に割り当てられたサンドボックスとを関連付けたレジスタであり、サブプロセッサ１０２３の数と同数のエントリから構成される。ここではＱ１で示されるエントリが、当該サブプロセッサ１０２３に対応するものとする。サブプロセッサ１０２３は、自分と対応するＱ１の値を読み出す。さらに、読み出したＱ１の値（０ｘ８０）で示されるサブメモリ１０２７内の第１のアドレスからデータ（０ｘ２０）を読み出す。ここで、サンドボックス１の領域はＱ１の値に基づいて特定できる。例えばＱ１の値が０ｘ８０であるとき、当該値を１６倍した数値（０ｘ８００）がサンドボックス１の先頭アドレスを示すようにすることが考えられる。そして当該先頭アドレスに２５５を加算した値（０ｘ８ＦＦ）が終了アドレスとなる。
【００５２】
サブメモリ１０２７内の第１のアドレスからデータ（０ｘ２０）で示される、同じサブメモリ１０２７内の第２のアドレスからデータ（０ｘＦ０）を読み出す。ここで同様にサンドボックス２は、サブメモリ１０２７内の第１のアドレスから読み出したデータ（０ｘ２０）に基づいて特定できる。すなわち、メインメモリ１０２６内の０ｘ２００〜０ｘ２ＦＦの領域がサンドボックス２である。サブメモリ１０２７内の第２のアドレスから読み出したデータ（０ｘＦ０）で示される、同じサブメモリ１０２７内の第３のアドレスからデータ（０ｘ００）を読み出す。０ｘ００は割り当てられたサンドボックスの終了を示す。また同様にサンドボックス３は、サブメモリ１０２７内の第２のアドレスから読み出したデータ（０ｘＦ０）に基づいて特定できる。すなわち、メインメモリ１０２６内の０ｘＦ００〜０ｘＦＦＦの領域がサンドボックス３である。以上のようにして特定されたサンドボックス１、２、３からデータを読み出すことができる。このようにして各サブプロセッサ１０２３は、自分に割り当てられたサンドボックスのアドレスが非連続な場合でも、正確にアクセスできる。
【００５３】
次に、同じサブプロセッサ１０２３がメインメモリ１０２６内の新たなサンドボックスにデータを書き込み、当該サンドボックスをアドレス変換レジスタ１０３７内のＱ１で管理されるサンドボックスのグループに追加するための手順を図７（ｂ）を用いて記載する。当該サブプロセッサ１０２３は、メインメモリ１０２６内の０ｘ０００〜０ｘ０ＦＦの領域であるサンドボックス４にデータを書き込んだとする。まず、Ｑ１の値を読み出す（初期は０ｘ８０）。そして、新たにデータを書き込んだサンドボックス４を特定できる、サブメモリ１０２７内のアドレスに、先に読み出したＱ１の値（０ｘ８０）を書き込む。例えば今回は０ｘ０００〜０ｘ０ＦＦの領域にデータを書き込んだので、先頭アドレスである０ｘ０００を１６で割った０ｘ００で示されるサブメモリ１０２７内のアドレスにＱ１の値（０ｘ８０）を書き込むことが考えられる。さらに、Ｑ１の値（０ｘ８０）を書き込んだサブメモリ１０２７内のアドレス（０ｘ００）を新たなＱ１の値として、アドレス変換レジスタ１０３７内のＱ１に書き込む。
【００５４】
以上のようにして各サブプロセッサ１０２３は、新たなサンドボックスを既存のサンドボックスのグループに追加できる。この場合も、各サンドボックスのアドレスが非連続であっても構わない。また既存のサンドボックスのグループが存在せず、最初のサンドボックスをサブメモリ１０２７およびアドレス変換レジスタ１０３７と関連付ける際にも上記の方法は適用できる。
【００５５】
次に、メインプロセッサ１０２１および各サブプロセッサ１０２３からワークメモリ１０２９へのアクセスを説明する。メインメモリ１０２６は前述の通り、ＤＲＡＭ等により構成され、さらにＤＭＡ方式によりデータデータ通信が行われるため、各サブプロセッサは大容量のメインメモリ１０２６を高速に使用できる。またサブメモリ１０２７はＳＲＡＭ等により構成され、こちらも高速に使用できる。ここで、メインプロセッサ１０２１および各サブプロセッサ１０２３が、情報処理コントローラ１０１１に接続されたメインメモリ１０２６およびサブメモリ１０２７と共に、情報処理コントローラ１０１１内に含まれるワークメモリ１０２９を作業用メモリとして共有して使用できれば、さらなる高速化が実現できる。また、当該ワークメモリ１０２９により簡単な数値演算ができれば効率的である。ワークメモリ１０２９は上述の通り、ＳＲＡＭ等により構成されるため素子の構造上、ＤＲＡＭのような大容量化は期待できないものの、非常に高速である。
【００５６】
以下に、メインプロセッサ１０２１および各サブプロセッサ１０２３がワークメモリ１０２９へアクセスする場合の手順を記す。図８は、ワークメモリ１０２９の構成を示す。ワークメモリ１０２９はコントローラ１０３８とＲＡＭ１０３９とを含む。ＲＡＭ１０３９はＳＲＡＭ等が考えられるが、それに限定されるわけではない。また、ＲＡＭ１０３９は複数のブロックから構成される。各ブロックにはアドレスが割り当てられ、データを記憶できる。メインプロセッサ１０２１および各サブプロセッサ１０２３はコントローラ１０３８を介して、ＲＡＭ１０３９へアクセスする。
【００５７】
具体的にはメインプロセッサ１０２１および各サブプロセッサ１０２３は、コントローラ１０３８へコマンド、アドレスまたはデータ等を送信し、コントローラ１０３８はそれらに沿ってＲＡＭ１０３９へアクセスする。処理実行後にコントローラ１０３８は、コマンド送信元であるメインプロセッサ１０２１またはサブプロセッサ１０２３へコマンド実行結果を返信するという手順が踏まれる。各サブプロセッサ１０２３がワークメモリ１０２９へアクセスするときのコマンドは例えば、図６に示され、メインメモリ１０２６またはサブメモリ１０２７へのアクセス時に用いるものと同様である。処理実行後のワークメモリ１０２９からの実行結果のレスポンスも同一構造である。
【００５８】
だたし、ワークメモリ１０２９へアクセスする場合は、図６に示されるコマンドにおいて優先コマンド識別子、通常コマンド識別子、チェーンコマンド識別子、プレセッシングスレッド識別子は基本的には使用しない。しかしながらワークメモリ１０２９が、これらの識別子に対応可能であれば使用してもよい。コマンドタイプしてはいくつか考えられる。
（ａ）リード
ワークメモリ１０２９内のデータを読み出すために使用される。メインプロセッサ１０２１および各サブプロセッサ１０２３はリードコマンドと共に所望のデータを記憶するＲＡＭ内のブロックのアドレスも送信する。実行結果として、リードコマンドの成功／失敗を示すＯＫ／ＮＧと読み出されたデータが返信される。
【００５９】
（ｂ）ライト
ワークメモリ１０２９内にデータを書き込むために使用される。メインプロセッサ１０２１および各サブプロセッサ１０２３はライトコマンド、データ、当該データを記憶させるＲＡＭ内のブロックのアドレスを送信する。実行結果として、ライトコマンドの成功／失敗を示すＯＫ／ＮＧが返信される。
（ｃ）加算
ワークメモリ１０２９内のデータを加算するために使用される。メインプロセッサ１０２１および各サブプロセッサ１０２３は加算コマンド、加算させるデータを記憶するＲＡＭ内のブロックのアドレスを送信する。コントローラは受信したアドレスのブロックにおけるデータに１を加算し、上書きする。実行結果として、加算コマンドの成功／失敗を示すＯＫ／ＮＧが返信される。
【００６０】
（ｄ）セット
ワークメモリ１０２９のデータをビット単位で操作するために使用される。メインプロセッサ１０２１および各サブプロセッサ１０２３はセットコマンド、操作するデータを記憶するＲＡＭ内のブロックのアドレス、マスクデータを送信する。コントローラは受信したマスクデータと、同様に受信したアドレスのブロックにおけるデータを比較する。マスクデータにおいて値が１であるビットと同じ位置の、データにおけるビットの値を１にする。実行結果として、セットコマンドの完了を示すＣｏｍｐｌｅｔｅｄが返信される。また、このときセットコマンド実行前のデータも返信することにより、コマンドの成功／失敗を確認できるようにしてもよい。
【００６１】
（ｅ）クリア
ワークメモリ１０２９のデータをビット単位で操作するために使用される。メインプロセッサ１０２１および各サブプロセッサ１０２３はクリアコマンド、操作するデータを記憶するＲＡＭ内のブロックのアドレス、マスクデータを送信する。コントローラは受信したマスクデータと、同様に受信したアドレスのブロックにおけるデータを比較する。マスクデータにおいて値が１であるビットと同じ位置の、データにおけるビットの値を０にする。実行結果として、クリアコマンドの完了を示すＣｏｍｐｌｅｔｅｄが返信される。また、このときクリアコマンド実行前のデータも返信することにより、コマンドの成功／失敗を確認できるようにしてもよい。
【００６２】
以上のようにメインプロセッサ１０２１および各サブプロセッサ１０２３は、大容量のメインメモリ１０２６および高速なサブメモリ１０２７に加えて、ワークメモリ１０２９も併用できる。例えば、ワークメモリ１０２９をメインメモリ１０２６またはサブメモリ１０２７のキャッシュとして利用すればさらなる高速化が期待できる。
【００６３】
次に、各サブプロセッサ１０２３内のプレセッシングスレッドについて説明する。前述した通り、情報処理コントローラ１０１１内の各サブプロセッサ１０２３は構造上、独立している。従って各々が、独立にサブプロセッサプログラムを実行し、データを処理できる。さらに各サブプロセッサ１０２３が内部に、仮想的に独立した複数のプレセッシングスレッドを有することも考えられる。図９は、サブプロセッサ１０２３の構成を示す。サブプロセッサ１０２３は内部に有するアービタ１０４０を介してバス１０３２と接続される。アービタ１０４０は外部からの信号を、適切なプレセッシングスレッドに通知する役割を担う。サブプロセッサ１０２３内にはまた、ＬＳ１０２４とプレセッシングスレッド０、１、２、３（各々１０４１、１０４２、１０４３、１０４４）が含まれる。図９において、各プレセッシングスレッドは独立して図示されているが、あくまでも仮想的な独立である。プレセッシングスレッドは各々、プレセッシングスレッド識別子が割り当てられ、独立かつ並列に動作可能である。
【００６４】
ここで各プレセッシングスレッドは、メインメモリ１０２６、サブメモリ１０２７またはワークメモリ１０２９に対して独立してアクセスを行うため、コマンド送信元であるプレセッシングスレッドへ確実に、レスポンスが返信されるようにする必要がある。そのための手順を以下に記す。各プレセッシングスレッドが各々のメモリへアクセスするときのコマンドは例えば図６に示され、つまり各サブプロセッサ１０２３がメモリアクセス時に用いるものと同様である。処理実行後の各メモリからの実行結果のレスポンスも同一構造である。図６についての説明は先に述べた通りであるが、サブプロセッサ識別子はコマンド送信元であるサブプロセッサ１０２３の識別子である一方、プレセッシングスレッド識別子はさらに、当該サブプロセッサ１０２３内のいずれのプレセッシングスレッドがコマンド送信元であるかを識別するためのものである。
【００６５】
メインメモリ１０２６、サブメモリ１０２７またはワークメモリ１０２９からのレスポンスはまずサブプロセッサ識別子に基づき、コマンド送信元であるサブプロセッサ１０２３へ返信される。さらに、サブプロセッサ１０２３内のアービタ１０４０によりプレセッシングスレッド識別子に基づき、コマンド元であるプレセッシングスレッドへ返信される。ここで、サブプロセッサ１０２３内の複数のプレセッシングスレッドのいずれでも構わない場合、例えば同じ処理を行うようなときにはプレセッシングスレッド識別子に基づかず、処理負荷の軽いプレセッシングスレッドへ返信するようにしてもよい。またはメインメモリ１０２６、サブメモリ１０２７またはワークメモリ１０２９からレスポンスを受信する度に、複数あるプレセッシングスレッドのいずれかひとつを順繰りに選択し、選択されたプレセッシングスレッドへ当該レスポンスを返信するようにしてもよい。以上のようにして、各サブプロセッサ１０２３内の複数のプレセッシングスレッドが、メインメモリ１０２６、サブメモリ１０２７またはワークメモリ１０２９に対して独立してアクセスを行ったとしても、コマンド送信元であるプレセッシングスレッドへ確実に、レスポンスが返信されるようにすることができる。
【００６６】
次に、コントロールレジスタ１０２８によるサブプロセッサプログラム管理について説明する。情報処理コントローラ１０１１内に複数のサブプロセッサ１０２３が存在し、各サブプロセッサ１０２３内はさらに複数のプレセッシングスレッドを有する状態において、情報処理コントローラ１０１１内で処理されるべきサブプロセッサプログラムを、どのプレセッシングスレッドに処理させるかを決定することは、情報処理コントローラの高速化を実現する上で非常に重要である。そこでコントロールレジスタ１０２８を使用することにより、各プレセッシングスレッドに対する適切なサブプロセッサプログラム処理の割り当てを実現し、情報処理コントローラを効率的に動作させる手順を以下に記す。図１０はコントロールレジスタ１０２８の構成を示す。図示されている通り、コントロールレジスタ１０２８は処理待ちサブプロセッサプログラムレジスタ１０４５とサブプロセッサプログラム処理進捗レジスタ１０４６を含む。
【００６７】
まず、処理待ちサブプロセッサプログラムレジスタ１０４５の使用手順について記載する。メインプロセッサ１０２１は、情報処理コントローラ１０１１内で処理されるべきサブプロセッサプログラムが発生した場合には、処理待ちサブプロセッサプログラムレジスタ１０４５内に、当該サブプロセッサプログラムまたは関連データが格納されているメインメモリ１０２６、サブメモリ１０２７、ワークメモリ１０２９またはＬＳにおけるアドレスを書き込む。処理されるべきサブプロセッサプログラムが存在しない状態においては、処理待ちサブプロセッサプログラムレジスタ１０４５の値はゼロである。すべてのプレセッシングスレッドは、自分が何もサブプロセッサプログラムを実行していない間は、定期的または非定期的に処理待ちサブプロセッサプログラムレジスタ１０４５の値を読み出し、その結果、ゼロでない値を読み出したプレセッシングスレッドが処理を行うものとする。
【００６８】
それと共に当該プレセッシングスレッドは、処理待ちサブプロセッサプログラムレジスタ１０４５にゼロの値を書き込む。処理を行うプレセッシングスレッドは、読み出した処理待ちサブプロセッサプログラムレジスタ１０４５の値に基づき、処理対象となるサブプロセッサプログラムまたは関連データを読み出し、実行する。このときサブプロセッサプログラムは既に当該プレセッシングスレッドを有するサブプロセッサ１０２３に読み出されており、サブプロセッサプログラムの読み出しは不要であることも考えられる。このようにして、サブプロセッサプログラムを実行していない、処理能力に余裕のあるプレセッシングスレッドに迅速にサブプロセッサプログラムを割り当てることができ、情報処理コントローラを効率的に動作させることができる。
【００６９】
次に、サブプロセッサプログラム処理進捗レジスタ１０４６の使用手順について記載する。サブプロセッサプログラム処理進捗レジスタ１０４６はサブプロセッサプログラム処理を割り当てられたプレセッシングスレッドが、処理進捗状況を書き込むための２ビット（ｘ、ｙ）のレジスタである。例えば（０、０）は未処理であり、（０、１）は処理中（段階１）であり、（１、０）は処理中（段階２）であり、（１、１）は処理完了を示す。さらに２ビットと共に、プロセッシングスレッド識別子を書き込むことにより処理を割り当てられたプレセッシングスレッドを示すようにしてもよい。または、情報処理コントローラ１０１１内の各プロセッシングスレッド毎に、サブプロセッサプログラムの処理進捗状況を書き込むためのレジスタを設けてもよい。
【００７０】
サブプロセッサプログラム処理進捗レジスタ１０４６は、情報処理コントローラ１０１１内のメインプロセッサ１０２１、すべてのサブプロセッサ１０２３およびすべてのプレセッシングスレッドがアクセス可能であり、サブプロセッサプログラムの処理進捗状況を的確に把握できる。さらに、各プロセッシングスレッド毎に処理進捗状況レジスタを設けた場合には、複数のサブプロセッサプログラムが同時に実行されている間も進捗把握が可能である。以上が、各サブプロセッサ１０２３が内部に、仮想的に独立した複数のプレセッシングスレッドを有している場合のプレセッシングスレッド管理方法の例である。なお、以降の説明においては、サブプロセッサ１０２３が何らかの処理を行う場合には、当該サブプロセッサ１０２３内部のいずれのプレセッシングスレッドが処理を行っても構わないものとし、プレセッシングスレッドの違いによる実行結果の差異は生じないものとする。従って、サブプロセッサの処理内容について、内部に有する複数のプレセッシングスレッドがどの様に処理を分担するかという詳細については言及しないものとする。
【００７１】
以上の構成による受信装置１００の動作を説明する。ＲＦ部１２は、アンテナ１０を介して、無線周波数の信号を受信する。ＲＦ部１２は、無線周波数の信号の帯域を維持するように、無線周波数の信号を中間周波数の信号に変換する。ＡＤ部１４は、中間周波数の信号をデジタル信号に変換する。処理部１６は、デジタル信号に含まれた複数のチャネルのそれぞれを単位にして、チャネルに対する処理を実行する。また、処理部１６は、複数のプロセッサによって構成される。その際、チャネルに対する処理は、ＢＰＦ３０、直交検波部３２、ＦＦＴ部３４、復調部３６、復号部３８、ＭＰＥＧ解凍部４０等によって構成され、それぞれが所定のプロセッサに割り当てられる。なお、そのときの割り当ては、固定的になされる。
【００７２】
本発明の実施例によれば、無線周波数の信号をそのままデジタル信号に変換し、変換したデジタル信号をチャネル単位に分離してから、分離したそれぞれのチャネルを処理するので、複数のチャネルに対する処理を並行に実行できる。また、複数のチャネルのそれぞれに対する処理をソフトウエアプログラムによって実現するので、処理の内容を容易に変更できる。また、複数のチャネルに対する処理に相当するソフトウエアプログラムを複数のプロセッサによって実行するので、処理を高速化できる。また、ソフトウエアプログラムに含まれる複数の処理と、複数のプロセッサとを固定的に対応づけるので、それぞれのプロセッサは、対応すべき処理をキャッシュに格納できる。また、キャッシュに格納できるので、処理を高速にできる。また、複数のチャネルに対する処理を並列に実行するので、チャネルを変更したときであっても、小さい遅滞にて変更したチャネルを出力できる。
【００７３】
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００７４】
本実施例において、処理部１６は、選局部４２によって、複数のチャネルのうちのひとつを選択し、選択したチャネルを出力する。しかしながらこれに限らず例えば、処理部１６は、複数のチャネルを並列に出力してもよい。複数のチャネルを並列に出力する場合の実装例として、モニタ２０およびスピーカ２２の組み合わせが複数個あることが考えられる。すなわち、処理部１６によって出力された別々の番組が、各モニタおよびスピーカに出力されることになる。この時、映像出力部４４および音声出力部４６の組み合わせも複数個必要になる。本変形例によれば、ＲＦ部１２がひとつであっても、複数の番組を同時に再生できる。
【００７５】
ここで、操作部１８および選局部４２によって任意のチャネルを選択する際の画面表示について述べる。モニタ２０およびスピーカ２２には、常に１つの番組のみがフルサイズで出力されるだけでなく、番組選択時には例えば図１１、図１２に示すように、複数の番組のサムネイル映像がマルチ表示されることが考えられる。図１１、図１２内のｃｈ１、２・・・Ｎは各々、各チャンネルのサムネイル映像である。これによりユーザは、見たい番組を視覚的に即座に選ぶことができる。このマルチ表示を実現するためには、選局部４２が映像のサイズ縮小機能および、複数の縮小された映像のレイアウト機能を有している必要がある。
【００７６】
さらに、ユーザにとって操作し易い画面表示として図１３に示すものが考えられる。図１３においては、複数のサムネイル映像が十字型に表示されている。横軸は映像のソース元であるメディアを示し、縦軸はそのメディアをソース元とする映像のサムネイル映像である。ユーザは例えば操作部１８の十字キーを用いてサムネイル映像を選択する。図１３においては現在テレビの３チャンネルが選択されているが、十字キーの左右キーを押すことにより各々、ＨＤ（ＨａｒｄＤｉｓｋ）、ＤＶＤをソース元のメディアとして選択できる。ＨＤ、ＤＶＤは各々、第１外部記録部１０３１−１、第２外部記録部１０３１−２に対応する。メディア選択後に十字キーの上下キーを押すことにより任意のサムネイル映像を選択し、決定キーにより決定する。図１３においては３チャンネルが選択されているが、十字キーの上下キーを用いて他チャンネルも選択できる。ユーザにより選択、決定されたサムネイル映像はフルサイズで表示されることになる。このようにしてユーザは、様々なメディア上の所望の映像コンテンツに対して即座・簡単にアクセスできる。
【００７７】
また、処理部１６は、ＭＰＥＧ解凍部４０に入力する前の信号を第１外部記録部１０３１−１、第２外部記録部１０３１−２に並列に記録してもよい。図３においては外部記録部１０３１は２つであるが、第３、第４以降の外部記録部を備えることにより、さらに多くの信号を並列記録できる。また、１つの外部記録部に複数の信号を並列記録可能であれば、限られた数の外部記録部にその数倍の数の番組を同時録画できる。本変形例によれば、ＲＦ部１２がひとつであっても、複数の番組を同時に録画できる。つまり、複数のチャネルに対するソフトウエアプログラムの処理がなされればよい。
【図面の簡単な説明】
【００７８】
【図１】本発明の実施例に係る受信装置の構成を示す図である。
【図２】図２（ａ）−（ｂ）は、図１の受信装置において処理される信号のスペクトルを示す図である。
【図３】図１の処理部の構成を示す図である。
【図４】図４（ａ）−（ｃ）は、図３の各サブプロセッサからメインメモリへのアクセスを説明するための概要を示す図である。
【図５】図３のＤＭＡＣ、メインメモリ、サブメモリの構成を示す図である。
【図６】図５の構成おけるコマンドのデータ構造を示す図である。
【図７】図７（ａ）−（ｂ）は、ＤＭＡＣ、メインメモリ、サブメモリの別の構成を示す図である。
【図８】図３のワークメモリの構成を示す図である。
【図９】図３のサブプロセッサの構成を示す図である。
【図１０】図３のコントロールレジスタの構成を示す図である。
【図１１】図１のモニタにおける番組選択時の画面表示例その１を示す図である。
【図１２】図１のモニタにおける番組選択時の画面表示例その２を示す図である。
【図１３】図１のモニタにおける番組選択時の画面表示例その３を示す図である。
【符号の説明】
【００７９】
１０  アンテナ、  １２  ＲＦ部、  １４  ＡＤ部、  １６  処理部、  １８  操作部、  ２０  モニタ、  ２２  スピーカ、  ３０  ＢＰＦ、  ３２  直交検波部、  ３４  ＦＦＴ部、  ３６  復調部、  ３８  復号部、  ４０  ＭＰＥＧ解凍部、  ４２  選局部、  ４４  映像出力部、  ４６  音声出力部、  １００  受信装置。
【図１】
2006319763.tif 000003
【図２】
2006319763.tif 000004
【図３】
2006319763.tif 000005
【図４】
2006319763.tif 000006
【図５】
2006319763.tif 000007
【図６】
2006319763.tif 000008
【図７】
2006319763.tif 000009
【図８】
2006319763.tif 000010
【図９】
2006319763.tif 000011
【図１０】
2006319763.tif 000012
【図１１】
2006319763.tif 000013
【図１２】
2006319763.tif 000014
【図１３】
2006319763.tif 000015