(57)【要約】【課題】コア間のデータ通信のオーバーヘッドを低減し得る信号処理装置を得る。【解決手段】メモリ４は、コア６Ａ，６Ｂのうちのコア６Ａのみがアクセス可能なデータ記憶領域４２Ａと、コア６Ａ，６Ｂのうちのコア６Ｂのみがアクセス可能なデータ記憶領域４２Ｂと、コア６Ａ，６Ｂの双方がアクセス可能なデータ記憶領域４３とを有している。データ記憶領域４２Ａ，４２Ｂの一方に記憶されているデータＤを、データ記憶領域４３に書き込み、データ記憶領域４３に書き込まれたデータＤを、データ記憶領域４２Ａ，４２Ｂの他方に書き込むことにより、データ記憶領域４２Ａ，４２Ｂ間でのデータＤの送受信が実行される。【選択図】図３
2009193268.tif 000002
【特許請求の範囲】
【請求項１】
スレッドを処理するコアがスレッドごとに予め割り当てられるタイプのマルチコアプロセッサと、
前記マルチコアプロセッサがアクセス可能なメモリと
を備え、
前記マルチコアプロセッサは、
第１のコアと、
第２のコアと
を有し、
前記メモリは、
前記第１及び第２のコアのうちの前記第１のコアのみがアクセス可能な、第１のデータ記憶領域と、
前記第１及び第２のコアのうちの前記第２のコアのみがアクセス可能な、第２のデータ記憶領域と、
前記第１及び第２のコアの双方がアクセス可能な、第３のデータ記憶領域と
を有する、信号処理装置。
【請求項２】
前記第１及び第２のデータ記憶領域の一方に記憶されているデータを、前記第３のデータ記憶領域に書き込み、前記第３のデータ記憶領域に書き込まれた前記データを、前記第１及び第２のデータ記憶領域の他方に書き込むことにより、前記第１及び第２のデータ記憶領域間での前記データの送受信が実行される、請求項１に記載の信号処理装置。
【請求項３】
前記メモリは、前記第１及び第２のコアの双方がアクセス可能なコード記憶領域をさらに有する、請求項１又は２に記載の信号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、信号処理装置に関し、特に、マルチコアプロセッサを備えた信号処理装置に関する。
【背景技術】
【０００２】
プロセッサにおける処理速度の高速化を図るべく、一つのプロセッサ内に複数のコアが搭載されたマルチコアプロセッサの開発が進められている。
【０００３】
マルチコアプロセッサの種類には、大別して、ＳＭＰ（Symmetric Multi-processing）とＡＭＰ（Asymmetric Multi-processing）とがある。
【０００４】
ＳＭＰは、複数のコアが対等の条件でメモリを共有するタイプのマルチコアプロセッサである。ＳＭＰによれば、処理すべきスレッドがいずれかのコアに動的に振り分けられるため、処理の負荷を複数のコアに分散させることができ、マルチコアプロセッサのパワーを最大限に引き出せるという利点がある。また、ＳＭＰによれば、複数のコアがメモリを共有するため、コア間でのデータ通信のオーバーヘッドが小さいという利点もある。但し、ＳＭＰでは、スレッドの実行順序の制御が複雑となるため、リアルタイム性の保証が困難であるとともに、既存のシングルコアプロセッサを前提としたプログラムが、そのままでは動作しないという欠点がある。
【０００５】
ＡＭＰは、スレッドを処理するコアがスレッドごとに予め割り当てられるタイプのマルチコアプロセッサである。ＡＭＰによれば、一つのスレッドを複数のコアに振り分けて処理することがないため、スレッドの実行順序の制御が容易であり、リアルタイム性を保証しやすいという利点がある。また、ＡＭＰによれば、既存のシングルコアプロセッサを前提としたプログラムを移植しやすいという利点もある。但し、ＡＭＰでは、一部のコアに処理の負荷が集中する可能性があり、その場合はマルチコアプロセッサのパワーを最大限に引き出せないという欠点がある。また、ＡＭＰでは、複数のコアが論理的にメモリを共有しないため、コア間でのデータ通信はバスを介した通信となり、オーバーヘッドが大きいという欠点もある。
【０００６】
このように、ＳＭＰ及びＡＭＰはそれぞれ利点及び欠点を有するが、現在では、ＳＭＰをベースとして一般解を目指した研究開発が主流であると考えられる。
【０００７】
なお、下記特許文献1には、複数のコアと複数のメモリとの間にセレクタを配置し、セレクタの選択動作によって各コアがアクセスするメモリが選択されるマルチコアプロセッサが開示されている。
【０００８】
また、下記特許文献２には、複数のＣＰＵとメインメモリとの間にコア制御部を配置し、メインメモリと、コア制御部によって選択されたＣＰＵとの間でデータの送受信が実行されるマルチコアプロセッサが開示されている。
【０００９】
また、下記特許文献３には、複数のコアと複数のメモリとが内部バスによって空間的に多重接続されたマルチコアプロセッサが開示されている。
【００１０】
【特許文献１】特開２００７−２８０２０９号公報
【特許文献２】特開２００７−１５６５９４号公報
【特許文献３】特開２００７−１４１１５５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
上記の通り、ＡＭＰでは複数のコアが論理的にメモリを共有しないため、コア間でのデータ通信はバスを介した通信となり、オーバーヘッドが大きいという欠点がある。
【００１２】
本発明は、かかる欠点を解消するために成されたものであり、ＡＭＰを前提としつつ、コア間のデータ通信のオーバーヘッドを低減し得る信号処理装置を得ることを目的とする。
【課題を解決するための手段】
【００１３】
本発明に係る信号処理装置は、スレッドを処理するコアがスレッドごとに予め割り当てられるタイプのマルチコアプロセッサと、前記マルチコアプロセッサがアクセス可能なメモリとを備え、前記マルチコアプロセッサは、第１のコアと、第２のコアとを有し、前記メモリは、前記第１及び第２のコアのうちの前記第１のコアのみがアクセス可能な、第１のデータ記憶領域と、前記第１及び第２のコアのうちの前記第２のコアのみがアクセス可能な、第２のデータ記憶領域と、前記第１及び第２のコアの双方がアクセス可能な、第３のデータ記憶領域とを有する。
【００１４】
メモリ内には、第１及び第２のコアの双方ともがアクセス可能な第３のデータ記憶領域が設けられている。従って、第１のデータ記憶領域に記憶されているデータを第２のデータ記憶領域に移動させたい場合に、第１のデータ記憶領域から第３のデータ記憶領域を経由して第２のデータ記憶領域にデータを転送することができる。
【００１５】
望ましくは、前記第１及び第２のデータ記憶領域の一方に記憶されているデータを、前記第３のデータ記憶領域に書き込み、前記第３のデータ記憶領域に書き込まれた前記データを、前記第１及び第２のデータ記憶領域の他方に書き込むことにより、前記第１及び第２のデータ記憶領域間での前記データの送受信が実行される。
【００１６】
この場合、バスを介したデータ通信と比較すると、通信のオーバーヘッドを低減することが可能となる。
【００１７】
望ましくは、前記メモリは、前記第１及び第２のコアの双方がアクセス可能なコード記憶領域をさらに有する。
【００１８】
この場合、第１及び第２のコアの双方ともコード記憶領域にアクセス可能であるため、コード記憶領域内に記憶されているプログラムを、第１及び第２のコアで共有することができる。
【発明の効果】
【００１９】
本発明に係る信号処理装置によれば、バスを介したデータ通信と比較すると、通信のオーバーヘッドを低減することが可能となる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
【００２１】
図１は、本発明の実施の形態に係る信号処理装置１の構成を示すブロック図である。信号処理装置１は、マルチコアプロセッサ２、メモリコントローラ３、メモリ４、及び外部バス５を備えて構成されている。マルチコアプロセッサ２及びメモリコントローラ３は、外部バス５に接続されている。メモリ４は、メモリコントローラ３に接続されている。但し、メモリコントローラ３は、マルチコアプロセッサ２に内蔵されていても良い。
【００２２】
マルチコアプロセッサ２は、スレッドを処理するコアがスレッドごとに予め割り当てられるタイプのマルチコアプロセッサ（ＡＭＰ）である。メモリ４は、ＲＡＭ又はＲＯＭ等の半導体メモリである。
【００２３】
図２は、図１に示したマルチコアプロセッサ２の構成を示すブロック図である。マルチコアプロセッサ２は、コア６Ａ、コア６Ｂ、内部バス７、及びバスインタフェース８を備えて構成されている。コア６Ａ，６Ｂ及びバスインタフェース８は、内部バス７に接続されている。また、バスインタフェース８は、図１に示した外部バス５にも接続されている。図２には示さないが、コア６Ａ，６Ｂは、演算器、レジスタ、デコーダ、及びキャッシュメモリ等をそれぞれ備えて構成されている。
【００２４】
本実施の形態において、マルチコアプロセッサ２は、ホームネットワークシステムのホームゲートウェイ用のプロセッサとして用いられる。但し、本発明に係るマルチコアプロセッサは、ホームゲートウェイ以外にも、例えば、ＩＰ電話アダプタ（ＶｏＩＰアダプタ）、ＩＰ電話ルータ、ブロードバンドルータ、又はＩＰセットトップボックス（ＳＴＢ）に搭載することが可能である。
【００２５】
ホームゲートウェイに求められる機能としては、主に、基本システムの処理機能（オペレーティングシステムのサポートあり）と、ディジタル信号処理機能（オペレーティングシステムのサポートあり）と、暗号化・復号化処理機能（オペレーティングシステムのサポートなし）と、中継処理機能（オペレーティングシステムのサポートなし）とがある。プログラムの設計段階において、プロセッサがこれら各機能を実行する際の負荷をそれぞれ予測し、コア６Ａ及びコア６Ｂの負荷がなるべく均等となるように、つまり、負荷が適切に分散されるように、各コア６Ａ，６Ｂにこれらの処理を割り当てる。例えば、コア６Ａには、基本システムの処理に関するスレッドと中継処理に関するスレッドとを割り当て、コア６Ｂには、ディジタル信号処理に関するスレッドと暗号化・復号化処理に関するスレッドとを割り当てる。一般的なプロセッサに比べて、ホームゲートウェイ用のプロセッサは、実行すべき処理の種類が少ないため、ＡＭＰに適していると言える。
【００２６】
これにより、オペレーティングシステムの機能を使用せず、コアを排他的に占有する処理機能と、オペレーティングシステムの機能を使用し、コアを排他的に占有する処理機能と、オペレーティングシステムの機能を使用し、コアを排他的に占有しない機能とを実装することが可能となる。その結果、高い処理速度が要求されて比較的単純なプログラム部分と、高い処理速度が要求されて高機能なプログラム部分と、高い処理速度は要求されないが高機能なプログラム部分とを設計することが可能となる。
【００２７】
図３は、図１に示したメモリ４の構成を示す図である。メモリ４は、コード記憶領域４１、データ記憶領域４２Ａ、データ記憶領域４２Ｂ、及びデータ記憶領域４３に、論理的に分割されている。コード記憶領域４１には、プログラムを構成する命令コードが記憶されている。コード記憶領域４１には、コア６Ａ，６Ｂの双方ともがアクセス可能である。従って、コード記憶領域４１内に記憶されているプログラムは、コア６Ａ，６Ｂの双方で共有することができる。
【００２８】
データ記憶領域４２Ａ，４２Ｂ，４３には、データが記憶される。データ記憶領域４２Ａには、コア６Ａ，６Ｂのうちコア６Ａのみがアクセス可能であり、コア６Ａが処理するスレッドに関連するデータが記憶されている。データ記憶領域４２Ｂには、コア６Ａ，６Ｂのうちコア６Ｂのみがアクセス可能であり、コア６Ｂが処理するスレッドに関連するデータが記憶されている。データ記憶領域４３には、コア６Ａ，６Ｂの双方ともがアクセス可能である。つまり、データ記憶領域４３は、複数のコア６Ａ，６Ｂによって共有されるデータ記憶領域である。
【００２９】
図４は、図３に示したデータ記憶領域４３の構成を示す図である。データ記憶領域４３は、所定の記憶容量ごとに、複数のメモリブロック４３１，４３２，４３３，４３４，・・・，４３ｎに分割されている。データ記憶領域４３においては、メモリブロック単位で、後述のスピンロックをかけることが可能である。
【００３０】
ホームゲートウェイにおいて、例えば、ネットワークから中継されてきたデータＤを暗号化するという処理を考える。上記の例の場合、中継処理はコア６Ａが実行し、暗号化処理はコア６Ｂが実行する。従って、データＤの流れとしては、中継処理のためにまずデータ記憶領域４２Ａに記憶されたデータＤを、暗号化処理のために次にデータ記憶領域４２Ｂに転送する必要がある。
【００３１】
本実施の形態に係る信号処理装置１では、コア間でのデータの送受信を、外部バス５（図１参照）を用いるのではなく、以下に述べる方法によって実行する。
【００３２】
図５は、コア間でのデータ送受信を実行するための処理の流れを示すフローチャートである。まずステップＳ１において、コア６Ａは、スピンロック機能を用いて、データ記憶領域４３内のメモリブロックの一つをロックする。ここでは、例えばメモリブロック４３２がロックされたものとする。
【００３３】
次にステップＳ２において、コア６Ａは、データ記憶領域４２Ａに記憶されているデータＤを、メモリブロック４３２に書き込む。この処理はメモリ４の内部処理となるため、外部バス５を用いたデータ転送は不要である。
【００３４】
次にステップＳ３において、コア６Ａは、メモリブロック４３２のロックを解除する。
【００３５】
次にステップＳ４において、コア６Ａは、メモリブロック４３２にデータＤを書き込んだ旨のイベントを生成し、そのイベントを内部バス７（図２参照）を介してコア６Ｂに向けて送信する。
【００３６】
次にステップＳ５において、コア６Ｂは、コア６Ａから送信されてきた上記イベントを受信する。イベントの受信は、割り込み処理によって実行される。
【００３７】
次にステップＳ６において、コア６Ｂは、スピンロック機能を用いて、メモリブロック４３２をロックする。
【００３８】
次にステップＳ７において、コア６Ｂは、メモリブロック４３２に記憶されているデータＤを、データ記憶領域４２Ｂに書き込む。この処理はメモリ４の内部処理となるため、外部バス５を用いたデータ転送は不要である。
【００３９】
次にステップＳ８において、コア６Ｂは、メモリブロック４３２のロックを解除する。
【００４０】
以上により、データ記憶領域４２Ａからデータ記憶領域４２ＢへのデータＤの転送が完了する。
【００４１】
このように本実施の形態に係る信号処理装置１によれば、図３に示したように、メモリ４内には、コア６Ａ，６Ｂの双方ともがアクセス可能なデータ記憶領域４３が設けられている。従って、データ記憶領域４２Ａに記憶されているデータＤをデータ記憶領域４２Ｂに移動させたい場合に、データ記憶領域４２Ａからデータ記憶領域４３を経由してデータ記憶領域４２ＢにデータＤを転送することができる。これにより、外部バス５を介したデータ通信と比較すると、通信のオーバーヘッドを低減することが可能となる。
【００４２】
なお、データ記憶領域４２Ｂからデータ記憶領域４２ＡへのデータＤの転送も、上記と同様にデータ記憶領域４３を介して実行することが可能であり、上記と同様の効果を得ることができる。
【００４３】
また、以上の説明では、２個のコア６Ａ，６Ｂが搭載されたデュアルコアプロセッサについて述べたが、これに限らず、搭載されるコアの数は任意である。図６は、マルチコアプロセッサ２の構成の変形例を示す図である。図６に示した例では、マルチコアプロセッサ２は、４個のコア６Ａ，６Ｂ，６Ｃ，６Ｄを備えて構成されている。この場合、例えば、コア６Ａには基本システムの処理に関するスレッドを割り当て、コア６Ｂにはディジタル信号処理に関するスレッドを割り当て、コア６Ｃには中継処理に関するスレッドを割り当て、コア６Ｄには暗号化・復号化処理に関するスレッドを割り当てることが可能となる。あるいは、コア６Ａには基本システムの処理に関するスレッドを割り当て、コア６Ｂにはディジタル信号処理に関するスレッドを割り当て、コア６Ｃには上りトラフィックにおける中継処理と暗号化・復号化処理とに関するスレッドを割り当て、コア６Ｄには下りトラフィックにおける中継処理と暗号化・復号化処理とに関するスレッドを割り当てることが可能となる。
【００４４】
なお、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれることが意図される。
【図面の簡単な説明】
【００４５】
【図１】本発明の実施の形態に係る信号処理装置の構成を示すブロック図である。
【図２】マルチコアプロセッサの構成を示すブロック図である。
【図３】メモリの構成を示す図である。
【図４】データ記憶領域の構成を示す図である。
【図５】コア間でのデータ送受信を実行するための処理の流れを示すフローチャートである。
【図６】マルチコアプロセッサの構成の変形例を示す図である。
【符号の説明】
【００４６】
１  信号処理装置
２  マルチコアプロセッサ
４  メモリ
５  外部バス
６Ａ〜６Ｄ  コア
７  内部バス
４１  コード記憶領域
４２Ａ，４２Ｂ，４３  データ記憶領域
【図１】
2009193268.tif 000003
【図２】
2009193268.tif 000004
【図３】
2009193268.tif 000005
【図４】
2009193268.tif 000006
【図５】
2009193268.tif 000007
【図６】
2009193268.tif 000008