(57)【要約】【課題】複数のプロセッサコアを有する装置において、少ない消費電力で、より高速かつ効率的に処理を行うこと。【解決手段】情報処理装置１は、ローカルメモリをそれぞれ備えたプロセッサコアが、デュアルポートメモリである共有メモリを介して直列に接続され、各プロセッサコア間では、共有メモリを介してデータの入出力を行う。そのため、複数のプロセッサコアが、データの入力時に、それぞれのデータ入力元である共有メモリに対し同時にアクセスできると共に、データの出力時に、それぞれのデータ出力先である共有メモリに対し、同時にアクセスできる。したがって、複数のプロセッサコアを有する装置において、少ない消費電力で、より高速かつ効率的に処理を行うことが可能となる。【選択図】  図１
2006285724.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサコアを備える情報処理装置であって、
前記複数のプロセッサコアは、直列に接続されていると共に、処理を行う際に使用するローカルメモリをそれぞれ備え、
直列に接続された前記プロセッサコア間を接続する共有メモリを前記プロセッサコア間毎に備えることを特徴とする情報処理装置。
【請求項２】
前記共有メモリはデュアルポートメモリによって構成され、各ポートが異なる前記プロセッサコアに接続されていることを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記共有メモリはシングルポートメモリによって構成され、前記共有メモリへのアクセスを調停するアクセス調停回路を介してプロセッサコアに接続されていることを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記複数のプロセッサコアにおける処理を同期させる同期制御手段をさらに備えることを特徴とする請求項１から３のいずれか１項に記載の情報処理装置。
【請求項５】
複数のプロセッサコアを備える情報処理装置における情報処理方法であって、
前記複数のプロセッサコアを直列に接続すると共に、処理を行う際に使用するローカルメモリをそれぞれ備えておき、直列に接続された前記プロセッサ間をそれぞれ異なる共有メモリによって接続することを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサコアを有するマルチプロセッサを備えた情報処理装置および情報処理方法に関する。
【背景技術】
【０００２】
近年、いわゆる情報家電を始めとして、複雑なデジタル処理を要求する機器が多数利用されつつあり、このような機器においては、コストと性能・消費電力を両立することが求められている。
また、このような機器においては、多様なデジタル処理（例えば、画像処理、映像処理、音声処理あるいはデータ圧縮・復号処理等）を行うことが要求されるが、その規格は頻繁に変更される状況にある。
【０００３】
そのため、高性能化のために専用のハードウェアを実装してデジタル処理を行うと、規格の変更に対応させる場合に多大なコストを要することとなる。
ところで、近年、ＬＳＩ製造技術の進歩により、１つのＡＳＩＣ（Application Specific Integrated Circuit）に複数のプロセッサコアや小容量のメモリを搭載することが可能となっている。
【０００４】
そのため、従来、単一のプロセッサコアで行っていた処理を複数のプロセッサコアによって行うことにより、性能を向上させることが期待される。
このような目的に適用可能な、複数のプロセッサコアを備えた装置としては、例えば、非特許文献１に記載された密結合型、疎結合型あるいはクラスタといった形態のものが知られている。
【０００５】
密結合型の構成は、複数のプロセッサコアが、単一（あるいは少数）のメモリを共有し、この共有メモリを介してデータの受け渡しを行うものである。
また、疎結合型の構成は、複数のコンピュータシステム（プロセッサ、メモリおよびＩ／Ｏ）をハードディスクあるいは通信装置によって接続したものである。
なお、クラスタは、密結合型の構成を、バックボーンバスによって複数接続したものである。
【０００６】
これらのうち、疎結合型の構成は、コンピュータシステム単体の性能は確保されるものの、コンピュータシステム間を接続するハードディスクあるいは通信装置の転送速度が遅いため、システム全体の性能を低下させるという問題があり、実現するには高コストを要する点からも、上記目的に適するものではない。
また、クラスタの場合、極めて高コストとなることから、一般のＰＣ（Personal Computer）や情報家電等において使用するには適するものではない。
【０００７】
一方、密結合型の構成は、１つのＡＳＩＣとして実装が容易であり、性能の向上が期待できるため、上記目的に最も適うものであると考えられる。
【非特許文献１】神保進一著、「最新マイクロプロセッサテクノロジ  パソコン  ＣＰＵ  完全理解  増補改訂版」、日経ＢＰ社、１９９９年１２月６日、ｐ．３７３〜ｐ．３７４
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来の密結合型の構成においては、複数のプロセッサコアが１つあるいは少数のメモリを共有し、その共有メモリを介してデータの受け渡しを行う構成とされている。
そのため、複数のプロセッサコア間でメモリアクセスの調停が行われることから、プロセッサコアにおける処理が待機状態となる期間が発生し、期待される性能が実現できないものとなっていた。
また、プロセッサコアにおける処理が待機状態となる間、無駄な電力を消費することになるため、消費電力が増加するという課題もあった。
【０００９】
なお、このような不具合を軽減するために、各プロセッサコアにキャッシュメモリを備え、アクセス頻度の高いデータや命令をキャッシュメモリ内に格納しておく手法が広く用いられているが、複数のプロセッサコアがメモリを共有する構成は維持されているため、抜本的な改善策であるとはいえなかった。
本発明の課題は、複数のプロセッサコアを有する装置において、少ない消費電力で、より高速かつ効率的に処理を行うことである。
【課題を解決するための手段】
【００１０】
以上の課題を解決するため、本発明は、
複数のプロセッサコアを備える情報処理装置であって、前記複数のプロセッサコア（例えば、図１および図５のプロセッサコア２０ａ〜２０ｃ）は、直列に接続されていると共に、処理を行う際に使用するローカルメモリ（例えば、図１および図５のローカルメモリ３０ａ〜３０ｃ）をそれぞれ備え、直列に接続された前記プロセッサコア間を接続する共有メモリ（例えば、図１の共有メモリ４０ａ，４０ｂあるいは図５の共有メモリ１４０ａ，１４０ｂ）を前記プロセッサコア間毎に備えることを特徴としている。
このような構成により、ローカルメモリをそれぞれ備えたプロセッサコアが、共有メモリを介して直列に接続され、各プロセッサコア間では、共有メモリを介してデータの入出力を行う。
【００１１】
そのため、複数のプロセッサコアが、データの入力時に、それぞれのデータ入力元である共有メモリに対し同時にアクセスできると共に、データの出力時に、それぞれのデータ出力先である共有メモリに対し、同時にアクセスできる。
したがって、複数のプロセッサコアを有する装置において、少ない消費電力で、より高速かつ効率的に処理を行うことが可能となる。
また、前記共有メモリはデュアルポートメモリ（例えば、図１の共有メモリ４０ａ，４０ｂ）によって構成され、各ポートが異なる前記プロセッサコアに接続されていることを特徴としている。
【００１２】
このような構成により、共有メモリのアクセス領域が異なれば、複数のプロセッサコアが同時にデータの入出力を行うことが可能となるため、各プロセッサコアにおける処理時間が異なり、共有メモリへのアクセスが同時に行われることとなっても、それぞれのプロセッサが共有メモリへのアクセス待ちとなる事態を回避することができ、アクセス待ちによる消費電力の増加を回避することが可能となる。
【００１３】
また、前記共有メモリはシングルポートメモリ（例えば、図５の共有メモリ１４０ａ，１４０ｂ）によって構成され、前記共有メモリへのアクセスを調停するアクセス調停回路（例えば、図５のアクセス調停回路１６０ａ，１６０ｂ）を介してプロセッサコアに接続されていることを特徴としている。
このような構成により、共有メモリをより安価なシングルポートメモリによって構成することが可能となり、情報処理装置の製造コストを削減することが可能となる。
【００１４】
また、前記複数のプロセッサコアにおける処理を同期させる同期制御手段（例えば、図８の「同期制御回路」あるいは「ＧＰＩＯを介した信号線」）をさらに備えることを特徴としている。
このような構成により、複数のプロセッサコア全体において、処理ステップの移行タイミングを正確に同期させることが可能となり、複数のプロセッサコアにおいて並列処理を行う際に処理の乱れが生じることを回避できる。
【００１５】
また、本発明は、
複数のプロセッサコアを備える情報処理装置における情報処理方法であって、前記複数のプロセッサコアを直列に接続すると共に、処理を行う際に使用するローカルメモリをそれぞれ備えておき、直列に接続された前記プロセッサ間をそれぞれ異なる共有メモリによって接続することを特徴としている。
【００１６】
このように、本発明によれば、複数のプロセッサコアを有する装置において、少ない消費電力で、より高速かつ効率的に処理を行うことが可能となる。
【発明を実施するための最良の形態】
【００１７】
以下、図を参照して本発明に係る情報処理装置の実施の形態を説明する。
（第１の実施の形態）
本実施の形態に係る情報処理装置は、複数のプロセッサコアを有すると共に、各プロセッサコア間に両プロセッサコアから入出力可能なデュアルポートメモリを備え、このデュアルポートメモリを介して、プロセッサコア間でデータの送受を行う。
【００１８】
そのため、複数のプロセッサコアが単一の共有メモリを介してデータの送受を行う場合に対し、アクセスの調停により待機状態とされる事態を回避することができる。
まず、構成を説明する。
図１は、本発明に係る情報処理装置１の機能構成を示すブロック図である。
図１において、情報処理装置１は、データ入力インターフェース１０と、プロセッサコア２０ａ〜２０ｃと、ローカルメモリ３０ａ〜３０ｃと、共有メモリ４０ａ，４０ｂと、データ出力インターフェース５０とを含んで構成され、各部はバスによって接続されている。
【００１９】
データ入力インターフェース１０は、情報処理装置１に接続されている不図示のＣＰＵ（Central Processing Unit）やメモリからデータが入力されるインターフェース回路である。
プロセッサコア２０ａ〜２０ｃは、不図示のフェッチ部、デコード部、演算回路あるいはレジスタファイル等を備えたプロセッサであり、所定のプログラムを実行することにより、各種処理を行う。
【００２０】
また、プロセッサコア２０ａ〜２０ｃは、それぞれがローカルメモリ３０ａ〜３０ｃを備えると共に、プロセッサコア２０ａ，２０ｂ間には共有メモリ４０ａ、プロセッサコア２０ｂ，２０ｃ間には共有メモリ４０ｂが備えられている。
さらに、プロセッサコア２０ａには、データ入力インターフェース１０からデータが入力されると共に、プロセッサコア２０ｃからは、後述するデータ出力インターフェース５０にデータが出力される。
【００２１】
ローカルメモリ３０ａ〜３０ｃは、プロセッサコア２０ａ〜２０ｃそれぞれに備えられたローカルメモリであり、シングルポートメモリによって構成される。
また、ローカルメモリ３０ａ〜３０ｃは、プロセッサコア２０ａ〜２０ｃにおいて実行されるプログラムコードや処理対象データおよび処理結果のデータを記憶すると共に、プロセッサコア２０ａ〜２０ｃにおいて処理が実行される際にワークエリアを形成する。
【００２２】
なお、ローカルメモリ３０ａ〜３０ｃをデュアルポートメモリによって構成することも可能である。
共有メモリ４０ａ，４０ｂは、プロセッサコア２０ａ〜２０ｃ間に備えられたデータ送受のためのメモリであり、デュアルポートメモリによって構成される。
また、共有メモリ４０ａは、プロセッサコア２０ａによって処理結果のデータが書き込まれると共に、プロセッサコア２０ｂによって、そのデータが処理対象データとして読み出される。同様に、共有メモリ４０ｂは、プロセッサコア２０ｂによって処理結果のデータが書き込まれると共に、プロセッサコア２０ｃによって、そのデータが処理対象データとして読み出される。
【００２３】
データ出力インターフェース５０は、情報処理装置１に接続されている不図示のＣＰＵやメモリにデータを出力するインターフェース回路である。
次に、動作を説明する。
上述の構成を有する情報処理装置１は、プロセッサコア２０ａ〜２０ｃ間に備えられた共有メモリ４０ａ，４０ｂによって、隣接するプロセッサコア間におけるデータの入出力を行い、複数のプロセッサコアを用いて、ソフトウェアによるパイプライン処理を実現する。
【００２４】
即ち、プロセッサコア２０ａ〜２０ｃは、隣接する上流側のプロセッサコアから共有メモリを介して入力されたデータに対し、それぞれ設定された所定処理を行い、共有メモリを介して下流側のプロセッサコアに順次データを引き渡す。
図２は、情報処理装置１において処理が行われる場合の状態遷移を模式的に示す図である。
【００２５】
図２において、情報処理装置１は、（ａ）各プロセッサコアにおけるデータの入力ステップと、（ｂ）各プロセッサコアにおけるデータの処理ステップと、（ｃ）各プロセッサコアにおけるデータの出力ステップとを順次繰り返す。
具体的には、（ａ）各プロセッサコアにおけるデータの入力ステップでは、プロセッサコア２０ａは、データ入力インターフェース１０から入力された処理対象データをローカルメモリ３０ａに格納し、プロセッサコア２０ｂは、共有メモリ４０ａから処理対象データを読み出してローカルメモリ３０ｂに格納し、プロセッサコア２０ｃは、共有メモリ４０ｂから処理対象データを読み出してローカルメモリ３０ｃに格納する。
【００２６】
また、（ｂ）各プロセッサコアにおけるデータの処理ステップでは、プロセッサコア２０ａ〜２０ｃは、それぞれに備えられたローカルメモリ３０ａ〜３０ｃから処理対象データを読み出して、プログラムコードに従う処理を行った後、処理結果をローカルメモリ３０ａ〜３０ｃに格納する。
さらに、（ｃ）各プロセッサコアにおけるデータの出力ステップでは、プロセッサコア２０ａは、ローカルメモリ３０ａから処理結果のデータを読み出して共有メモリ４０ａに格納し、プロセッサコア２０ｂは、ローカルメモリ３０ｂから処理結果のデータを読み出して共有メモリ４０ｂに格納し、プロセッサコア２０ｃは、ローカルメモリ３０ｃから処理結果のデータを読み出してデータ出力インターフェース５０に出力する。
【００２７】
続いて、情報処理装置１の各部におけるデータの入出力動作について説明する。
図３は、情報処理装置１の各部における信号の状態を示すタイミングチャートである。
図３では、データ入力インターフェース１０、プロセッサコア２０ａ〜２０ｃ、ローカルメモリ３０ａ〜３０ｃ、共有メモリ４０ａ，４０ｂおよびデータ出力インターフェース５０におけるデータ信号の状態を示しており、図２における（ａ）〜（ｃ）の各ステップと対応させて信号状態を示している。
【００２８】
また、情報処理装置１には、データ（１）、データ（２）、データ（３）の順にデータが入力されて処理されており、図３は、データ（３）がデータ入力インターフェース１０から入力され、上記（ａ）〜（ｃ）のステップを経る期間のタイミングチャートを示している。
なお、図３において、データ（１）がプロセッサコア２０ａで処理された結果、データ（１）’となり、データ（１）’がプロセッサコア２０ｂで処理された結果、データ（１）’’となり、データ（１）’’がプロセッサコア２０ｃで処理された結果、データ（１）’’’となる。データ（２）、データ（３）についても同様の表記とする。
【００２９】
図３において、上記（ａ）のステップでは、データ入力インターフェース１０からデータ（３）が入力され、データ入力インターフェース１０、プロセッサコア２０ａおよびローカルメモリ３０ａを接続するバス上では、データ（３）が転送されている。また、共有メモリ４０ａ、プロセッサコア２０ｂおよびローカルメモリ３０ｂを接続するバス上では、プロセッサコア２０ａの処理結果であるデータ（２）’が転送されている。さらに、共有メモリ４０ｂ、プロセッサコア２０ｃおよびローカルメモリ３０ｃを接続するバス上では、プロセッサコア２０ｂの処理結果であるデータ（１）’’が転送されている。
【００３０】
次に、上記（ｂ）のステップでは、各プロセッサコアにおける処理が実行されており、プロセッサコア２０ａおよびローカルメモリ３０ａを接続するバス上では、処理対象のデータ（３）および処理結果のデータ（３）’が転送されている。また、プロセッサコア２０ｂおよびローカルメモリ３０ｂを接続するバス上では、処理対象のデータ（２）’および処理結果のデータ（２）’’が転送されている。さらに、プロセッサコア２０ｃおよびローカルメモリ３０ｃを接続するバス上では、処理対象のデータ（１）’’および処理結果のデータ（１）’’’が転送されている。
【００３１】
続いて、上記（ｃ）のステップでは、プロセッサコア２０ａ、ローカルメモリ３０ａおよび共有メモリ４０ａを接続するバス上では、プロセッサコア２０ａの処理結果であるデータ（３）’が転送されている。また、プロセッサコア２０ｂ、ローカルメモリ３０ｂおよび共有メモリ４０ｂを接続するバス上では、プロセッサコア２０ｂの処理結果であるデータ（２）’’が転送されている。さらに、プロセッサコア２０ｃ、ローカルメモリ３０ｃおよびデータ出力インターフェース５０を接続するバス上では、プロセッサコア２０ｃの処理結果であるデータ（１）’’’が転送されている。
【００３２】
以上のように、本実施の形態に係る情報処理装置１は、ローカルメモリをそれぞれ備えたプロセッサコアが、デュアルポートメモリである共有メモリを介して直列に接続され、各プロセッサコア間では、共有メモリを介してデータの入出力を行う。
そのため、複数のプロセッサコアが、データの入力時に、それぞれのデータ入力元である共有メモリに対し同時にアクセスできると共に、データの出力時に、それぞれのデータ出力先である共有メモリに対し、同時にアクセスできる。また、共有メモリはデュアルポートメモリであることから、共有メモリのアクセス領域が異なれば、複数のプロセッサコアが同時にデータの入出力を行うことが可能である。
【００３３】
図４は、複数のプロセッサコア間でメモリを共有する従来の装置において、メモリへのアクセス待ちとなる状態の例を示す図である。
図４において、（ａ）は、プロセッサＡが共有メモリにデータを書き込んでいる間に、プロセッサＢ，Ｃが共有メモリ（シングルポートメモリ）へのアクセス待ちとなる状態を示している。
【００３４】
また、（ｂ）は、プロセッサＢが共有メモリを使用して処理を行っている間に、プロセッサＡ，Ｃが共有メモリへのアクセス待ちとなる状態を示している。
さらに、（ｃ）は、プロセッサＣが共有メモリからデータを読み出している間に、プロセッサＡ，Ｂが共有メモリへのアクセス待ちとなる状態を示している。
これに対し、本発明においては、複数のプロセッサコア間で共有されるメモリへのアクセス待ちとなる状態を回避することができ、アクセス待ちによる消費電力の増加を回避することができる。
【００３５】
また、各プロセッサコアにおいては、実行するソフトウェアにより、柔軟に処理を変更することが可能である。
この結果、複数のプロセッサコア間でメモリを共有する装置において同様の処理を実行する場合に比べ、処理効率および処理速度を向上させることが可能である。
また、複数のプロセッサコアに実行させる処理を設定し、各プロセッサコアにおいては、処理対象データの取得、設定された処理の実行、処理結果の出力の３つの主要なステップからなるプログラムを実行すれば良いため、情報処理装置１に実行させるプログラムの記述を簡単なものとすることができる。
【００３６】
このように、本発明によれば、複数のプロセッサコアを有する装置において、少ない消費電力で、より高速かつ効率的に処理を行うことが可能となる。
なお、情報処理装置１において、各プロセッサコアにおける処理時間が均一とならない事態も想定され得るが、この場合にも、１つのプロセッサコアが共有メモリにアクセスしている間に、他のプロセッサコアがアクセス待ちとなる事態を回避することができ、プロセッサコアの性能を発揮させるとともに、アクセス待ちによる消費電力の増加を回避することが可能となる。
【００３７】
（第２の実施の形態）
続いて、本発明の第２の実施の形態を説明する。
本実施の形態においては、第１の実施の形態における情報処理装置１が備える共有メモリ４０ａ，４０ｂをシングルポートメモリによって構成することとし、より低コストに情報処理装置を実現する場合について説明する。
まず、構成を説明する。
図５は、本発明に係る情報処理装置２の機能構成を示すブロック図である。
【００３８】
図５に示す情報処理装置２は、共有メモリ１４０ａ，１４０ｂおよびアクセス調停回路１６０ａ，１６０ｂの部分のみが、図１に示す情報処理装置１と異なるものであるため、共有メモリ１４０ａ，１４０ｂおよびアクセス調停回路１６０ａ，１６０ｂについてのみ説明し、他の部分は図１と同一の符号を付して説明を省略する。
図５において、共有メモリ１４０ａ，１４０ｂは、プロセッサコア２０ａ〜２０ｃ間に備えられたデータ送受のためのメモリであり、シングルポートメモリによって構成される。
【００３９】
また、共有メモリ１４０ａは、アクセス調停回路１６０ａを介してプロセッサコア２０ａ，２０ｂと接続されており、プロセッサコア２０ａ，２０ｂからのアクセスがアクセス調停回路１６０ａによって調停された上で、プロセッサコア２０ａによって処理結果のデータが書き込まれると共に、プロセッサコア２０ｂによって、そのデータが処理対象データとして読み出される。
【００４０】
同様に、共有メモリ１４０ｂは、アクセス調停回路１６０ｂを介してプロセッサコア２０ｂ，２０ｃと接続されており、プロセッサコア２０ｂ，２０ｃからのアクセスがアクセス調停回路１６０ｂによって調停された上で、プロセッサコア２０ｂによって処理結果のデータが書き込まれると共に、プロセッサコア２０ｃによって、そのデータが処理対象データとして読み出される。
【００４１】
アクセス調停回路１６０ａ，１６０ｂは、プロセッサコア２０ａ〜２０ｃによる共有メモリ１４０ａ，１４０ｂへのアクセスを調停するものである。
即ち、アクセス調停回路１６０ａは、プロセッサコア２０ａによる共有メモリ１４０ａへのデータの書き込み、あるいは、プロセッサコア２０ｂによる共有メモリ１４０ａからのデータの読み出しが行われた場合に、これらの動作を調停し、プロセッサコア２０ａによる書き込みデータを共有メモリ１４０ａに書き込んだり、プロセッサコア２０ｂによる読み出しデータをプロセッサコア２０ｂに出力したりする。
【００４２】
同様に、アクセス調停回路１６０ｂは、プロセッサコア２０ｂによる共有メモリ１４０ｂへのデータの書き込み、あるいは、プロセッサコア２０ｃによる共有メモリ１４０ｂからのデータの読み出しが行われた場合に、これらの動作を調停し、プロセッサコア２０ｂによる書き込みデータを共有メモリ１４０ｂに書き込んだり、プロセッサコア２０ｃによる読み出しデータをプロセッサコア２０ｃに出力したりする。
【００４３】
次に、動作を説明する。
上述の構成を有する情報処理装置２は、アクセス調停回路１６０，１６０ｂの調停を受けつつ、プロセッサコア２０ａ〜２０ｃ間に備えられた共有メモリ１４０ａ，１４０ｂによって、隣接するプロセッサコア間におけるデータの入出力を行い、複数のプロセッサコアを用いて、ソフトウェアによるパイプライン処理を実現する。
【００４４】
即ち、プロセッサコア２０ａ〜２０ｃは、隣接する上流側のプロセッサコアから共有メモリを介して入力されたデータに対し、それぞれ設定された所定処理を行い、共有メモリを介して下流側のプロセッサコアに順次データを引き渡す。
図６は、情報処理装置２において処理が行われる場合の状態遷移を模式的に示す図である。
【００４５】
図６において、情報処理装置２は、（ａ）各プロセッサコアにおけるデータの入力ステップと、（ｂ）各プロセッサコアにおけるデータの処理ステップと、（ｃ）各プロセッサコアにおけるデータの出力ステップとを順次繰り返す。
具体的には、（ａ）各プロセッサコアにおけるデータの入力ステップでは、プロセッサコア２０ａは、データ入力インターフェース１０から入力された処理対象データをローカルメモリ３０ａに格納し、プロセッサコア２０ｂは、アクセス調停回路１６０ａを介して共有メモリ４０ａから処理対象データを読み出してローカルメモリ３０ｂに格納し、プロセッサコア２０ｃは、アクセス調停回路１６０ｂを介して共有メモリ４０ｂから処理対象データを読み出してローカルメモリ３０ｃに格納する。
【００４６】
また、（ｂ）各プロセッサコアにおけるデータの処理ステップでは、プロセッサコア２０ａ〜２０ｃは、それぞれに備えられたローカルメモリ３０ａ〜３０ｃから処理対象データを読み出して、プログラムコードに従う処理を行った後、処理結果をローカルメモリ３０ａ〜３０ｃに格納する。
さらに、（ｃ）各プロセッサコアにおけるデータの出力ステップでは、プロセッサコア２０ａは、ローカルメモリ３０ａから処理結果のデータを読み出し、アクセス調停回路１６０ａを介して共有メモリ４０ａに格納し、プロセッサコア２０ｂは、ローカルメモリ３０ｂから処理結果のデータを読み出し、アクセス調停回路１６０ｂを介して共有メモリ４０ｂに格納し、プロセッサコア２０ｃは、ローカルメモリ３０ｃから処理結果のデータを読み出してデータ出力インターフェース５０に出力する。
【００４７】
続いて、情報処理装置２の各部におけるデータの入出力動作について説明する。
図７は、情報処理装置２の各部における信号の状態を示すタイミングチャートである。
図７では、データ入力インターフェース１０、プロセッサコア２０ａ〜２０ｃ、ローカルメモリ３０ａ〜３０ｃ、共有メモリ１４０ａ，１４０ｂ、アクセス調停回路１６０ａ，１６０ｂおよびデータ出力インターフェース５０におけるデータ信号の状態を示しており、図６における（ａ）〜（ｃ）の各ステップと対応させて信号状態を示している。
【００４８】
また、情報処理装置２には、データ（１）、データ（２）、データ（３）の順にデータが入力されて処理されており、図７は、データ（３）がデータ入力インターフェース１０から入力され、上記（ａ）〜（ｃ）のステップを経る期間のタイミングチャートを示している。
なお、図７において、図３と同様に、データ（１）がプロセッサコア２０ａで処理された結果、データ（１）’となり、データ（１）’がプロセッサコア２０ｂで処理された結果、データ（１）’’となり、データ（１）’’がプロセッサコア２０ｃで処理された結果、データ（１）’’’となる。データ（２）、データ（３）についても同様の表記とする。
【００４９】
図７において、上記（ａ）のステップでは、データ入力インターフェース１０からデータ（３）が入力され、データ入力インターフェース１０、プロセッサコア２０ａおよびローカルメモリ３０ａを接続するバス上では、データ（３）が転送されている。また、アクセス調停回路１６０ａを含む、共有メモリ１４０ａ、プロセッサコア２０ｂおよびローカルメモリ３０ｂを接続するバス上では、プロセッサコア２０ａの処理結果であるデータ（２）’が転送されている。さらに、アクセス調停回路１６０ｂを含む、共有メモリ１４０ｂ、プロセッサコア２０ｃおよびローカルメモリ３０ｃを接続するバス上では、プロセッサコア２０ｂの処理結果であるデータ（１）’’が転送されている。
【００５０】
次に、上記（ｂ）のステップでは、各プロセッサコアにおける処理が実行されており、プロセッサコア２０ａおよびローカルメモリ３０ａを接続するバス上では、処理対象のデータ（３）および処理結果のデータ（３）’が転送されている。また、プロセッサコア２０ｂおよびローカルメモリ３０ｂを接続するバス上では、処理対象のデータ（２）’および処理結果のデータ（２）’’が転送されている。さらに、プロセッサコア２０ｃおよびローカルメモリ３０ｃを接続するバス上では、処理対象のデータ（１）’’および処理結果のデータ（１）’’’が転送されている。
【００５１】
続いて、上記（ｃ）のステップでは、アクセス調停回路１６０ａを含む、プロセッサコア２０ａ、ローカルメモリ３０ａおよび共有メモリ１４０ａを接続するバス上では、プロセッサコア２０ａの処理結果であるデータ（３）’が転送されている。また、アクセス調停回路１６０ｂを含む、プロセッサコア２０ｂ、ローカルメモリ３０ｂおよび共有メモリ１４０ｂを接続するバス上では、プロセッサコア２０ｂの処理結果であるデータ（２）’’が転送されている。さらに、プロセッサコア２０ｃ、ローカルメモリ３０ｃおよびデータ出力インターフェース５０を接続するバス上では、プロセッサコア２０ｃの処理結果であるデータ（１）’’’が転送されている。
【００５２】
以上のように、本実施の形態に係る情報処理装置２は、ローカルメモリをそれぞれ備えたプロセッサコアが、シングルポートメモリである共有メモリと、それに対するアクセスを調停するアクセス調停回路を介して直列に接続され、各プロセッサコア間では、共有メモリを介してデータの入出力を行う。
そのため、複数のプロセッサコアが、データの入力時に、それぞれのデータ入力元である共有メモリに対し同時にアクセスできると共に、データの出力時に、それぞれのデータ出力先である共有メモリに対し、同時にアクセスできる。
【００５３】
したがって、複数のプロセッサコアを有する装置において、少ない消費電力で、より高速かつ効率的に処理を行うことが可能となる。
なお、第１および第２の実施の形態において、各プロセッサコアの処理対象のデータを、ローカルメモリに一旦格納した後に、ローカルメモリに対して所定の処理を行うこととして説明したが、処理対象のデータをローカルメモリに格納することなく、直接、共有メモリから読み出しながら所定の処理を行うこととしても良い。
【００５４】
同様に、第１および第２の実施の形態において、各プロセッサコアの処理結果のデータを、ローカルメモリに一旦格納した後に、ローカルメモリから共有メモリに転送することとして説明したが、処理結果のデータをローカルメモリに格納することなく、直接、共有メモリに格納することとしても良い。
また、第１および第２の実施の形態において、各プロセッサコアにおける処理時間は、設定されている処理によって異なるものとなるが、各プロセッサコアにおける処理時間が均等となるように処理を設定することで、プロセッサコア間の同期が取られた状態となり、最も高い性能が実現できる。
【００５５】
さらに、各プロセッサコア間で正確に同期を取るために、例えば、図８（ａ）に示すように、各プロセッサコアに対してステップの移行のためのトリガを与える同期制御回路を備えておくこととしても良い。これにより、複数のプロセッサコアによって一種のパイプライン処理を行う上で、処理の乱れが生ずることを回避できる。
この場合、同期制御回路は、各プロセッサコアにおける処理の終了通知を受け、全プロセッサコアにおける処理が終了した際に、各プロセッサコアに対し、データの処理ステップから出力ステップに移行するためのトリガを出力する。
【００５６】
また、図８（ｂ）に示すように、プロセッサコア間を割り込み信号線あるいはＧＰＩＯ（General Purpose Input Output）を介した信号線によって接続しておき、この信号線を用いて、上流側のプロセッサコアが共有メモリに処理結果のデータを格納したことを、下流側のプロセッサコアに通知することとしても良い。
さらに、第１および第２の実施の形態における情報処理装置１，２は、１つのＡＳＩＣとして実装することが可能である。
【図面の簡単な説明】
【００５７】
【図１】本発明に係る情報処理装置１の機能構成を示すブロック図である。
【図２】情報処理装置１において処理が行われる場合の状態遷移を模式的に示す図である。
【図３】情報処理装置１の各部における信号の状態を示すタイミングチャートである。
【図４】複数のプロセッサコア間でメモリを共有する従来の装置において、メモリへのアクセス待ちとなる状態の例を示す図である。
【図５】本発明に係る情報処理装置２の機能構成を示すブロック図である。
【図６】情報処理装置２において処理が行われる場合の状態遷移を模式的に示す図である。
【図７】情報処理装置２の各部における信号の状態を示すタイミングチャートである。
【図８】本発明に係る情報処理装置の他の構成例を示す図である。
【符号の説明】
【００５８】
１，２  情報処理装置、１０  データ入力インターフェース、２０ａ〜２０ｃ  プロセッサコア、３０ａ〜３０ｃ  ローカルメモリ、４０ａ，４０ｂ，１４０ａ，１４０ｂ  共有メモリ、５０  データ出力インターフェース、１６０ａ，１６０ｂ  アクセス調停回路
【図１】
2006285724.tif 000003
【図２】
2006285724.tif 000004
【図３】
2006285724.tif 000005
【図４】
2006285724.tif 000006
【図５】
2006285724.tif 000007
【図６】
2006285724.tif 000008
【図７】
2006285724.tif 000009
【図８】
2006285724.tif 000010