受信方法および装置
【課題】 複数のチャネルに対する処理を同時に実行したい。
【解決手段】 RF部12では、複数のチャネルが周波数多重された無線周波数の信号を受信する。AD部14は、デジタル信号への変換を実行する。処理部16は、AD部14によって変換されたデジタル信号に含まれた複数のチャネルのそれぞれを処理する。ここで、処理部16には、周波数多重された複数のチャネルのそれぞれに対応した帯域を有しつつ、デジタル信号を複数のチャネルに分離するBPF30と、BPF30によって分離された複数のチャネルのそれぞれを復調する復調部36とが少なくとも含まれる。
【解決手段】 RF部12では、複数のチャネルが周波数多重された無線周波数の信号を受信する。AD部14は、デジタル信号への変換を実行する。処理部16は、AD部14によって変換されたデジタル信号に含まれた複数のチャネルのそれぞれを処理する。ここで、処理部16には、周波数多重された複数のチャネルのそれぞれに対応した帯域を有しつつ、デジタル信号を複数のチャネルに分離するBPF30と、BPF30によって分離された複数のチャネルのそれぞれを復調する復調部36とが少なくとも含まれる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、受信技術に関し、特に周波数多重された信号を受信する受信方法および装置に関する。
【背景技術】
【0002】
地上波デジタルテレビジョン放送やNTSC(National Television Standards Committee)方式のテレビジョン放送において、複数のチャネルが周波数多重されている。複数のチャネルが周波数多重された放送波は、受信装置に受信される。受信装置は、放送波に対して、無線周波数から中間周波数への変換、および中間周波数からベースバンド周波数への変換を実行するとともに、バンドパスフィルタを使用しながら、所定のチャネルを抽出する。さらに、所定のチャネルでの番組が再生される(例えば、特許文献1参照。)。
【特許文献1】特開2001−326863号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
本発明者はこうした状況下、以下の課題を認識するに至った。受信装置は、受信した放送波に対して、無線周波数から中間周波数への変換を実行する際に、バンドパスフィルタによって、所定のチャネルを抽出する。以上の処理を実行すべき変換装置は、ひとつのチャネルを復調するためにひとつ必要とされる。そのため、ひとつのチャネルでの番組を視聴しながら、別のチャネルでの番組を録画するような場合、すなわち複数のチャネルを同時に復調する場合、複数の変換装置が必要とされる。その結果、受信装置の規模が大きくなってしまう。また、チャネルでの番組に含まれる映像データがMPEG(Moving Picture Expert Group)等によって符号化されている場合、復号の処理に所定の遅延が生じる。その結果、選択すべきチャネルを変更したときに、最初の映像が表示されるまでに時間がかかってしまう場合が生じる。
【0004】
本発明はこうした状況に鑑みてなされたものであり、その目的は、複数のチャネルに対する処理を並行に実行する受信技術を提供することにある。
【課題を解決するための手段】
【0005】
上記課題を解決するために、本発明のある態様の受信装置は、複数のチャネルが周波数多重された無線周波数の信号を受信する受信部と、受信部において受信した無線周波数の信号をデジタル信号に変換する変換部と、変換部によって変換されたデジタル信号に含まれた複数のチャネルのそれぞれを処理する処理部とを備える。処理部は、周波数多重された複数のチャネルのそれぞれに対応した帯域を有しつつ、デジタル信号を複数のチャネルに分離するバンドパスフィルタと、バンドパスフィルタによって分離された複数のチャネルのそれぞれを復調する復調部とを備える。
【0006】
「無線周波数の信号をデジタル信号に変換する」とは、無線周波数の信号をデジタル信号に直接変換する場合の他に、中間周波数を介してデジタル信号に変換する場合も含む。すなわち、無線周波数の信号が入力され、最終的にデジタル信号が出力されればよい。この態様によると、無線周波数の信号をそのままデジタル信号に変換し、変換したデジタル信号をチャネル単位に分離してから、分離したそれぞれのチャネルを処理するので、複数のチャネルに対する処理を並行に実行できる。
【0007】
処理部は、バンドパスフィルタと復調部の機能を有するソフトウエアプログラムと、ソフトウエアプログラムを実行する複数のプロセッサを備えてもよい。複数のプロセッサのそれぞれは、ソフトウエアプログラムにおける機能に含まれた複数の処理の内容のうち、少なくともひとつを割り当てられつつ、割り当てられた少なくともひとつの処理の内容を内部のキャッシュに固定的に格納してもよい。「処理の内容」とは、機能を実現するために、機能を構成している少なくともひとつのモジュールによってなされる動作に相当する。
【0008】
本発明の別の態様は、受信方法である。この方法は、複数のチャネルが周波数多重された無線周波数の信号を受信し、受信した無線周波数の信号をデジタル信号に変換した後、変換したデジタル信号に含まれた複数のチャネルのそれぞれを処理する受信方法であって、周波数多重された複数のチャネルのそれぞれに対応した帯域を有したバンドパスフィルタによって、デジタル信号を複数のチャネルに分離した後、分離された複数のチャネルのそれぞれを復調する。
【0009】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0010】
本発明によれば、複数のチャネルに対する処理を並行に実行できる。
【発明を実施するための最良の形態】
【0011】
本発明を具体的に説明する前に、概要を述べる。本発明の実施例は、地上波デジタルテレビジョン放送での無線周波数の信号を受信し、受信した無線周波数の信号に含まれた番組を再生する受信装置に関する。地上波デジタルテレビジョン放送での無線周波数の信号には、複数のチャネルが含まれている。無線周波数の信号に含まれた複数のチャネルに対する処理を実行するために、本実施例に係る受信装置は、以下のように構成される。受信装置は、受信した無線周波数の信号を中間周波数の信号に周波数変換する。その際、受信装置は、複数のチャネルのうちのいずれかを選択せずに、複数のチャネルが含められた形で周波数変換を実行する。また、複数のチャネルのそれぞれに対応した複数のバンドパスフィルタが備えられており、複数のバンドパスフィルタによって、中間周波数の信号が、複数のチャネルに分離される。受信装置は、分離された複数のチャネルのそれぞれに対して、復調処理やMPEGのデコードを実行することによって、番組を再生する。さらに、いずれかのチャネルに対応した番組を出力する。
【0012】
図1は、本発明の実施例に係る受信装置100の構成を示す。受信装置100は、アンテナ10、RF部12、AD部14、処理部16、操作部18を含む。また、処理部16は、BPF30と総称される第1BPF30a、第2BPF30b、第NBPF30n、直交検波部32と総称される第1直交検波部32a、第2直交検波部32b、第N直交検波部32n、FFT(Fast Fourier Transform)部34と総称される第1FFT部34a、第2FFT部34b、第NFFT部34n、復調部36と総称される第1復調部36a、第2復調部36b、第N復調部36n、復号部38と総称される第1復号部38a、第2復号部38b、第N復号部38n、MPEG解凍部40と総称される第1MPEG解凍部40a、第2MPEG解凍部40b、第NMPEG解凍部40n、選局部42、映像出力部44、音声出力部46を含む。さらに、受信装置100は、モニタ20、スピーカ22と接続される。
【0013】
RF部12は、アンテナ10を介して、複数のチャネルが周波数多重された無線周波数の信号を受信する。前述のごとく、無線周波数の信号は、地上波デジタルテレビジョン放送に対応する。また、RF部12は、複数のチャネルのうちのいずれかを選択することなく、複数のチャネルを含みつつ、無線周波数の信号を中間周波数の信号に変更する。図2(a)−(b)は、受信装置100において処理される信号のスペクトルを示す。図2(a)は、RF部12に受信される無線周波数の信号のスペクトルを示す。図中において、横軸が周波数を示す。なお、ここでは、複数のチャネルとして、9つのチャネルが含まれるものとする。また、ひとつのチャネルの帯域幅は、「6MHz」として規定されているので、無線周波数の信号の帯域幅は、「54MHz」として規定される。
【0014】
そのため、無線周波数の信号は、「470MHz」から「524MHz」の帯域に配置される。さらに、ひとつのチャネルは、OFDM(Orthogonal Frequency Division Multiplexing)変調方式による複数のサブキャリアによって構成されているものとする。ここで、無線周波数の信号に含まれるチャネルの数は、「9」でなくてもよい。図2(b)は、RF部12によって周波数変換された中間周波数の信号のスペクトルを示す。図示のごとく、中間周波数の信号は、無線周波数の信号と同様に複数のチャネルを有する。一方、中間周波数の信号は、「0MHz」から「54MHz」の帯域に配置される。
【0015】
図1に戻る。AD部14は、RF部12によって無線周波数の信号から変換された中間周波数の信号をデジタル信号に変換する。前述の複数のチャネルが含まれた中間周波数の信号をそのままデジタル信号に変換できるようなサンプリング周波数によって、AD部14は、デジタル信号への変換を実行する。処理部16は、AD部14によって変換されたデジタル信号に含まれた複数のチャネルのそれぞれを処理する。ここで、処理部16は、プロセッサにインストールされたプログラムによって、以下に説明する処理を実行する。
【0016】
複数のBPF30は、周波数多重された複数のチャネルのそれぞれに対応した帯域を有する。BPF30は、AD部14によって変換されたデジタル信号を入力し、複数のチャネルのそれぞれに対応した信号に分離する。BPF30は、例えば、FIR(Finite Impulse Response)フィルタによって構成される。直交検波部32は、複数のチャネルのそれぞれに対応した信号を直交検波する。その結果、直交検波部32は、複数のチャネルのそれぞれに対応したベースバンド信号を出力する。なお、ベースバンド信号は、同相成分と直交成分によって形成されるので、ふたつの信号線によって示されるべきであるが、ここでは、図を明瞭にするために、ひとつの信号線によって示されるものとする。
【0017】
FFT部34は、直交検波部32からのベースバンド信号をFFTする。すなわち、FFT部34は、時間領域の信号を周波数領域の信号に変換する。復調部36は、FFT部34によってFFTされた信号を復調する。なお、復調部36は、所定の変調方式に対応した復調を実行する。復号部38は、復調部36によって復調された信号を復号する。復号部38における復号は、図示しない送信装置においてなされる符号化方式に対応しているものとする。復号部38によって復号された信号は、図示しない送信装置においてMPEG符号化されているものとする。すなわち、チャネルにて送信される番組は、MPEG符号化されている。MPEG解凍部40は、復号部38によって復号された信号に対して、MPEG復号を実行する。その結果、MPEG解凍部40から、番組に含まれた映像データと音声データが出力される。
【0018】
操作部18は、ユーザから、番組の選択の指示を受けつける。操作部18は、ボタン等によって構成されており、ユーザが、選択すべき番組に対応したボタンを選択することによって、操作部18は指示を受けつける。操作部18は、受けつけた指示を選局部42に出力する。選局部42は、操作部18からの指示をもとに、MPEG解凍部40によって復号された複数の番組のうちの少なくともひとつを選択する。選局部42は、選択した番組を出力する。映像出力部44は、選択された番組のうち、映像データをモニタ20に出力し、モニタ20にて映像データを再生する。また、音声出力部46は、選択された番組のうち、映像データをスピーカ22に出力し、スピーカ22にて音声データを再生する。このような構成によって、操作部18が、ユーザから、選択すべき番組の変更を受けつけたとき、MPEG解凍部40は、変更になる番組を既に再生しているので、選局部42は、直ちに変更された番組を出力する。その結果、ユーザは、モニタ20とスピーカ22によって、変更した番組を直ちに視聴できる。
【0019】
以上の構成は、ハードウエア的には、任意のコンピュータのCPU、メモリ、その他のLSIで実現でき、ソフトウエア的にはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【0020】
前述のごとく、処理部16にインストールされているソフトウエアプログラムは、BPF30、復調部36等の機能を有する。また、処理部16は、ソフトウエアプログラムを実行するために、複数のプロセッサを備える。複数のプロセッサの詳細は、後述する。簡単に説明すると、複数のプロセッサのそれぞれには、ソフトウエアプログラムにおける機能に含まれた複数の処理の内容のうち、少なくともひとつが割り当てられる。ここで、処理の内容とは、例えば、BPF30における処理、直交検波部32における処理等に相当する。また、複数のプロセッサは、割り当てられた少なくともひとつの処理の内容を内部のキャッシュに固定的に格納する。例えば、ひとつのプロセッサにBPF30の処理が割り当てられる。以下において、処理部16の詳細を説明する。
【0021】
図3は、処理部16の構成を示す。処理部16は、情報処理コントローラ1011、メインメモリ1026、サブメモリ1027、外部記録部1031と総称される第1外部記録部1031−1、第2外部記録部1031−2を含む。また、情報処理コントローラ1011は、メインプロセッサ1021、DMAC1025、コントロールレジスタ1028、ワークメモリ1029、DC1030、サブプロセッサ1023と総称される第1サブプロセッサ1023−1、第2サブプロセッサ1023−2、第3サブプロセッサ1023−3、バス1032を含む。また、メインプロセッサ1021は、LS(ローカルストレージ)1022を含み、第1サブプロセッサ1023−1は、LS1024−1を含み、第2サブプロセッサ1023−2は、LS1024−2を含み、第3サブプロセッサ1023−3は、LS1024−3を含む。
【0022】
メインプロセッサ1021は、第1サブプロセッサ1023−1、第2サブプロセッサ1023−2、第3サブプロセッサ1023−3によるサブプロセッサプログラム実行(データ処理)のスケジュール管理と、情報処理コントローラ1011の全般的な管理とを行う。ただし、メインプロセッサ1021内で管理のためのプログラム以外のプログラムが動作するように構成することもできる。その場合には、メインプロセッサ1021はサブプロセッサとしても機能することになる。
【0023】
サブプロセッサ1023は、ひとつでもよいが、望ましくは複数とする。この例は、複数の場合である。第1サブプロセッサ1023−1、第2サブプロセッサ1023−2、第3サブプロセッサ1023−3は、メインプロセッサ1021の制御によって並列的かつ独立に、サブプロセッサプログラムを実行し、データを処理する。さらに、場合によってメインプロセッサ1021内のプログラムがサブプロセッサ1023内のサブプロセッサプログラムと連携して動作するように構成することもできる。後述する機能プログラムもメインプロセッサ1021内で動作するプログラムである。
【0024】
DMAC1025は、情報処理コントローラ1011に接続されたDRAM(ダイナミックRAM)などからなるメインメモリ1026および同様に接続されたSRAM(スタティックRAM)などからなるサブメモリ1027に格納されているプログラムおよびデータにアクセスする。DMAC1025を介すことにより、各サブプロセッサ1023およびメインメモリ1026間ではDMA方式によりデータ転送を行うことができ、高速化を実現できる。コントロールレジスタ1028は情報処理コントローラ1011内で処理されるべきサブプロセッサプログラムを、どのサブプロセッサ1023、さらにはサブプロセッサ1023内に複数個存在する後述するプレセッシングスレッドのいずれが処理するかを決定すると共に、サブプロセッサ1023によるサブプロセッサプログラム実行の進捗を管理するために使用される。ワークメモリ1029は情報処理コントローラ1011内に含まれるSRAMなどからなる作業用メモリであり、メインプロセッサ1021およびサブプロセッサ1023によってアクセスされる。
【0025】
DC1030は、情報処理コントローラ1011に接続された第1外部記録部1031−1、第2外部記録部1031−2にアクセスするものである。外部記録部1031は、固定ディスク(ハードディスク)でも、リムーバブルディスクでもよく、また、MO、CD±RW、DVD±RWなどの光ディスク、メモリディスク、SRAM(スタティックRAM)、ROMなど、各種のものを用いることができる。したがって、DC1030は、ディスクコントローラと称するが、外部記録部コントローラである。
【0026】
図3の例のように、情報処理コントローラ1011に対して外部記録部1031を複数接続できるように、情報処理コントローラ1011を構成することができる。メインプロセッサ1021、各サブプロセッサ1023、DMAC1025、コントロールレジスタ1028、ワークメモリ1029およびDC1030は、バス1032によって接続される。メインプロセッサ1021および各サブプロセッサ1023に対して、それぞれを特定できる識別子が、メインプロセッサIDおよびサブプロセッサIDとして割り当てられる。情報処理コントローラ1011は、ワンチップIC(集積回路)として構成することが望ましい。
【0027】
ここで、各サブプロセッサ1023からメインメモリ1026へのアクセスについて、説明する。上述したように、情報処理コントローラ1011内の各サブプロセッサ1023は、独立にサブプロセッサプログラムを実行し、データを処理するが、異なるサブプロセッサがメインメモリ1026内の同一領域に対して同時に読み出しまたは書き込みを行った場合には、データの不整合を生じ得る。そこで、サブプロセッサ1023からメインメモリ1026へのアクセスは、以下のような手順によって行う。サブメモリ1027およびワークメモリ1029についても同様に、異なるサブプロセッサ1023が同一領域に対してアクセスすることが考えられるが、ここではメインメモリ1026について記載する。
【0028】
図1の処理部16に含まれるBPF30等の処理のそれぞれが、メインプロセッサ1021やサブプロセッサ1023に固定的に配置される。すなわち、処理部16に含まれるBPF30等の処理を実行するためのプログラムおよびデータのそれぞれが、LS1022、LS1024等に固定的に格納される。
【0029】
図4(a)−(c)は、各サブプロセッサ1023からメインメモリ1026へのアクセスを説明するための概要を示す。図4(a)に示すように、メインメモリ1026は、アドレス指定可能な複数のメモリロケーション0〜Nによって構成される。各メモリロケーションに対しては、データの状態を示す情報を格納するための追加セグメント0〜Nが割り振られる。追加セグメントは、F/Eビット、サブプロセッサIDおよびLSアドレス(ローカルストレージアドレス)を含むものとされる。また、各メモリロケーションには、後述のアクセスキー0〜Nも割り振られる。F/Eビットは、以下のように定義される。
【0030】
F/Eビット=0は、サブプロセッサ1023によって読み出されている処理中のデータ、または空き状態であるため最新データではない無効データであり、読み出し不可であることを示す。また、F/Eビット=0は、当該メモリロケーションにデータ書き込み可能であることを示し、書き込み後に1に設定される。F/Eビット=1は、当該メモリロケーションのデータがサブプロセッサ1023によって読み出されておらず、未処理の最新データであることを示す。当該メモリロケーションのデータは読み出し可能であり、サブプロセッサ1023によって読み出された後に0に設定される。また、F/Eビット=1は、当該メモリロケーションがデータ書き込み不可であることを示す。さらに、上記F/Eビット=0(読み出し不可/書き込み可)の状態において、当該メモリロケーションについて読み出し予約を設定することは可能である。F/Eビット=0のメモリロケーションに対して読み出し予約を行う場合には、サブプロセッサ1023は、読み出し予約を行うメモリロケーションの追加セグメントに、読み出し予約情報として当該サブプロセッサ1023のサブプロセッサIDおよびLSアドレスを書き込む。
【0031】
その後、データ書き込み側のサブプロセッサ1023によって、読み出し予約されたメモリロケーションにデータが書き込まれ、F/Eビット=1(読み出し可/書き込み不可)に設定されたとき、あらかじめ読み出し予約情報として追加セグメントに書き込まれたサブプロセッサIDおよびLSアドレスに読み出される。複数のサブプロセッサ1023によってデータを多段階に処理する必要がある場合、このように各メモリロケーションのデータの読み出し/書き込みを制御することによって、前段階の処理を行うサブプロセッサ1023が、処理済みのデータをメインメモリ1026内の所定アドレスに書き込んだ後に即座に、後段階の処理を行う別のサブプロセッサ1023が前処理後のデータを読み出すことが可能となる。
【0032】
図4(b)に示すように、各サブプロセッサ1023内のLS1024も、アドレス指定可能な複数のメモリロケーション0〜Lによって構成される。各メモリロケーションに対しては、同様に追加セグメント0〜Lが割り振られる。追加セグメントは、ビジービットを含むものとされる。サブプロセッサ1023がメインメモリ1026内のデータを自分のLS1024のメモリロケーションに読み出すときは、読み出し先のメモリロケーションに対応するビジービットを1に設定して予約する。ビジービットが1であるメモリロケーションには、他のデータは格納することができない。LS1024のメモリロケーションに読み出し後、ビジービットは0になり、任意の目的に使用できるようになる。
【0033】
図4(a)に示すように、さらに、各情報処理コントローラと接続されたメインメモリ1026には、複数のサンドボックスが含まれる。サンドボックスは、メインメモリ1026内の領域を画定するものであり、各サンドボックスは、各サブプロセッサ1023に割り当てられ、当該サブプロセッサが排他的に使用できる。すなわち、各々のサブプロセッサ1023は、自分に割り当てられたサンドボックスを使用できるが、この領域を超えてデータのアクセスを行うことはできない。メインメモリ1026は、複数のメモリロケーション0〜Nから構成されるが、サンドボックスは、これらのメモリロケーションの集合である。すなわちひとつのサンドボックスは、ひとつまたは複数のメモリロケーションから構成される。
【0034】
さらに、メインメモリ1026の排他的な制御を実現するために、図4(c)に示すようなキー管理テーブルが用いられる。キー管理テーブルは、情報処理コントローラ1011内のSRAMのような比較的高速のメモリに格納され、DMAC1025と関連付けられる。ワークメモリ1029に格納されてもよい。キー管理テーブル内には、情報処理コントローラ1011内のサブプロセッサ1023の数と同数のエントリが存在し、各エントリにはサブプロセッサIDおよび、それに対応するサブプロセッサキーおよびキーマスクが関連付けられて格納されている。サブプロセッサ1023がメインメモリ1026を使用する際のプロセスは、以下のとおりである。まず、サブプロセッサ1023はDMAC1025に、読み出しまたは書き込みのコマンドを送信する。このコマンドには、自分のサブプロセッサIDと、アクセス要求先であるメインメモリ1026内のアドレスが含まれる。
【0035】
DMAC1025は、このコマンドを実行する前に、キー管理テーブルを参照して、アクセス要求元のサブプロセッサ1023のサブプロセッサキーを調べる。次に、DMAC1025は、調べたアクセス要求元のサブプロセッサキーと、アクセス要求先であるメインメモリ1026内の図4(a)に示したメモリロケーションに割り振られたアクセスキーとを比較して、ふたつのキーが一致した場合にのみ、上記のコマンドを実行する。
【0036】
図4(c)に示したキー管理テーブル上のキーマスクは、その任意のビットが1になることによって、そのキーマスクに関連付けられたサブプロセッサキーの対応するビットが0または1になることができる。例えば、サブプロセッサキーが1010であるとする。通常、このサブプロセッサキーによって1010のアクセスキーを持つサンドボックスへのアクセスだけが可能である。しかし、このサブプロセッサキーと関連付けられたキーマスクが0001に設定されている場合には、キーマスクのビットが1に設定された桁のみにつき、サブプロセッサキーとアクセスキーとの一致判定がマスクされ、このサブプロセッサキーの1010によってアクセスキーが1010または1011のいずれかであるアクセスキーを持つサンドボックスへのアクセスが可能となる。
【0037】
以上のようにして、メインメモリ1026のサンドボックスの排他性が実現される。すなわち、情報処理コントローラ1011内の複数のサブプロセッサ1023によってデータを多段階に処理する必要がある場合、以上のように構成することによって、前段階の処理を行うサブプロセッサ1023と、後段階の処理を行うサブプロセッサ1023のみが、メインメモリ1026内の所定アドレスにアクセスできるようになり、データを保護することができる。例えば、以下のように使用することが考えられる。まず、処理部16の起動直後においては、キーマスクの値はすべてゼロである。
【0038】
メインプロセッサ1021内のプログラムが実行され、サブプロセッサ1023内のサブプロセッサプログラムと連携動作するものとする。第1サブプロセッサ1023−1により実行された処理結果データを一旦メインメモリ1026に格納し、第2サブプロセッサ1023−2に送信したいときには、該当するメインメモリ領域は、当然どちらのサブプロセッサ1023からもアクセス可能である必要がある。そのような場合に、メインプロセッサ1021内のプログラムは、キーマスクの値を適切に変更し、複数のサブプロセッサからアクセスできるメインメモリ領域を設けることにより、サブプロセッサ1023による多段階的の処理を可能にする。
【0039】
次に、各サブプロセッサ1023からメインメモリ1026、サブメモリ1027へのアクセスを説明する。情報処理コントローラ1011内の各サブプロセッサ1023は、メインメモリ1026に対してと同様に、サブメモリ1027に対しても読み出しまたは書き込みが可能であるが、コマンドにはいくつかの種類が考えられ、優先度の高低があることもあり得る。そこで、各サブプロセッサ1023が正確にメインメモリ1026およびサブメモリ1027を使用するための手順を以下に記載する。
【0040】
図5は、DMAC1025、メインメモリ1026、サブメモリ1027の構成を示す。DMAC1025は、メインメモリコントロールレジスタ1033、サブメモリコントロールレジスタ1034、メインプロセッサ用リードコマンドブロック1035、メインプロセッサ用ライトコマンドブロック1036、アドレス変換レジスタ1037を含む。
【0041】
DMAC1025は、内部にメインメモリコントロールレジスタ1033とサブメモリコントロールレジスタ1034を有する。メインメモリコントロールレジスタ1033は、メインメモリ1026にアクセスするために使用されるレジスタであり、サブメモリコントロールレジスタ1034は、サブメモリ1027にアクセスするためのものである。まず、メインメモリコントロールレジスタ1033の使用手順について記す。メインメモリコントロールレジスタ1033は4つのブロックから構成され、各々が以下のようにメインメモリ1026へアクセスするコマンドを格納する。
【0042】
(1)優先コマンドブロック:優先度の高いコマンドを複数個格納する。当該ブロック内のコマンドは優先的に処理される。
(2)通常コマンドブロック1:通常のコマンドを複数個格納する。
(3)通常コマンドブロック2:同様に通常のコマンドを複数個格納する。通常コマンドブロック1と2には機能的な差はない。しかしながら例えば、メインメモリ1026へのアクセス実行前のコマンドを一方のブロックに格納し、実行後のコマンドをもう一方に格納することにより、実行前と実行後のコマンドを各々、集中的および連続的に処理できるという効果を得ることができる。
(4)オーダーコマンドブロック:正しい順番で処理される必要のあるコマンドを複数個格納する。つまり、各サブプロセッサ1023からのコマンドを、受信した順番にコマンド送信元であるサブプロセッサ識別子と共に格納する。これにより、受信した順番にコマンドを処理し、かつ同じ順番でコマンド送信元のサブプロセッサ1023へ実行結果を返信することができる。
【0043】
次にサブメモリコントロールレジスタ1034の使用手順について記す。サブメモリコントロールレジスタ1034も4つのブロックから構成され、各々が以下のようにサブメモリ1027へアクセスするコマンドを格納する。
【0044】
(1)優先コマンドブロック:優先度の高いコマンドを複数個格納する。当該ブロック内のコマンドは優先的に処理される。
(2)リードコマンドブロック:リードコマンドを複数個格納する。
(3)ライトコマンドブロック:ライトコマンドを複数個格納する。
(4)待ちコマンドブロック:サブメモリ1027内の任意の領域に対してアクセスを試みたが、対象領域がロックされており不可であったコマンドを複数個格納する。ロック解除時には優先コマンドブロックへ移動する。
【0045】
そして、各サブプロセッサ1023は例えば、図6に示されるコマンドによってメインメモリ1026またはサブメモリ1027へアクセスする。図6は、コマンドのデータ構造を示す。アクセス実行後のメインメモリ1026またはサブメモリ1027からの実行結果のレスポンスも同一構造である。当該コマンド/レスポンスにおいて、コマンドタイプはリードとライトがある。優先コマンド識別子は、当該コマンドは優先度が高いことを示す。通常コマンド識別子はメインメモリ1026へのアクセス時のものであり、当該コマンドが通常コマンドブロック1または2に格納されることを示す。チェーンコマンド識別子もメインメモリ1026へのアクセス時のものであり、当該コマンドが直前または直後のコマンドと共に連続的なアクセスが必要であることを示す。または連続するコマンド列の通し番号でもよい。
【0046】
チェーンコマンド識別子がセットされたコマンドはオーダーコマンドブロックに格納されるが、処理の優先度は優先コマンドブロック内のコマンドよりも高いものとする。アドレスは、コマンドを実行するメインメモリ1026またはサブアドレス内のアドレスを示す。また、ワークメモリ1029内のアドレスでもよい。サブプロセッサ識別子はコマンド送信元であるサブプロセッサ1023の識別子である。プレセッシングスレッド子識別子はコマンド送信元であるプレセッシングスレッド識別子の識別子であり、詳細は後述する。OK/NGはコマンドの成功/失敗を示す。データは、リードコマンド実行時にレスポンスに含まれる読み出されたデータか、またはライトコマンド実行時にコマンドに含まれる書き込まれるデータである。
【0047】
図5に戻る。各サブプロセッサ1023がメインメモリ1026に正確にアクセスするためのメインメモリコントロールレジスタ1033、同様にサブメモリ1027に正確にアクセスするためのサブメモリコントロールレジスタ1034の他に、メインプロセッサ1021がメインメモリ1026またはサブメモリ1027にアクセスするためのリードコマンドおよびライトコマンドを各々、複数個格納できる、メインプロセッサ用リードコマンドブロック1035およびメインプロセッサ用ライトコマンドブロック1036を情報処理コントローラ1011内に設けることも考えられる。
【0048】
さらに、複数のサブプロセッサがDMAC1025に対して、優先度の同じコマンドを同じタイミングで送信した場合には、以下の手順に従うものとする。すなわちDMAC1025は内部に、メモリアクセスに成功した最後のサブプロセッサ1023を示すポインタを有する。そして、複数のサブプロセッサ1023から優先度の同じメモリアクセスのコマンドを、同じタイミングで受信したときは、当該ポインタより値が大きく、かつ差分の少ないサブプロセッサ1023からのコマンドを優先させるものとする。この際、一番大きいポインタ値の次は、一番小さいポインタ値とする。
【0049】
次に、各サブプロセッサ1023からメインメモリ1026に正確にアクセスするためのサブメモリ1027へのアクセスについて説明する。DRAM等により構成されるメインメモリ1026および、SRAM等により構成されるサブメモリ1027は当然のことながら、各々の素子の構造が異なるため使用目的も異なってくる。メインメモリ1026とサブメモリ1027を組み合わせた使用方法の一例として、各サブプロセッサ1023がメインメモリ1026にアクセスするときのアドレス変換を、サブメモリ1027が担うことが考えられる。そのための手順を図7(a)−(b)を用いて記載する。図7(a)−(b)は、DMAC1025、メインメモリ1026、サブメモリ1027の別の構成を示す。
【0050】
前述の通り、メインメモリ1026は複数のメモリロケーションによって構成され、さらに、ひとつのサンドボックスはひとつまたは複数のメモリロケーションから構成される。そして、各サブプロセッサ1023は自分に割り当てられたサンドボックスを排他的に使用できる。ここで例えば情報処理コントローラ1011内のあるサブプロセッサ1023に、メインメモリ1026内のサンドボックス1、2、3が割り当てられているものとする。サンドボックス1、2、3の領域は各々0x200〜0x2FF、0x800〜0x8FF、0xF00〜0xFFFとし、各サンドボックスは先頭アドレスによって識別されるものとする。すなわち割り当てられた各サンドボックスはアドレスが連続していなくても構わない。
【0051】
図7(a)においてサブプロセッサ1023は、サンドボックス1、2、3からデータを読み出すときに、まず、DMAC1025内のアドレス変換レジスタ1037にアクセスする。アドレス変換レジスタ1037はサブプロセッサ1023と、当該サブプロセッサ1023に割り当てられたサンドボックスとを関連付けたレジスタであり、サブプロセッサ1023の数と同数のエントリから構成される。ここではQ1で示されるエントリが、当該サブプロセッサ1023に対応するものとする。サブプロセッサ1023は、自分と対応するQ1の値を読み出す。さらに、読み出したQ1の値(0x80)で示されるサブメモリ1027内の第1のアドレスからデータ(0x20)を読み出す。ここで、サンドボックス1の領域はQ1の値に基づいて特定できる。例えばQ1の値が0x80であるとき、当該値を16倍した数値(0x800)がサンドボックス1の先頭アドレスを示すようにすることが考えられる。そして当該先頭アドレスに255を加算した値(0x8FF)が終了アドレスとなる。
【0052】
サブメモリ1027内の第1のアドレスからデータ(0x20)で示される、同じサブメモリ1027内の第2のアドレスからデータ(0xF0)を読み出す。ここで同様にサンドボックス2は、サブメモリ1027内の第1のアドレスから読み出したデータ(0x20)に基づいて特定できる。すなわち、メインメモリ1026内の0x200〜0x2FFの領域がサンドボックス2である。サブメモリ1027内の第2のアドレスから読み出したデータ(0xF0)で示される、同じサブメモリ1027内の第3のアドレスからデータ(0x00)を読み出す。0x00は割り当てられたサンドボックスの終了を示す。また同様にサンドボックス3は、サブメモリ1027内の第2のアドレスから読み出したデータ(0xF0)に基づいて特定できる。すなわち、メインメモリ1026内の0xF00〜0xFFFの領域がサンドボックス3である。以上のようにして特定されたサンドボックス1、2、3からデータを読み出すことができる。このようにして各サブプロセッサ1023は、自分に割り当てられたサンドボックスのアドレスが非連続な場合でも、正確にアクセスできる。
【0053】
次に、同じサブプロセッサ1023がメインメモリ1026内の新たなサンドボックスにデータを書き込み、当該サンドボックスをアドレス変換レジスタ1037内のQ1で管理されるサンドボックスのグループに追加するための手順を図7(b)を用いて記載する。当該サブプロセッサ1023は、メインメモリ1026内の0x000〜0x0FFの領域であるサンドボックス4にデータを書き込んだとする。まず、Q1の値を読み出す(初期は0x80)。そして、新たにデータを書き込んだサンドボックス4を特定できる、サブメモリ1027内のアドレスに、先に読み出したQ1の値(0x80)を書き込む。例えば今回は0x000〜0x0FFの領域にデータを書き込んだので、先頭アドレスである0x000を16で割った0x00で示されるサブメモリ1027内のアドレスにQ1の値(0x80)を書き込むことが考えられる。さらに、Q1の値(0x80)を書き込んだサブメモリ1027内のアドレス(0x00)を新たなQ1の値として、アドレス変換レジスタ1037内のQ1に書き込む。
【0054】
以上のようにして各サブプロセッサ1023は、新たなサンドボックスを既存のサンドボックスのグループに追加できる。この場合も、各サンドボックスのアドレスが非連続であっても構わない。また既存のサンドボックスのグループが存在せず、最初のサンドボックスをサブメモリ1027およびアドレス変換レジスタ1037と関連付ける際にも上記の方法は適用できる。
【0055】
次に、メインプロセッサ1021および各サブプロセッサ1023からワークメモリ1029へのアクセスを説明する。メインメモリ1026は前述の通り、DRAM等により構成され、さらにDMA方式によりデータデータ通信が行われるため、各サブプロセッサは大容量のメインメモリ1026を高速に使用できる。またサブメモリ1027はSRAM等により構成され、こちらも高速に使用できる。ここで、メインプロセッサ1021および各サブプロセッサ1023が、情報処理コントローラ1011に接続されたメインメモリ1026およびサブメモリ1027と共に、情報処理コントローラ1011内に含まれるワークメモリ1029を作業用メモリとして共有して使用できれば、さらなる高速化が実現できる。また、当該ワークメモリ1029により簡単な数値演算ができれば効率的である。ワークメモリ1029は上述の通り、SRAM等により構成されるため素子の構造上、DRAMのような大容量化は期待できないものの、非常に高速である。
【0056】
以下に、メインプロセッサ1021および各サブプロセッサ1023がワークメモリ1029へアクセスする場合の手順を記す。図8は、ワークメモリ1029の構成を示す。ワークメモリ1029はコントローラ1038とRAM1039とを含む。RAM1039はSRAM等が考えられるが、それに限定されるわけではない。また、RAM1039は複数のブロックから構成される。各ブロックにはアドレスが割り当てられ、データを記憶できる。メインプロセッサ1021および各サブプロセッサ1023はコントローラ1038を介して、RAM1039へアクセスする。
【0057】
具体的にはメインプロセッサ1021および各サブプロセッサ1023は、コントローラ1038へコマンド、アドレスまたはデータ等を送信し、コントローラ1038はそれらに沿ってRAM1039へアクセスする。処理実行後にコントローラ1038は、コマンド送信元であるメインプロセッサ1021またはサブプロセッサ1023へコマンド実行結果を返信するという手順が踏まれる。各サブプロセッサ1023がワークメモリ1029へアクセスするときのコマンドは例えば、図6に示され、メインメモリ1026またはサブメモリ1027へのアクセス時に用いるものと同様である。処理実行後のワークメモリ1029からの実行結果のレスポンスも同一構造である。
【0058】
だたし、ワークメモリ1029へアクセスする場合は、図6に示されるコマンドにおいて優先コマンド識別子、通常コマンド識別子、チェーンコマンド識別子、プレセッシングスレッド識別子は基本的には使用しない。しかしながらワークメモリ1029が、これらの識別子に対応可能であれば使用してもよい。コマンドタイプしてはいくつか考えられる。
(a)リード
ワークメモリ1029内のデータを読み出すために使用される。メインプロセッサ1021および各サブプロセッサ1023はリードコマンドと共に所望のデータを記憶するRAM内のブロックのアドレスも送信する。実行結果として、リードコマンドの成功/失敗を示すOK/NGと読み出されたデータが返信される。
【0059】
(b)ライト
ワークメモリ1029内にデータを書き込むために使用される。メインプロセッサ1021および各サブプロセッサ1023はライトコマンド、データ、当該データを記憶させるRAM内のブロックのアドレスを送信する。実行結果として、ライトコマンドの成功/失敗を示すOK/NGが返信される。
(c)加算
ワークメモリ1029内のデータを加算するために使用される。メインプロセッサ1021および各サブプロセッサ1023は加算コマンド、加算させるデータを記憶するRAM内のブロックのアドレスを送信する。コントローラは受信したアドレスのブロックにおけるデータに1を加算し、上書きする。実行結果として、加算コマンドの成功/失敗を示すOK/NGが返信される。
【0060】
(d)セット
ワークメモリ1029のデータをビット単位で操作するために使用される。メインプロセッサ1021および各サブプロセッサ1023はセットコマンド、操作するデータを記憶するRAM内のブロックのアドレス、マスクデータを送信する。コントローラは受信したマスクデータと、同様に受信したアドレスのブロックにおけるデータを比較する。マスクデータにおいて値が1であるビットと同じ位置の、データにおけるビットの値を1にする。実行結果として、セットコマンドの完了を示すCompletedが返信される。また、このときセットコマンド実行前のデータも返信することにより、コマンドの成功/失敗を確認できるようにしてもよい。
【0061】
(e)クリア
ワークメモリ1029のデータをビット単位で操作するために使用される。メインプロセッサ1021および各サブプロセッサ1023はクリアコマンド、操作するデータを記憶するRAM内のブロックのアドレス、マスクデータを送信する。コントローラは受信したマスクデータと、同様に受信したアドレスのブロックにおけるデータを比較する。マスクデータにおいて値が1であるビットと同じ位置の、データにおけるビットの値を0にする。実行結果として、クリアコマンドの完了を示すCompletedが返信される。また、このときクリアコマンド実行前のデータも返信することにより、コマンドの成功/失敗を確認できるようにしてもよい。
【0062】
以上のようにメインプロセッサ1021および各サブプロセッサ1023は、大容量のメインメモリ1026および高速なサブメモリ1027に加えて、ワークメモリ1029も併用できる。例えば、ワークメモリ1029をメインメモリ1026またはサブメモリ1027のキャッシュとして利用すればさらなる高速化が期待できる。
【0063】
次に、各サブプロセッサ1023内のプレセッシングスレッドについて説明する。前述した通り、情報処理コントローラ1011内の各サブプロセッサ1023は構造上、独立している。従って各々が、独立にサブプロセッサプログラムを実行し、データを処理できる。さらに各サブプロセッサ1023が内部に、仮想的に独立した複数のプレセッシングスレッドを有することも考えられる。図9は、サブプロセッサ1023の構成を示す。サブプロセッサ1023は内部に有するアービタ1040を介してバス1032と接続される。アービタ1040は外部からの信号を、適切なプレセッシングスレッドに通知する役割を担う。サブプロセッサ1023内にはまた、LS1024とプレセッシングスレッド0、1、2、3(各々1041、1042、1043、1044)が含まれる。図9において、各プレセッシングスレッドは独立して図示されているが、あくまでも仮想的な独立である。プレセッシングスレッドは各々、プレセッシングスレッド識別子が割り当てられ、独立かつ並列に動作可能である。
【0064】
ここで各プレセッシングスレッドは、メインメモリ1026、サブメモリ1027またはワークメモリ1029に対して独立してアクセスを行うため、コマンド送信元であるプレセッシングスレッドへ確実に、レスポンスが返信されるようにする必要がある。そのための手順を以下に記す。各プレセッシングスレッドが各々のメモリへアクセスするときのコマンドは例えば図6に示され、つまり各サブプロセッサ1023がメモリアクセス時に用いるものと同様である。処理実行後の各メモリからの実行結果のレスポンスも同一構造である。図6についての説明は先に述べた通りであるが、サブプロセッサ識別子はコマンド送信元であるサブプロセッサ1023の識別子である一方、プレセッシングスレッド識別子はさらに、当該サブプロセッサ1023内のいずれのプレセッシングスレッドがコマンド送信元であるかを識別するためのものである。
【0065】
メインメモリ1026、サブメモリ1027またはワークメモリ1029からのレスポンスはまずサブプロセッサ識別子に基づき、コマンド送信元であるサブプロセッサ1023へ返信される。さらに、サブプロセッサ1023内のアービタ1040によりプレセッシングスレッド識別子に基づき、コマンド元であるプレセッシングスレッドへ返信される。ここで、サブプロセッサ1023内の複数のプレセッシングスレッドのいずれでも構わない場合、例えば同じ処理を行うようなときにはプレセッシングスレッド識別子に基づかず、処理負荷の軽いプレセッシングスレッドへ返信するようにしてもよい。またはメインメモリ1026、サブメモリ1027またはワークメモリ1029からレスポンスを受信する度に、複数あるプレセッシングスレッドのいずれかひとつを順繰りに選択し、選択されたプレセッシングスレッドへ当該レスポンスを返信するようにしてもよい。以上のようにして、各サブプロセッサ1023内の複数のプレセッシングスレッドが、メインメモリ1026、サブメモリ1027またはワークメモリ1029に対して独立してアクセスを行ったとしても、コマンド送信元であるプレセッシングスレッドへ確実に、レスポンスが返信されるようにすることができる。
【0066】
次に、コントロールレジスタ1028によるサブプロセッサプログラム管理について説明する。情報処理コントローラ1011内に複数のサブプロセッサ1023が存在し、各サブプロセッサ1023内はさらに複数のプレセッシングスレッドを有する状態において、情報処理コントローラ1011内で処理されるべきサブプロセッサプログラムを、どのプレセッシングスレッドに処理させるかを決定することは、情報処理コントローラの高速化を実現する上で非常に重要である。そこでコントロールレジスタ1028を使用することにより、各プレセッシングスレッドに対する適切なサブプロセッサプログラム処理の割り当てを実現し、情報処理コントローラを効率的に動作させる手順を以下に記す。図10はコントロールレジスタ1028の構成を示す。図示されている通り、コントロールレジスタ1028は処理待ちサブプロセッサプログラムレジスタ1045とサブプロセッサプログラム処理進捗レジスタ1046を含む。
【0067】
まず、処理待ちサブプロセッサプログラムレジスタ1045の使用手順について記載する。メインプロセッサ1021は、情報処理コントローラ1011内で処理されるべきサブプロセッサプログラムが発生した場合には、処理待ちサブプロセッサプログラムレジスタ1045内に、当該サブプロセッサプログラムまたは関連データが格納されているメインメモリ1026、サブメモリ1027、ワークメモリ1029またはLSにおけるアドレスを書き込む。処理されるべきサブプロセッサプログラムが存在しない状態においては、処理待ちサブプロセッサプログラムレジスタ1045の値はゼロである。すべてのプレセッシングスレッドは、自分が何もサブプロセッサプログラムを実行していない間は、定期的または非定期的に処理待ちサブプロセッサプログラムレジスタ1045の値を読み出し、その結果、ゼロでない値を読み出したプレセッシングスレッドが処理を行うものとする。
【0068】
それと共に当該プレセッシングスレッドは、処理待ちサブプロセッサプログラムレジスタ1045にゼロの値を書き込む。処理を行うプレセッシングスレッドは、読み出した処理待ちサブプロセッサプログラムレジスタ1045の値に基づき、処理対象となるサブプロセッサプログラムまたは関連データを読み出し、実行する。このときサブプロセッサプログラムは既に当該プレセッシングスレッドを有するサブプロセッサ1023に読み出されており、サブプロセッサプログラムの読み出しは不要であることも考えられる。このようにして、サブプロセッサプログラムを実行していない、処理能力に余裕のあるプレセッシングスレッドに迅速にサブプロセッサプログラムを割り当てることができ、情報処理コントローラを効率的に動作させることができる。
【0069】
次に、サブプロセッサプログラム処理進捗レジスタ1046の使用手順について記載する。サブプロセッサプログラム処理進捗レジスタ1046はサブプロセッサプログラム処理を割り当てられたプレセッシングスレッドが、処理進捗状況を書き込むための2ビット(x、y)のレジスタである。例えば(0、0)は未処理であり、(0、1)は処理中(段階1)であり、(1、0)は処理中(段階2)であり、(1、1)は処理完了を示す。さらに2ビットと共に、プロセッシングスレッド識別子を書き込むことにより処理を割り当てられたプレセッシングスレッドを示すようにしてもよい。または、情報処理コントローラ1011内の各プロセッシングスレッド毎に、サブプロセッサプログラムの処理進捗状況を書き込むためのレジスタを設けてもよい。
【0070】
サブプロセッサプログラム処理進捗レジスタ1046は、情報処理コントローラ1011内のメインプロセッサ1021、すべてのサブプロセッサ1023およびすべてのプレセッシングスレッドがアクセス可能であり、サブプロセッサプログラムの処理進捗状況を的確に把握できる。さらに、各プロセッシングスレッド毎に処理進捗状況レジスタを設けた場合には、複数のサブプロセッサプログラムが同時に実行されている間も進捗把握が可能である。以上が、各サブプロセッサ1023が内部に、仮想的に独立した複数のプレセッシングスレッドを有している場合のプレセッシングスレッド管理方法の例である。なお、以降の説明においては、サブプロセッサ1023が何らかの処理を行う場合には、当該サブプロセッサ1023内部のいずれのプレセッシングスレッドが処理を行っても構わないものとし、プレセッシングスレッドの違いによる実行結果の差異は生じないものとする。従って、サブプロセッサの処理内容について、内部に有する複数のプレセッシングスレッドがどの様に処理を分担するかという詳細については言及しないものとする。
【0071】
以上の構成による受信装置100の動作を説明する。RF部12は、アンテナ10を介して、無線周波数の信号を受信する。RF部12は、無線周波数の信号の帯域を維持するように、無線周波数の信号を中間周波数の信号に変換する。AD部14は、中間周波数の信号をデジタル信号に変換する。処理部16は、デジタル信号に含まれた複数のチャネルのそれぞれを単位にして、チャネルに対する処理を実行する。また、処理部16は、複数のプロセッサによって構成される。その際、チャネルに対する処理は、BPF30、直交検波部32、FFT部34、復調部36、復号部38、MPEG解凍部40等によって構成され、それぞれが所定のプロセッサに割り当てられる。なお、そのときの割り当ては、固定的になされる。
【0072】
本発明の実施例によれば、無線周波数の信号をそのままデジタル信号に変換し、変換したデジタル信号をチャネル単位に分離してから、分離したそれぞれのチャネルを処理するので、複数のチャネルに対する処理を並行に実行できる。また、複数のチャネルのそれぞれに対する処理をソフトウエアプログラムによって実現するので、処理の内容を容易に変更できる。また、複数のチャネルに対する処理に相当するソフトウエアプログラムを複数のプロセッサによって実行するので、処理を高速化できる。また、ソフトウエアプログラムに含まれる複数の処理と、複数のプロセッサとを固定的に対応づけるので、それぞれのプロセッサは、対応すべき処理をキャッシュに格納できる。また、キャッシュに格納できるので、処理を高速にできる。また、複数のチャネルに対する処理を並列に実行するので、チャネルを変更したときであっても、小さい遅滞にて変更したチャネルを出力できる。
【0073】
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【0074】
本実施例において、処理部16は、選局部42によって、複数のチャネルのうちのひとつを選択し、選択したチャネルを出力する。しかしながらこれに限らず例えば、処理部16は、複数のチャネルを並列に出力してもよい。複数のチャネルを並列に出力する場合の実装例として、モニタ20およびスピーカ22の組み合わせが複数個あることが考えられる。すなわち、処理部16によって出力された別々の番組が、各モニタおよびスピーカに出力されることになる。この時、映像出力部44および音声出力部46の組み合わせも複数個必要になる。本変形例によれば、RF部12がひとつであっても、複数の番組を同時に再生できる。
【0075】
ここで、操作部18および選局部42によって任意のチャネルを選択する際の画面表示について述べる。モニタ20およびスピーカ22には、常に1つの番組のみがフルサイズで出力されるだけでなく、番組選択時には例えば図11、図12に示すように、複数の番組のサムネイル映像がマルチ表示されることが考えられる。図11、図12内のch1、2・・・Nは各々、各チャンネルのサムネイル映像である。これによりユーザは、見たい番組を視覚的に即座に選ぶことができる。このマルチ表示を実現するためには、選局部42が映像のサイズ縮小機能および、複数の縮小された映像のレイアウト機能を有している必要がある。
【0076】
さらに、ユーザにとって操作し易い画面表示として図13に示すものが考えられる。図13においては、複数のサムネイル映像が十字型に表示されている。横軸は映像のソース元であるメディアを示し、縦軸はそのメディアをソース元とする映像のサムネイル映像である。ユーザは例えば操作部18の十字キーを用いてサムネイル映像を選択する。図13においては現在テレビの3チャンネルが選択されているが、十字キーの左右キーを押すことにより各々、HD(HardDisk)、DVDをソース元のメディアとして選択できる。HD、DVDは各々、第1外部記録部1031−1、第2外部記録部1031−2に対応する。メディア選択後に十字キーの上下キーを押すことにより任意のサムネイル映像を選択し、決定キーにより決定する。図13においては3チャンネルが選択されているが、十字キーの上下キーを用いて他チャンネルも選択できる。ユーザにより選択、決定されたサムネイル映像はフルサイズで表示されることになる。このようにしてユーザは、様々なメディア上の所望の映像コンテンツに対して即座・簡単にアクセスできる。
【0077】
また、処理部16は、MPEG解凍部40に入力する前の信号を第1外部記録部1031−1、第2外部記録部1031−2に並列に記録してもよい。図3においては外部記録部1031は2つであるが、第3、第4以降の外部記録部を備えることにより、さらに多くの信号を並列記録できる。また、1つの外部記録部に複数の信号を並列記録可能であれば、限られた数の外部記録部にその数倍の数の番組を同時録画できる。本変形例によれば、RF部12がひとつであっても、複数の番組を同時に録画できる。つまり、複数のチャネルに対するソフトウエアプログラムの処理がなされればよい。
【図面の簡単な説明】
【0078】
【図1】本発明の実施例に係る受信装置の構成を示す図である。
【図2】図2(a)−(b)は、図1の受信装置において処理される信号のスペクトルを示す図である。
【図3】図1の処理部の構成を示す図である。
【図4】図4(a)−(c)は、図3の各サブプロセッサからメインメモリへのアクセスを説明するための概要を示す図である。
【図5】図3のDMAC、メインメモリ、サブメモリの構成を示す図である。
【図6】図5の構成おけるコマンドのデータ構造を示す図である。
【図7】図7(a)−(b)は、DMAC、メインメモリ、サブメモリの別の構成を示す図である。
【図8】図3のワークメモリの構成を示す図である。
【図9】図3のサブプロセッサの構成を示す図である。
【図10】図3のコントロールレジスタの構成を示す図である。
【図11】図1のモニタにおける番組選択時の画面表示例その1を示す図である。
【図12】図1のモニタにおける番組選択時の画面表示例その2を示す図である。
【図13】図1のモニタにおける番組選択時の画面表示例その3を示す図である。
【符号の説明】
【0079】
10 アンテナ、 12 RF部、 14 AD部、 16 処理部、 18 操作部、 20 モニタ、 22 スピーカ、 30 BPF、 32 直交検波部、 34 FFT部、 36 復調部、 38 復号部、 40 MPEG解凍部、 42 選局部、 44 映像出力部、 46 音声出力部、 100 受信装置。
【技術分野】
【0001】
本発明は、受信技術に関し、特に周波数多重された信号を受信する受信方法および装置に関する。
【背景技術】
【0002】
地上波デジタルテレビジョン放送やNTSC(National Television Standards Committee)方式のテレビジョン放送において、複数のチャネルが周波数多重されている。複数のチャネルが周波数多重された放送波は、受信装置に受信される。受信装置は、放送波に対して、無線周波数から中間周波数への変換、および中間周波数からベースバンド周波数への変換を実行するとともに、バンドパスフィルタを使用しながら、所定のチャネルを抽出する。さらに、所定のチャネルでの番組が再生される(例えば、特許文献1参照。)。
【特許文献1】特開2001−326863号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
本発明者はこうした状況下、以下の課題を認識するに至った。受信装置は、受信した放送波に対して、無線周波数から中間周波数への変換を実行する際に、バンドパスフィルタによって、所定のチャネルを抽出する。以上の処理を実行すべき変換装置は、ひとつのチャネルを復調するためにひとつ必要とされる。そのため、ひとつのチャネルでの番組を視聴しながら、別のチャネルでの番組を録画するような場合、すなわち複数のチャネルを同時に復調する場合、複数の変換装置が必要とされる。その結果、受信装置の規模が大きくなってしまう。また、チャネルでの番組に含まれる映像データがMPEG(Moving Picture Expert Group)等によって符号化されている場合、復号の処理に所定の遅延が生じる。その結果、選択すべきチャネルを変更したときに、最初の映像が表示されるまでに時間がかかってしまう場合が生じる。
【0004】
本発明はこうした状況に鑑みてなされたものであり、その目的は、複数のチャネルに対する処理を並行に実行する受信技術を提供することにある。
【課題を解決するための手段】
【0005】
上記課題を解決するために、本発明のある態様の受信装置は、複数のチャネルが周波数多重された無線周波数の信号を受信する受信部と、受信部において受信した無線周波数の信号をデジタル信号に変換する変換部と、変換部によって変換されたデジタル信号に含まれた複数のチャネルのそれぞれを処理する処理部とを備える。処理部は、周波数多重された複数のチャネルのそれぞれに対応した帯域を有しつつ、デジタル信号を複数のチャネルに分離するバンドパスフィルタと、バンドパスフィルタによって分離された複数のチャネルのそれぞれを復調する復調部とを備える。
【0006】
「無線周波数の信号をデジタル信号に変換する」とは、無線周波数の信号をデジタル信号に直接変換する場合の他に、中間周波数を介してデジタル信号に変換する場合も含む。すなわち、無線周波数の信号が入力され、最終的にデジタル信号が出力されればよい。この態様によると、無線周波数の信号をそのままデジタル信号に変換し、変換したデジタル信号をチャネル単位に分離してから、分離したそれぞれのチャネルを処理するので、複数のチャネルに対する処理を並行に実行できる。
【0007】
処理部は、バンドパスフィルタと復調部の機能を有するソフトウエアプログラムと、ソフトウエアプログラムを実行する複数のプロセッサを備えてもよい。複数のプロセッサのそれぞれは、ソフトウエアプログラムにおける機能に含まれた複数の処理の内容のうち、少なくともひとつを割り当てられつつ、割り当てられた少なくともひとつの処理の内容を内部のキャッシュに固定的に格納してもよい。「処理の内容」とは、機能を実現するために、機能を構成している少なくともひとつのモジュールによってなされる動作に相当する。
【0008】
本発明の別の態様は、受信方法である。この方法は、複数のチャネルが周波数多重された無線周波数の信号を受信し、受信した無線周波数の信号をデジタル信号に変換した後、変換したデジタル信号に含まれた複数のチャネルのそれぞれを処理する受信方法であって、周波数多重された複数のチャネルのそれぞれに対応した帯域を有したバンドパスフィルタによって、デジタル信号を複数のチャネルに分離した後、分離された複数のチャネルのそれぞれを復調する。
【0009】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0010】
本発明によれば、複数のチャネルに対する処理を並行に実行できる。
【発明を実施するための最良の形態】
【0011】
本発明を具体的に説明する前に、概要を述べる。本発明の実施例は、地上波デジタルテレビジョン放送での無線周波数の信号を受信し、受信した無線周波数の信号に含まれた番組を再生する受信装置に関する。地上波デジタルテレビジョン放送での無線周波数の信号には、複数のチャネルが含まれている。無線周波数の信号に含まれた複数のチャネルに対する処理を実行するために、本実施例に係る受信装置は、以下のように構成される。受信装置は、受信した無線周波数の信号を中間周波数の信号に周波数変換する。その際、受信装置は、複数のチャネルのうちのいずれかを選択せずに、複数のチャネルが含められた形で周波数変換を実行する。また、複数のチャネルのそれぞれに対応した複数のバンドパスフィルタが備えられており、複数のバンドパスフィルタによって、中間周波数の信号が、複数のチャネルに分離される。受信装置は、分離された複数のチャネルのそれぞれに対して、復調処理やMPEGのデコードを実行することによって、番組を再生する。さらに、いずれかのチャネルに対応した番組を出力する。
【0012】
図1は、本発明の実施例に係る受信装置100の構成を示す。受信装置100は、アンテナ10、RF部12、AD部14、処理部16、操作部18を含む。また、処理部16は、BPF30と総称される第1BPF30a、第2BPF30b、第NBPF30n、直交検波部32と総称される第1直交検波部32a、第2直交検波部32b、第N直交検波部32n、FFT(Fast Fourier Transform)部34と総称される第1FFT部34a、第2FFT部34b、第NFFT部34n、復調部36と総称される第1復調部36a、第2復調部36b、第N復調部36n、復号部38と総称される第1復号部38a、第2復号部38b、第N復号部38n、MPEG解凍部40と総称される第1MPEG解凍部40a、第2MPEG解凍部40b、第NMPEG解凍部40n、選局部42、映像出力部44、音声出力部46を含む。さらに、受信装置100は、モニタ20、スピーカ22と接続される。
【0013】
RF部12は、アンテナ10を介して、複数のチャネルが周波数多重された無線周波数の信号を受信する。前述のごとく、無線周波数の信号は、地上波デジタルテレビジョン放送に対応する。また、RF部12は、複数のチャネルのうちのいずれかを選択することなく、複数のチャネルを含みつつ、無線周波数の信号を中間周波数の信号に変更する。図2(a)−(b)は、受信装置100において処理される信号のスペクトルを示す。図2(a)は、RF部12に受信される無線周波数の信号のスペクトルを示す。図中において、横軸が周波数を示す。なお、ここでは、複数のチャネルとして、9つのチャネルが含まれるものとする。また、ひとつのチャネルの帯域幅は、「6MHz」として規定されているので、無線周波数の信号の帯域幅は、「54MHz」として規定される。
【0014】
そのため、無線周波数の信号は、「470MHz」から「524MHz」の帯域に配置される。さらに、ひとつのチャネルは、OFDM(Orthogonal Frequency Division Multiplexing)変調方式による複数のサブキャリアによって構成されているものとする。ここで、無線周波数の信号に含まれるチャネルの数は、「9」でなくてもよい。図2(b)は、RF部12によって周波数変換された中間周波数の信号のスペクトルを示す。図示のごとく、中間周波数の信号は、無線周波数の信号と同様に複数のチャネルを有する。一方、中間周波数の信号は、「0MHz」から「54MHz」の帯域に配置される。
【0015】
図1に戻る。AD部14は、RF部12によって無線周波数の信号から変換された中間周波数の信号をデジタル信号に変換する。前述の複数のチャネルが含まれた中間周波数の信号をそのままデジタル信号に変換できるようなサンプリング周波数によって、AD部14は、デジタル信号への変換を実行する。処理部16は、AD部14によって変換されたデジタル信号に含まれた複数のチャネルのそれぞれを処理する。ここで、処理部16は、プロセッサにインストールされたプログラムによって、以下に説明する処理を実行する。
【0016】
複数のBPF30は、周波数多重された複数のチャネルのそれぞれに対応した帯域を有する。BPF30は、AD部14によって変換されたデジタル信号を入力し、複数のチャネルのそれぞれに対応した信号に分離する。BPF30は、例えば、FIR(Finite Impulse Response)フィルタによって構成される。直交検波部32は、複数のチャネルのそれぞれに対応した信号を直交検波する。その結果、直交検波部32は、複数のチャネルのそれぞれに対応したベースバンド信号を出力する。なお、ベースバンド信号は、同相成分と直交成分によって形成されるので、ふたつの信号線によって示されるべきであるが、ここでは、図を明瞭にするために、ひとつの信号線によって示されるものとする。
【0017】
FFT部34は、直交検波部32からのベースバンド信号をFFTする。すなわち、FFT部34は、時間領域の信号を周波数領域の信号に変換する。復調部36は、FFT部34によってFFTされた信号を復調する。なお、復調部36は、所定の変調方式に対応した復調を実行する。復号部38は、復調部36によって復調された信号を復号する。復号部38における復号は、図示しない送信装置においてなされる符号化方式に対応しているものとする。復号部38によって復号された信号は、図示しない送信装置においてMPEG符号化されているものとする。すなわち、チャネルにて送信される番組は、MPEG符号化されている。MPEG解凍部40は、復号部38によって復号された信号に対して、MPEG復号を実行する。その結果、MPEG解凍部40から、番組に含まれた映像データと音声データが出力される。
【0018】
操作部18は、ユーザから、番組の選択の指示を受けつける。操作部18は、ボタン等によって構成されており、ユーザが、選択すべき番組に対応したボタンを選択することによって、操作部18は指示を受けつける。操作部18は、受けつけた指示を選局部42に出力する。選局部42は、操作部18からの指示をもとに、MPEG解凍部40によって復号された複数の番組のうちの少なくともひとつを選択する。選局部42は、選択した番組を出力する。映像出力部44は、選択された番組のうち、映像データをモニタ20に出力し、モニタ20にて映像データを再生する。また、音声出力部46は、選択された番組のうち、映像データをスピーカ22に出力し、スピーカ22にて音声データを再生する。このような構成によって、操作部18が、ユーザから、選択すべき番組の変更を受けつけたとき、MPEG解凍部40は、変更になる番組を既に再生しているので、選局部42は、直ちに変更された番組を出力する。その結果、ユーザは、モニタ20とスピーカ22によって、変更した番組を直ちに視聴できる。
【0019】
以上の構成は、ハードウエア的には、任意のコンピュータのCPU、メモリ、その他のLSIで実現でき、ソフトウエア的にはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【0020】
前述のごとく、処理部16にインストールされているソフトウエアプログラムは、BPF30、復調部36等の機能を有する。また、処理部16は、ソフトウエアプログラムを実行するために、複数のプロセッサを備える。複数のプロセッサの詳細は、後述する。簡単に説明すると、複数のプロセッサのそれぞれには、ソフトウエアプログラムにおける機能に含まれた複数の処理の内容のうち、少なくともひとつが割り当てられる。ここで、処理の内容とは、例えば、BPF30における処理、直交検波部32における処理等に相当する。また、複数のプロセッサは、割り当てられた少なくともひとつの処理の内容を内部のキャッシュに固定的に格納する。例えば、ひとつのプロセッサにBPF30の処理が割り当てられる。以下において、処理部16の詳細を説明する。
【0021】
図3は、処理部16の構成を示す。処理部16は、情報処理コントローラ1011、メインメモリ1026、サブメモリ1027、外部記録部1031と総称される第1外部記録部1031−1、第2外部記録部1031−2を含む。また、情報処理コントローラ1011は、メインプロセッサ1021、DMAC1025、コントロールレジスタ1028、ワークメモリ1029、DC1030、サブプロセッサ1023と総称される第1サブプロセッサ1023−1、第2サブプロセッサ1023−2、第3サブプロセッサ1023−3、バス1032を含む。また、メインプロセッサ1021は、LS(ローカルストレージ)1022を含み、第1サブプロセッサ1023−1は、LS1024−1を含み、第2サブプロセッサ1023−2は、LS1024−2を含み、第3サブプロセッサ1023−3は、LS1024−3を含む。
【0022】
メインプロセッサ1021は、第1サブプロセッサ1023−1、第2サブプロセッサ1023−2、第3サブプロセッサ1023−3によるサブプロセッサプログラム実行(データ処理)のスケジュール管理と、情報処理コントローラ1011の全般的な管理とを行う。ただし、メインプロセッサ1021内で管理のためのプログラム以外のプログラムが動作するように構成することもできる。その場合には、メインプロセッサ1021はサブプロセッサとしても機能することになる。
【0023】
サブプロセッサ1023は、ひとつでもよいが、望ましくは複数とする。この例は、複数の場合である。第1サブプロセッサ1023−1、第2サブプロセッサ1023−2、第3サブプロセッサ1023−3は、メインプロセッサ1021の制御によって並列的かつ独立に、サブプロセッサプログラムを実行し、データを処理する。さらに、場合によってメインプロセッサ1021内のプログラムがサブプロセッサ1023内のサブプロセッサプログラムと連携して動作するように構成することもできる。後述する機能プログラムもメインプロセッサ1021内で動作するプログラムである。
【0024】
DMAC1025は、情報処理コントローラ1011に接続されたDRAM(ダイナミックRAM)などからなるメインメモリ1026および同様に接続されたSRAM(スタティックRAM)などからなるサブメモリ1027に格納されているプログラムおよびデータにアクセスする。DMAC1025を介すことにより、各サブプロセッサ1023およびメインメモリ1026間ではDMA方式によりデータ転送を行うことができ、高速化を実現できる。コントロールレジスタ1028は情報処理コントローラ1011内で処理されるべきサブプロセッサプログラムを、どのサブプロセッサ1023、さらにはサブプロセッサ1023内に複数個存在する後述するプレセッシングスレッドのいずれが処理するかを決定すると共に、サブプロセッサ1023によるサブプロセッサプログラム実行の進捗を管理するために使用される。ワークメモリ1029は情報処理コントローラ1011内に含まれるSRAMなどからなる作業用メモリであり、メインプロセッサ1021およびサブプロセッサ1023によってアクセスされる。
【0025】
DC1030は、情報処理コントローラ1011に接続された第1外部記録部1031−1、第2外部記録部1031−2にアクセスするものである。外部記録部1031は、固定ディスク(ハードディスク)でも、リムーバブルディスクでもよく、また、MO、CD±RW、DVD±RWなどの光ディスク、メモリディスク、SRAM(スタティックRAM)、ROMなど、各種のものを用いることができる。したがって、DC1030は、ディスクコントローラと称するが、外部記録部コントローラである。
【0026】
図3の例のように、情報処理コントローラ1011に対して外部記録部1031を複数接続できるように、情報処理コントローラ1011を構成することができる。メインプロセッサ1021、各サブプロセッサ1023、DMAC1025、コントロールレジスタ1028、ワークメモリ1029およびDC1030は、バス1032によって接続される。メインプロセッサ1021および各サブプロセッサ1023に対して、それぞれを特定できる識別子が、メインプロセッサIDおよびサブプロセッサIDとして割り当てられる。情報処理コントローラ1011は、ワンチップIC(集積回路)として構成することが望ましい。
【0027】
ここで、各サブプロセッサ1023からメインメモリ1026へのアクセスについて、説明する。上述したように、情報処理コントローラ1011内の各サブプロセッサ1023は、独立にサブプロセッサプログラムを実行し、データを処理するが、異なるサブプロセッサがメインメモリ1026内の同一領域に対して同時に読み出しまたは書き込みを行った場合には、データの不整合を生じ得る。そこで、サブプロセッサ1023からメインメモリ1026へのアクセスは、以下のような手順によって行う。サブメモリ1027およびワークメモリ1029についても同様に、異なるサブプロセッサ1023が同一領域に対してアクセスすることが考えられるが、ここではメインメモリ1026について記載する。
【0028】
図1の処理部16に含まれるBPF30等の処理のそれぞれが、メインプロセッサ1021やサブプロセッサ1023に固定的に配置される。すなわち、処理部16に含まれるBPF30等の処理を実行するためのプログラムおよびデータのそれぞれが、LS1022、LS1024等に固定的に格納される。
【0029】
図4(a)−(c)は、各サブプロセッサ1023からメインメモリ1026へのアクセスを説明するための概要を示す。図4(a)に示すように、メインメモリ1026は、アドレス指定可能な複数のメモリロケーション0〜Nによって構成される。各メモリロケーションに対しては、データの状態を示す情報を格納するための追加セグメント0〜Nが割り振られる。追加セグメントは、F/Eビット、サブプロセッサIDおよびLSアドレス(ローカルストレージアドレス)を含むものとされる。また、各メモリロケーションには、後述のアクセスキー0〜Nも割り振られる。F/Eビットは、以下のように定義される。
【0030】
F/Eビット=0は、サブプロセッサ1023によって読み出されている処理中のデータ、または空き状態であるため最新データではない無効データであり、読み出し不可であることを示す。また、F/Eビット=0は、当該メモリロケーションにデータ書き込み可能であることを示し、書き込み後に1に設定される。F/Eビット=1は、当該メモリロケーションのデータがサブプロセッサ1023によって読み出されておらず、未処理の最新データであることを示す。当該メモリロケーションのデータは読み出し可能であり、サブプロセッサ1023によって読み出された後に0に設定される。また、F/Eビット=1は、当該メモリロケーションがデータ書き込み不可であることを示す。さらに、上記F/Eビット=0(読み出し不可/書き込み可)の状態において、当該メモリロケーションについて読み出し予約を設定することは可能である。F/Eビット=0のメモリロケーションに対して読み出し予約を行う場合には、サブプロセッサ1023は、読み出し予約を行うメモリロケーションの追加セグメントに、読み出し予約情報として当該サブプロセッサ1023のサブプロセッサIDおよびLSアドレスを書き込む。
【0031】
その後、データ書き込み側のサブプロセッサ1023によって、読み出し予約されたメモリロケーションにデータが書き込まれ、F/Eビット=1(読み出し可/書き込み不可)に設定されたとき、あらかじめ読み出し予約情報として追加セグメントに書き込まれたサブプロセッサIDおよびLSアドレスに読み出される。複数のサブプロセッサ1023によってデータを多段階に処理する必要がある場合、このように各メモリロケーションのデータの読み出し/書き込みを制御することによって、前段階の処理を行うサブプロセッサ1023が、処理済みのデータをメインメモリ1026内の所定アドレスに書き込んだ後に即座に、後段階の処理を行う別のサブプロセッサ1023が前処理後のデータを読み出すことが可能となる。
【0032】
図4(b)に示すように、各サブプロセッサ1023内のLS1024も、アドレス指定可能な複数のメモリロケーション0〜Lによって構成される。各メモリロケーションに対しては、同様に追加セグメント0〜Lが割り振られる。追加セグメントは、ビジービットを含むものとされる。サブプロセッサ1023がメインメモリ1026内のデータを自分のLS1024のメモリロケーションに読み出すときは、読み出し先のメモリロケーションに対応するビジービットを1に設定して予約する。ビジービットが1であるメモリロケーションには、他のデータは格納することができない。LS1024のメモリロケーションに読み出し後、ビジービットは0になり、任意の目的に使用できるようになる。
【0033】
図4(a)に示すように、さらに、各情報処理コントローラと接続されたメインメモリ1026には、複数のサンドボックスが含まれる。サンドボックスは、メインメモリ1026内の領域を画定するものであり、各サンドボックスは、各サブプロセッサ1023に割り当てられ、当該サブプロセッサが排他的に使用できる。すなわち、各々のサブプロセッサ1023は、自分に割り当てられたサンドボックスを使用できるが、この領域を超えてデータのアクセスを行うことはできない。メインメモリ1026は、複数のメモリロケーション0〜Nから構成されるが、サンドボックスは、これらのメモリロケーションの集合である。すなわちひとつのサンドボックスは、ひとつまたは複数のメモリロケーションから構成される。
【0034】
さらに、メインメモリ1026の排他的な制御を実現するために、図4(c)に示すようなキー管理テーブルが用いられる。キー管理テーブルは、情報処理コントローラ1011内のSRAMのような比較的高速のメモリに格納され、DMAC1025と関連付けられる。ワークメモリ1029に格納されてもよい。キー管理テーブル内には、情報処理コントローラ1011内のサブプロセッサ1023の数と同数のエントリが存在し、各エントリにはサブプロセッサIDおよび、それに対応するサブプロセッサキーおよびキーマスクが関連付けられて格納されている。サブプロセッサ1023がメインメモリ1026を使用する際のプロセスは、以下のとおりである。まず、サブプロセッサ1023はDMAC1025に、読み出しまたは書き込みのコマンドを送信する。このコマンドには、自分のサブプロセッサIDと、アクセス要求先であるメインメモリ1026内のアドレスが含まれる。
【0035】
DMAC1025は、このコマンドを実行する前に、キー管理テーブルを参照して、アクセス要求元のサブプロセッサ1023のサブプロセッサキーを調べる。次に、DMAC1025は、調べたアクセス要求元のサブプロセッサキーと、アクセス要求先であるメインメモリ1026内の図4(a)に示したメモリロケーションに割り振られたアクセスキーとを比較して、ふたつのキーが一致した場合にのみ、上記のコマンドを実行する。
【0036】
図4(c)に示したキー管理テーブル上のキーマスクは、その任意のビットが1になることによって、そのキーマスクに関連付けられたサブプロセッサキーの対応するビットが0または1になることができる。例えば、サブプロセッサキーが1010であるとする。通常、このサブプロセッサキーによって1010のアクセスキーを持つサンドボックスへのアクセスだけが可能である。しかし、このサブプロセッサキーと関連付けられたキーマスクが0001に設定されている場合には、キーマスクのビットが1に設定された桁のみにつき、サブプロセッサキーとアクセスキーとの一致判定がマスクされ、このサブプロセッサキーの1010によってアクセスキーが1010または1011のいずれかであるアクセスキーを持つサンドボックスへのアクセスが可能となる。
【0037】
以上のようにして、メインメモリ1026のサンドボックスの排他性が実現される。すなわち、情報処理コントローラ1011内の複数のサブプロセッサ1023によってデータを多段階に処理する必要がある場合、以上のように構成することによって、前段階の処理を行うサブプロセッサ1023と、後段階の処理を行うサブプロセッサ1023のみが、メインメモリ1026内の所定アドレスにアクセスできるようになり、データを保護することができる。例えば、以下のように使用することが考えられる。まず、処理部16の起動直後においては、キーマスクの値はすべてゼロである。
【0038】
メインプロセッサ1021内のプログラムが実行され、サブプロセッサ1023内のサブプロセッサプログラムと連携動作するものとする。第1サブプロセッサ1023−1により実行された処理結果データを一旦メインメモリ1026に格納し、第2サブプロセッサ1023−2に送信したいときには、該当するメインメモリ領域は、当然どちらのサブプロセッサ1023からもアクセス可能である必要がある。そのような場合に、メインプロセッサ1021内のプログラムは、キーマスクの値を適切に変更し、複数のサブプロセッサからアクセスできるメインメモリ領域を設けることにより、サブプロセッサ1023による多段階的の処理を可能にする。
【0039】
次に、各サブプロセッサ1023からメインメモリ1026、サブメモリ1027へのアクセスを説明する。情報処理コントローラ1011内の各サブプロセッサ1023は、メインメモリ1026に対してと同様に、サブメモリ1027に対しても読み出しまたは書き込みが可能であるが、コマンドにはいくつかの種類が考えられ、優先度の高低があることもあり得る。そこで、各サブプロセッサ1023が正確にメインメモリ1026およびサブメモリ1027を使用するための手順を以下に記載する。
【0040】
図5は、DMAC1025、メインメモリ1026、サブメモリ1027の構成を示す。DMAC1025は、メインメモリコントロールレジスタ1033、サブメモリコントロールレジスタ1034、メインプロセッサ用リードコマンドブロック1035、メインプロセッサ用ライトコマンドブロック1036、アドレス変換レジスタ1037を含む。
【0041】
DMAC1025は、内部にメインメモリコントロールレジスタ1033とサブメモリコントロールレジスタ1034を有する。メインメモリコントロールレジスタ1033は、メインメモリ1026にアクセスするために使用されるレジスタであり、サブメモリコントロールレジスタ1034は、サブメモリ1027にアクセスするためのものである。まず、メインメモリコントロールレジスタ1033の使用手順について記す。メインメモリコントロールレジスタ1033は4つのブロックから構成され、各々が以下のようにメインメモリ1026へアクセスするコマンドを格納する。
【0042】
(1)優先コマンドブロック:優先度の高いコマンドを複数個格納する。当該ブロック内のコマンドは優先的に処理される。
(2)通常コマンドブロック1:通常のコマンドを複数個格納する。
(3)通常コマンドブロック2:同様に通常のコマンドを複数個格納する。通常コマンドブロック1と2には機能的な差はない。しかしながら例えば、メインメモリ1026へのアクセス実行前のコマンドを一方のブロックに格納し、実行後のコマンドをもう一方に格納することにより、実行前と実行後のコマンドを各々、集中的および連続的に処理できるという効果を得ることができる。
(4)オーダーコマンドブロック:正しい順番で処理される必要のあるコマンドを複数個格納する。つまり、各サブプロセッサ1023からのコマンドを、受信した順番にコマンド送信元であるサブプロセッサ識別子と共に格納する。これにより、受信した順番にコマンドを処理し、かつ同じ順番でコマンド送信元のサブプロセッサ1023へ実行結果を返信することができる。
【0043】
次にサブメモリコントロールレジスタ1034の使用手順について記す。サブメモリコントロールレジスタ1034も4つのブロックから構成され、各々が以下のようにサブメモリ1027へアクセスするコマンドを格納する。
【0044】
(1)優先コマンドブロック:優先度の高いコマンドを複数個格納する。当該ブロック内のコマンドは優先的に処理される。
(2)リードコマンドブロック:リードコマンドを複数個格納する。
(3)ライトコマンドブロック:ライトコマンドを複数個格納する。
(4)待ちコマンドブロック:サブメモリ1027内の任意の領域に対してアクセスを試みたが、対象領域がロックされており不可であったコマンドを複数個格納する。ロック解除時には優先コマンドブロックへ移動する。
【0045】
そして、各サブプロセッサ1023は例えば、図6に示されるコマンドによってメインメモリ1026またはサブメモリ1027へアクセスする。図6は、コマンドのデータ構造を示す。アクセス実行後のメインメモリ1026またはサブメモリ1027からの実行結果のレスポンスも同一構造である。当該コマンド/レスポンスにおいて、コマンドタイプはリードとライトがある。優先コマンド識別子は、当該コマンドは優先度が高いことを示す。通常コマンド識別子はメインメモリ1026へのアクセス時のものであり、当該コマンドが通常コマンドブロック1または2に格納されることを示す。チェーンコマンド識別子もメインメモリ1026へのアクセス時のものであり、当該コマンドが直前または直後のコマンドと共に連続的なアクセスが必要であることを示す。または連続するコマンド列の通し番号でもよい。
【0046】
チェーンコマンド識別子がセットされたコマンドはオーダーコマンドブロックに格納されるが、処理の優先度は優先コマンドブロック内のコマンドよりも高いものとする。アドレスは、コマンドを実行するメインメモリ1026またはサブアドレス内のアドレスを示す。また、ワークメモリ1029内のアドレスでもよい。サブプロセッサ識別子はコマンド送信元であるサブプロセッサ1023の識別子である。プレセッシングスレッド子識別子はコマンド送信元であるプレセッシングスレッド識別子の識別子であり、詳細は後述する。OK/NGはコマンドの成功/失敗を示す。データは、リードコマンド実行時にレスポンスに含まれる読み出されたデータか、またはライトコマンド実行時にコマンドに含まれる書き込まれるデータである。
【0047】
図5に戻る。各サブプロセッサ1023がメインメモリ1026に正確にアクセスするためのメインメモリコントロールレジスタ1033、同様にサブメモリ1027に正確にアクセスするためのサブメモリコントロールレジスタ1034の他に、メインプロセッサ1021がメインメモリ1026またはサブメモリ1027にアクセスするためのリードコマンドおよびライトコマンドを各々、複数個格納できる、メインプロセッサ用リードコマンドブロック1035およびメインプロセッサ用ライトコマンドブロック1036を情報処理コントローラ1011内に設けることも考えられる。
【0048】
さらに、複数のサブプロセッサがDMAC1025に対して、優先度の同じコマンドを同じタイミングで送信した場合には、以下の手順に従うものとする。すなわちDMAC1025は内部に、メモリアクセスに成功した最後のサブプロセッサ1023を示すポインタを有する。そして、複数のサブプロセッサ1023から優先度の同じメモリアクセスのコマンドを、同じタイミングで受信したときは、当該ポインタより値が大きく、かつ差分の少ないサブプロセッサ1023からのコマンドを優先させるものとする。この際、一番大きいポインタ値の次は、一番小さいポインタ値とする。
【0049】
次に、各サブプロセッサ1023からメインメモリ1026に正確にアクセスするためのサブメモリ1027へのアクセスについて説明する。DRAM等により構成されるメインメモリ1026および、SRAM等により構成されるサブメモリ1027は当然のことながら、各々の素子の構造が異なるため使用目的も異なってくる。メインメモリ1026とサブメモリ1027を組み合わせた使用方法の一例として、各サブプロセッサ1023がメインメモリ1026にアクセスするときのアドレス変換を、サブメモリ1027が担うことが考えられる。そのための手順を図7(a)−(b)を用いて記載する。図7(a)−(b)は、DMAC1025、メインメモリ1026、サブメモリ1027の別の構成を示す。
【0050】
前述の通り、メインメモリ1026は複数のメモリロケーションによって構成され、さらに、ひとつのサンドボックスはひとつまたは複数のメモリロケーションから構成される。そして、各サブプロセッサ1023は自分に割り当てられたサンドボックスを排他的に使用できる。ここで例えば情報処理コントローラ1011内のあるサブプロセッサ1023に、メインメモリ1026内のサンドボックス1、2、3が割り当てられているものとする。サンドボックス1、2、3の領域は各々0x200〜0x2FF、0x800〜0x8FF、0xF00〜0xFFFとし、各サンドボックスは先頭アドレスによって識別されるものとする。すなわち割り当てられた各サンドボックスはアドレスが連続していなくても構わない。
【0051】
図7(a)においてサブプロセッサ1023は、サンドボックス1、2、3からデータを読み出すときに、まず、DMAC1025内のアドレス変換レジスタ1037にアクセスする。アドレス変換レジスタ1037はサブプロセッサ1023と、当該サブプロセッサ1023に割り当てられたサンドボックスとを関連付けたレジスタであり、サブプロセッサ1023の数と同数のエントリから構成される。ここではQ1で示されるエントリが、当該サブプロセッサ1023に対応するものとする。サブプロセッサ1023は、自分と対応するQ1の値を読み出す。さらに、読み出したQ1の値(0x80)で示されるサブメモリ1027内の第1のアドレスからデータ(0x20)を読み出す。ここで、サンドボックス1の領域はQ1の値に基づいて特定できる。例えばQ1の値が0x80であるとき、当該値を16倍した数値(0x800)がサンドボックス1の先頭アドレスを示すようにすることが考えられる。そして当該先頭アドレスに255を加算した値(0x8FF)が終了アドレスとなる。
【0052】
サブメモリ1027内の第1のアドレスからデータ(0x20)で示される、同じサブメモリ1027内の第2のアドレスからデータ(0xF0)を読み出す。ここで同様にサンドボックス2は、サブメモリ1027内の第1のアドレスから読み出したデータ(0x20)に基づいて特定できる。すなわち、メインメモリ1026内の0x200〜0x2FFの領域がサンドボックス2である。サブメモリ1027内の第2のアドレスから読み出したデータ(0xF0)で示される、同じサブメモリ1027内の第3のアドレスからデータ(0x00)を読み出す。0x00は割り当てられたサンドボックスの終了を示す。また同様にサンドボックス3は、サブメモリ1027内の第2のアドレスから読み出したデータ(0xF0)に基づいて特定できる。すなわち、メインメモリ1026内の0xF00〜0xFFFの領域がサンドボックス3である。以上のようにして特定されたサンドボックス1、2、3からデータを読み出すことができる。このようにして各サブプロセッサ1023は、自分に割り当てられたサンドボックスのアドレスが非連続な場合でも、正確にアクセスできる。
【0053】
次に、同じサブプロセッサ1023がメインメモリ1026内の新たなサンドボックスにデータを書き込み、当該サンドボックスをアドレス変換レジスタ1037内のQ1で管理されるサンドボックスのグループに追加するための手順を図7(b)を用いて記載する。当該サブプロセッサ1023は、メインメモリ1026内の0x000〜0x0FFの領域であるサンドボックス4にデータを書き込んだとする。まず、Q1の値を読み出す(初期は0x80)。そして、新たにデータを書き込んだサンドボックス4を特定できる、サブメモリ1027内のアドレスに、先に読み出したQ1の値(0x80)を書き込む。例えば今回は0x000〜0x0FFの領域にデータを書き込んだので、先頭アドレスである0x000を16で割った0x00で示されるサブメモリ1027内のアドレスにQ1の値(0x80)を書き込むことが考えられる。さらに、Q1の値(0x80)を書き込んだサブメモリ1027内のアドレス(0x00)を新たなQ1の値として、アドレス変換レジスタ1037内のQ1に書き込む。
【0054】
以上のようにして各サブプロセッサ1023は、新たなサンドボックスを既存のサンドボックスのグループに追加できる。この場合も、各サンドボックスのアドレスが非連続であっても構わない。また既存のサンドボックスのグループが存在せず、最初のサンドボックスをサブメモリ1027およびアドレス変換レジスタ1037と関連付ける際にも上記の方法は適用できる。
【0055】
次に、メインプロセッサ1021および各サブプロセッサ1023からワークメモリ1029へのアクセスを説明する。メインメモリ1026は前述の通り、DRAM等により構成され、さらにDMA方式によりデータデータ通信が行われるため、各サブプロセッサは大容量のメインメモリ1026を高速に使用できる。またサブメモリ1027はSRAM等により構成され、こちらも高速に使用できる。ここで、メインプロセッサ1021および各サブプロセッサ1023が、情報処理コントローラ1011に接続されたメインメモリ1026およびサブメモリ1027と共に、情報処理コントローラ1011内に含まれるワークメモリ1029を作業用メモリとして共有して使用できれば、さらなる高速化が実現できる。また、当該ワークメモリ1029により簡単な数値演算ができれば効率的である。ワークメモリ1029は上述の通り、SRAM等により構成されるため素子の構造上、DRAMのような大容量化は期待できないものの、非常に高速である。
【0056】
以下に、メインプロセッサ1021および各サブプロセッサ1023がワークメモリ1029へアクセスする場合の手順を記す。図8は、ワークメモリ1029の構成を示す。ワークメモリ1029はコントローラ1038とRAM1039とを含む。RAM1039はSRAM等が考えられるが、それに限定されるわけではない。また、RAM1039は複数のブロックから構成される。各ブロックにはアドレスが割り当てられ、データを記憶できる。メインプロセッサ1021および各サブプロセッサ1023はコントローラ1038を介して、RAM1039へアクセスする。
【0057】
具体的にはメインプロセッサ1021および各サブプロセッサ1023は、コントローラ1038へコマンド、アドレスまたはデータ等を送信し、コントローラ1038はそれらに沿ってRAM1039へアクセスする。処理実行後にコントローラ1038は、コマンド送信元であるメインプロセッサ1021またはサブプロセッサ1023へコマンド実行結果を返信するという手順が踏まれる。各サブプロセッサ1023がワークメモリ1029へアクセスするときのコマンドは例えば、図6に示され、メインメモリ1026またはサブメモリ1027へのアクセス時に用いるものと同様である。処理実行後のワークメモリ1029からの実行結果のレスポンスも同一構造である。
【0058】
だたし、ワークメモリ1029へアクセスする場合は、図6に示されるコマンドにおいて優先コマンド識別子、通常コマンド識別子、チェーンコマンド識別子、プレセッシングスレッド識別子は基本的には使用しない。しかしながらワークメモリ1029が、これらの識別子に対応可能であれば使用してもよい。コマンドタイプしてはいくつか考えられる。
(a)リード
ワークメモリ1029内のデータを読み出すために使用される。メインプロセッサ1021および各サブプロセッサ1023はリードコマンドと共に所望のデータを記憶するRAM内のブロックのアドレスも送信する。実行結果として、リードコマンドの成功/失敗を示すOK/NGと読み出されたデータが返信される。
【0059】
(b)ライト
ワークメモリ1029内にデータを書き込むために使用される。メインプロセッサ1021および各サブプロセッサ1023はライトコマンド、データ、当該データを記憶させるRAM内のブロックのアドレスを送信する。実行結果として、ライトコマンドの成功/失敗を示すOK/NGが返信される。
(c)加算
ワークメモリ1029内のデータを加算するために使用される。メインプロセッサ1021および各サブプロセッサ1023は加算コマンド、加算させるデータを記憶するRAM内のブロックのアドレスを送信する。コントローラは受信したアドレスのブロックにおけるデータに1を加算し、上書きする。実行結果として、加算コマンドの成功/失敗を示すOK/NGが返信される。
【0060】
(d)セット
ワークメモリ1029のデータをビット単位で操作するために使用される。メインプロセッサ1021および各サブプロセッサ1023はセットコマンド、操作するデータを記憶するRAM内のブロックのアドレス、マスクデータを送信する。コントローラは受信したマスクデータと、同様に受信したアドレスのブロックにおけるデータを比較する。マスクデータにおいて値が1であるビットと同じ位置の、データにおけるビットの値を1にする。実行結果として、セットコマンドの完了を示すCompletedが返信される。また、このときセットコマンド実行前のデータも返信することにより、コマンドの成功/失敗を確認できるようにしてもよい。
【0061】
(e)クリア
ワークメモリ1029のデータをビット単位で操作するために使用される。メインプロセッサ1021および各サブプロセッサ1023はクリアコマンド、操作するデータを記憶するRAM内のブロックのアドレス、マスクデータを送信する。コントローラは受信したマスクデータと、同様に受信したアドレスのブロックにおけるデータを比較する。マスクデータにおいて値が1であるビットと同じ位置の、データにおけるビットの値を0にする。実行結果として、クリアコマンドの完了を示すCompletedが返信される。また、このときクリアコマンド実行前のデータも返信することにより、コマンドの成功/失敗を確認できるようにしてもよい。
【0062】
以上のようにメインプロセッサ1021および各サブプロセッサ1023は、大容量のメインメモリ1026および高速なサブメモリ1027に加えて、ワークメモリ1029も併用できる。例えば、ワークメモリ1029をメインメモリ1026またはサブメモリ1027のキャッシュとして利用すればさらなる高速化が期待できる。
【0063】
次に、各サブプロセッサ1023内のプレセッシングスレッドについて説明する。前述した通り、情報処理コントローラ1011内の各サブプロセッサ1023は構造上、独立している。従って各々が、独立にサブプロセッサプログラムを実行し、データを処理できる。さらに各サブプロセッサ1023が内部に、仮想的に独立した複数のプレセッシングスレッドを有することも考えられる。図9は、サブプロセッサ1023の構成を示す。サブプロセッサ1023は内部に有するアービタ1040を介してバス1032と接続される。アービタ1040は外部からの信号を、適切なプレセッシングスレッドに通知する役割を担う。サブプロセッサ1023内にはまた、LS1024とプレセッシングスレッド0、1、2、3(各々1041、1042、1043、1044)が含まれる。図9において、各プレセッシングスレッドは独立して図示されているが、あくまでも仮想的な独立である。プレセッシングスレッドは各々、プレセッシングスレッド識別子が割り当てられ、独立かつ並列に動作可能である。
【0064】
ここで各プレセッシングスレッドは、メインメモリ1026、サブメモリ1027またはワークメモリ1029に対して独立してアクセスを行うため、コマンド送信元であるプレセッシングスレッドへ確実に、レスポンスが返信されるようにする必要がある。そのための手順を以下に記す。各プレセッシングスレッドが各々のメモリへアクセスするときのコマンドは例えば図6に示され、つまり各サブプロセッサ1023がメモリアクセス時に用いるものと同様である。処理実行後の各メモリからの実行結果のレスポンスも同一構造である。図6についての説明は先に述べた通りであるが、サブプロセッサ識別子はコマンド送信元であるサブプロセッサ1023の識別子である一方、プレセッシングスレッド識別子はさらに、当該サブプロセッサ1023内のいずれのプレセッシングスレッドがコマンド送信元であるかを識別するためのものである。
【0065】
メインメモリ1026、サブメモリ1027またはワークメモリ1029からのレスポンスはまずサブプロセッサ識別子に基づき、コマンド送信元であるサブプロセッサ1023へ返信される。さらに、サブプロセッサ1023内のアービタ1040によりプレセッシングスレッド識別子に基づき、コマンド元であるプレセッシングスレッドへ返信される。ここで、サブプロセッサ1023内の複数のプレセッシングスレッドのいずれでも構わない場合、例えば同じ処理を行うようなときにはプレセッシングスレッド識別子に基づかず、処理負荷の軽いプレセッシングスレッドへ返信するようにしてもよい。またはメインメモリ1026、サブメモリ1027またはワークメモリ1029からレスポンスを受信する度に、複数あるプレセッシングスレッドのいずれかひとつを順繰りに選択し、選択されたプレセッシングスレッドへ当該レスポンスを返信するようにしてもよい。以上のようにして、各サブプロセッサ1023内の複数のプレセッシングスレッドが、メインメモリ1026、サブメモリ1027またはワークメモリ1029に対して独立してアクセスを行ったとしても、コマンド送信元であるプレセッシングスレッドへ確実に、レスポンスが返信されるようにすることができる。
【0066】
次に、コントロールレジスタ1028によるサブプロセッサプログラム管理について説明する。情報処理コントローラ1011内に複数のサブプロセッサ1023が存在し、各サブプロセッサ1023内はさらに複数のプレセッシングスレッドを有する状態において、情報処理コントローラ1011内で処理されるべきサブプロセッサプログラムを、どのプレセッシングスレッドに処理させるかを決定することは、情報処理コントローラの高速化を実現する上で非常に重要である。そこでコントロールレジスタ1028を使用することにより、各プレセッシングスレッドに対する適切なサブプロセッサプログラム処理の割り当てを実現し、情報処理コントローラを効率的に動作させる手順を以下に記す。図10はコントロールレジスタ1028の構成を示す。図示されている通り、コントロールレジスタ1028は処理待ちサブプロセッサプログラムレジスタ1045とサブプロセッサプログラム処理進捗レジスタ1046を含む。
【0067】
まず、処理待ちサブプロセッサプログラムレジスタ1045の使用手順について記載する。メインプロセッサ1021は、情報処理コントローラ1011内で処理されるべきサブプロセッサプログラムが発生した場合には、処理待ちサブプロセッサプログラムレジスタ1045内に、当該サブプロセッサプログラムまたは関連データが格納されているメインメモリ1026、サブメモリ1027、ワークメモリ1029またはLSにおけるアドレスを書き込む。処理されるべきサブプロセッサプログラムが存在しない状態においては、処理待ちサブプロセッサプログラムレジスタ1045の値はゼロである。すべてのプレセッシングスレッドは、自分が何もサブプロセッサプログラムを実行していない間は、定期的または非定期的に処理待ちサブプロセッサプログラムレジスタ1045の値を読み出し、その結果、ゼロでない値を読み出したプレセッシングスレッドが処理を行うものとする。
【0068】
それと共に当該プレセッシングスレッドは、処理待ちサブプロセッサプログラムレジスタ1045にゼロの値を書き込む。処理を行うプレセッシングスレッドは、読み出した処理待ちサブプロセッサプログラムレジスタ1045の値に基づき、処理対象となるサブプロセッサプログラムまたは関連データを読み出し、実行する。このときサブプロセッサプログラムは既に当該プレセッシングスレッドを有するサブプロセッサ1023に読み出されており、サブプロセッサプログラムの読み出しは不要であることも考えられる。このようにして、サブプロセッサプログラムを実行していない、処理能力に余裕のあるプレセッシングスレッドに迅速にサブプロセッサプログラムを割り当てることができ、情報処理コントローラを効率的に動作させることができる。
【0069】
次に、サブプロセッサプログラム処理進捗レジスタ1046の使用手順について記載する。サブプロセッサプログラム処理進捗レジスタ1046はサブプロセッサプログラム処理を割り当てられたプレセッシングスレッドが、処理進捗状況を書き込むための2ビット(x、y)のレジスタである。例えば(0、0)は未処理であり、(0、1)は処理中(段階1)であり、(1、0)は処理中(段階2)であり、(1、1)は処理完了を示す。さらに2ビットと共に、プロセッシングスレッド識別子を書き込むことにより処理を割り当てられたプレセッシングスレッドを示すようにしてもよい。または、情報処理コントローラ1011内の各プロセッシングスレッド毎に、サブプロセッサプログラムの処理進捗状況を書き込むためのレジスタを設けてもよい。
【0070】
サブプロセッサプログラム処理進捗レジスタ1046は、情報処理コントローラ1011内のメインプロセッサ1021、すべてのサブプロセッサ1023およびすべてのプレセッシングスレッドがアクセス可能であり、サブプロセッサプログラムの処理進捗状況を的確に把握できる。さらに、各プロセッシングスレッド毎に処理進捗状況レジスタを設けた場合には、複数のサブプロセッサプログラムが同時に実行されている間も進捗把握が可能である。以上が、各サブプロセッサ1023が内部に、仮想的に独立した複数のプレセッシングスレッドを有している場合のプレセッシングスレッド管理方法の例である。なお、以降の説明においては、サブプロセッサ1023が何らかの処理を行う場合には、当該サブプロセッサ1023内部のいずれのプレセッシングスレッドが処理を行っても構わないものとし、プレセッシングスレッドの違いによる実行結果の差異は生じないものとする。従って、サブプロセッサの処理内容について、内部に有する複数のプレセッシングスレッドがどの様に処理を分担するかという詳細については言及しないものとする。
【0071】
以上の構成による受信装置100の動作を説明する。RF部12は、アンテナ10を介して、無線周波数の信号を受信する。RF部12は、無線周波数の信号の帯域を維持するように、無線周波数の信号を中間周波数の信号に変換する。AD部14は、中間周波数の信号をデジタル信号に変換する。処理部16は、デジタル信号に含まれた複数のチャネルのそれぞれを単位にして、チャネルに対する処理を実行する。また、処理部16は、複数のプロセッサによって構成される。その際、チャネルに対する処理は、BPF30、直交検波部32、FFT部34、復調部36、復号部38、MPEG解凍部40等によって構成され、それぞれが所定のプロセッサに割り当てられる。なお、そのときの割り当ては、固定的になされる。
【0072】
本発明の実施例によれば、無線周波数の信号をそのままデジタル信号に変換し、変換したデジタル信号をチャネル単位に分離してから、分離したそれぞれのチャネルを処理するので、複数のチャネルに対する処理を並行に実行できる。また、複数のチャネルのそれぞれに対する処理をソフトウエアプログラムによって実現するので、処理の内容を容易に変更できる。また、複数のチャネルに対する処理に相当するソフトウエアプログラムを複数のプロセッサによって実行するので、処理を高速化できる。また、ソフトウエアプログラムに含まれる複数の処理と、複数のプロセッサとを固定的に対応づけるので、それぞれのプロセッサは、対応すべき処理をキャッシュに格納できる。また、キャッシュに格納できるので、処理を高速にできる。また、複数のチャネルに対する処理を並列に実行するので、チャネルを変更したときであっても、小さい遅滞にて変更したチャネルを出力できる。
【0073】
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【0074】
本実施例において、処理部16は、選局部42によって、複数のチャネルのうちのひとつを選択し、選択したチャネルを出力する。しかしながらこれに限らず例えば、処理部16は、複数のチャネルを並列に出力してもよい。複数のチャネルを並列に出力する場合の実装例として、モニタ20およびスピーカ22の組み合わせが複数個あることが考えられる。すなわち、処理部16によって出力された別々の番組が、各モニタおよびスピーカに出力されることになる。この時、映像出力部44および音声出力部46の組み合わせも複数個必要になる。本変形例によれば、RF部12がひとつであっても、複数の番組を同時に再生できる。
【0075】
ここで、操作部18および選局部42によって任意のチャネルを選択する際の画面表示について述べる。モニタ20およびスピーカ22には、常に1つの番組のみがフルサイズで出力されるだけでなく、番組選択時には例えば図11、図12に示すように、複数の番組のサムネイル映像がマルチ表示されることが考えられる。図11、図12内のch1、2・・・Nは各々、各チャンネルのサムネイル映像である。これによりユーザは、見たい番組を視覚的に即座に選ぶことができる。このマルチ表示を実現するためには、選局部42が映像のサイズ縮小機能および、複数の縮小された映像のレイアウト機能を有している必要がある。
【0076】
さらに、ユーザにとって操作し易い画面表示として図13に示すものが考えられる。図13においては、複数のサムネイル映像が十字型に表示されている。横軸は映像のソース元であるメディアを示し、縦軸はそのメディアをソース元とする映像のサムネイル映像である。ユーザは例えば操作部18の十字キーを用いてサムネイル映像を選択する。図13においては現在テレビの3チャンネルが選択されているが、十字キーの左右キーを押すことにより各々、HD(HardDisk)、DVDをソース元のメディアとして選択できる。HD、DVDは各々、第1外部記録部1031−1、第2外部記録部1031−2に対応する。メディア選択後に十字キーの上下キーを押すことにより任意のサムネイル映像を選択し、決定キーにより決定する。図13においては3チャンネルが選択されているが、十字キーの上下キーを用いて他チャンネルも選択できる。ユーザにより選択、決定されたサムネイル映像はフルサイズで表示されることになる。このようにしてユーザは、様々なメディア上の所望の映像コンテンツに対して即座・簡単にアクセスできる。
【0077】
また、処理部16は、MPEG解凍部40に入力する前の信号を第1外部記録部1031−1、第2外部記録部1031−2に並列に記録してもよい。図3においては外部記録部1031は2つであるが、第3、第4以降の外部記録部を備えることにより、さらに多くの信号を並列記録できる。また、1つの外部記録部に複数の信号を並列記録可能であれば、限られた数の外部記録部にその数倍の数の番組を同時録画できる。本変形例によれば、RF部12がひとつであっても、複数の番組を同時に録画できる。つまり、複数のチャネルに対するソフトウエアプログラムの処理がなされればよい。
【図面の簡単な説明】
【0078】
【図1】本発明の実施例に係る受信装置の構成を示す図である。
【図2】図2(a)−(b)は、図1の受信装置において処理される信号のスペクトルを示す図である。
【図3】図1の処理部の構成を示す図である。
【図4】図4(a)−(c)は、図3の各サブプロセッサからメインメモリへのアクセスを説明するための概要を示す図である。
【図5】図3のDMAC、メインメモリ、サブメモリの構成を示す図である。
【図6】図5の構成おけるコマンドのデータ構造を示す図である。
【図7】図7(a)−(b)は、DMAC、メインメモリ、サブメモリの別の構成を示す図である。
【図8】図3のワークメモリの構成を示す図である。
【図9】図3のサブプロセッサの構成を示す図である。
【図10】図3のコントロールレジスタの構成を示す図である。
【図11】図1のモニタにおける番組選択時の画面表示例その1を示す図である。
【図12】図1のモニタにおける番組選択時の画面表示例その2を示す図である。
【図13】図1のモニタにおける番組選択時の画面表示例その3を示す図である。
【符号の説明】
【0079】
10 アンテナ、 12 RF部、 14 AD部、 16 処理部、 18 操作部、 20 モニタ、 22 スピーカ、 30 BPF、 32 直交検波部、 34 FFT部、 36 復調部、 38 復号部、 40 MPEG解凍部、 42 選局部、 44 映像出力部、 46 音声出力部、 100 受信装置。
【特許請求の範囲】
【請求項1】
複数のチャネルが周波数多重された無線周波数の信号を受信する受信部と、
前記受信部において受信した無線周波数の信号をデジタル信号に変換する変換部と、
前記変換部によって変換されたデジタル信号に含まれた複数のチャネルのそれぞれを処理する処理部とを備え、
前記処理部は、
周波数多重された複数のチャネルのそれぞれに対応した帯域を有しつつ、デジタル信号を複数のチャネルに分離するバンドパスフィルタと、
前記バンドパスフィルタによって分離された複数のチャネルのそれぞれを復調する復調部とを備えることを特徴とする受信装置。
【請求項2】
前記処理部は、
前記バンドパスフィルタと前記復調部の機能を有するソフトウエアプログラムと、
前記ソフトウエアプログラムを実行する複数のプロセッサを備え、
前記複数のプロセッサのそれぞれは、ソフトウエアプログラムにおける機能に含まれた複数の処理の内容のうち、少なくともひとつを割り当てられつつ、割り当てられた少なくともひとつの処理の内容を内部のキャッシュに固定的に格納することを特徴とする請求項1に記載の受信装置。
【請求項3】
前記復調部において復調した複数のチャネルをそれぞれ復号する復号部と、
前記復号部によって復号された複数のチャネルのうちの少なくともひとつを選択してから出力する出力部とをさらに備え、
前記復号部の機能は、前記処理部におけるソフトウエアプログラムによって実現されることを特徴とする請求項2に記載の受信装置。
【請求項4】
前記復調部において復調した複数のチャネルをそれぞれ復号する復号部と、
前記復号部によって復号された複数のチャネルを並列に出力する出力部とをさらに備え、
前記復号部の機能は、前記処理部におけるソフトウエアプログラムによって実現されることを特徴とする請求項2に記載の受信装置。
【請求項5】
複数のチャネルが周波数多重された無線周波数の信号を受信し、受信した無線周波数の信号をデジタル信号に変換した後、変換したデジタル信号に含まれた複数のチャネルのそれぞれを処理する受信方法であって、
周波数多重された複数のチャネルのそれぞれに対応した帯域を有したバンドパスフィルタによって、デジタル信号を複数のチャネルに分離した後、分離された複数のチャネルのそれぞれを復調することを特徴とする受信方法。
【請求項6】
複数のチャネルが周波数多重された無線周波数の信号を変換したデジタル信号を入力するステップと、
周波数多重された複数のチャネルのそれぞれに対応した帯域を有したバンドパスフィルタによって、デジタル信号を複数のチャネルに分離するステップと、
分離された複数のチャネルのそれぞれを復調するステップと、
をコンピュータに実行させるためのプログラム。
【請求項1】
複数のチャネルが周波数多重された無線周波数の信号を受信する受信部と、
前記受信部において受信した無線周波数の信号をデジタル信号に変換する変換部と、
前記変換部によって変換されたデジタル信号に含まれた複数のチャネルのそれぞれを処理する処理部とを備え、
前記処理部は、
周波数多重された複数のチャネルのそれぞれに対応した帯域を有しつつ、デジタル信号を複数のチャネルに分離するバンドパスフィルタと、
前記バンドパスフィルタによって分離された複数のチャネルのそれぞれを復調する復調部とを備えることを特徴とする受信装置。
【請求項2】
前記処理部は、
前記バンドパスフィルタと前記復調部の機能を有するソフトウエアプログラムと、
前記ソフトウエアプログラムを実行する複数のプロセッサを備え、
前記複数のプロセッサのそれぞれは、ソフトウエアプログラムにおける機能に含まれた複数の処理の内容のうち、少なくともひとつを割り当てられつつ、割り当てられた少なくともひとつの処理の内容を内部のキャッシュに固定的に格納することを特徴とする請求項1に記載の受信装置。
【請求項3】
前記復調部において復調した複数のチャネルをそれぞれ復号する復号部と、
前記復号部によって復号された複数のチャネルのうちの少なくともひとつを選択してから出力する出力部とをさらに備え、
前記復号部の機能は、前記処理部におけるソフトウエアプログラムによって実現されることを特徴とする請求項2に記載の受信装置。
【請求項4】
前記復調部において復調した複数のチャネルをそれぞれ復号する復号部と、
前記復号部によって復号された複数のチャネルを並列に出力する出力部とをさらに備え、
前記復号部の機能は、前記処理部におけるソフトウエアプログラムによって実現されることを特徴とする請求項2に記載の受信装置。
【請求項5】
複数のチャネルが周波数多重された無線周波数の信号を受信し、受信した無線周波数の信号をデジタル信号に変換した後、変換したデジタル信号に含まれた複数のチャネルのそれぞれを処理する受信方法であって、
周波数多重された複数のチャネルのそれぞれに対応した帯域を有したバンドパスフィルタによって、デジタル信号を複数のチャネルに分離した後、分離された複数のチャネルのそれぞれを復調することを特徴とする受信方法。
【請求項6】
複数のチャネルが周波数多重された無線周波数の信号を変換したデジタル信号を入力するステップと、
周波数多重された複数のチャネルのそれぞれに対応した帯域を有したバンドパスフィルタによって、デジタル信号を複数のチャネルに分離するステップと、
分離された複数のチャネルのそれぞれを復調するステップと、
をコンピュータに実行させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2006−319763(P2006−319763A)
【公開日】平成18年11月24日(2006.11.24)
【国際特許分類】
【出願番号】特願2005−141352(P2005−141352)
【出願日】平成17年5月13日(2005.5.13)
【出願人】(395015319)株式会社ソニー・コンピュータエンタテインメント (871)
【Fターム(参考)】
【公開日】平成18年11月24日(2006.11.24)
【国際特許分類】
【出願日】平成17年5月13日(2005.5.13)
【出願人】(395015319)株式会社ソニー・コンピュータエンタテインメント (871)
【Fターム(参考)】
[ Back to top ]