(57)【要約】      （修正有）【課題】演算処理システムの処理能力を改善する。【解決手段】演算処理システム１は、メインメモリ１０にアクセスする複数のバスマスタ、たとえばＣＰＵ２、ＤＭＡコントローラ１２を備える。バス８は、複数のバスマスタ２、１２、およびキャッシュ１４を接続する。アービタ１６は、複数のバスマスタ２、１２によるバスの使用権を調停する。演算処理システム１は、ＣＰＵ２、ＤＭＡコントローラ１２からメインメモリ１０へのアクセスに、キャッシュ１４が介在するよう構成される。【選択図】図２
2015219606.tif 000002
【特許請求の範囲】
【請求項１】
複数のバスマスタと、
メインメモリと、
キャッシュと、
前記複数のバスマスタ、前記メインメモリおよび前記キャッシュを接続するバスと、
前記複数のバスマスタによる前記バスの使用権を調停するアービタと、
を備え、
前記複数のバスマスタそれぞれから前記メインメモリへのアクセスに、前記キャッシュが介在するよう構成されることを特徴とする演算処理システム。
【請求項２】
前記複数のバスマスタのひとつは、プロセッサであることを特徴とする請求項１に記載の演算処理システム。
【請求項３】
前記複数のバスマスタの別のひとつは、ＤＭＡ（Direct Memory Access）コントローラであることを特徴とする請求項２に記載の演算処理システム。
【請求項４】
前記複数のバスマスタは、複数のプロセッサを含むことを特徴とする請求項２または３に記載の演算処理システム。
【請求項５】
複数のバスマスタと、
メインメモリと、
キャッシュと、
前記複数のバスマスタ、前記メインメモリおよび前記キャッシュを接続するバスと、
前記複数のバスマスタによる前記バスの使用権を調停するアービタと、
を備え、
前記キャッシュは、前記アービタよりも前記メインメモリ側に配置されることを特徴とする演算処理システム。
【請求項６】
前記複数のバスマスタのひとつは、プロセッサであることを特徴とする請求項５に記載の演算処理システム。
【請求項７】
前記複数のバスマスタの別のひとつは、ＤＭＡ（Direct Memory Access）コントローラであることを特徴とする請求項６に記載の演算処理システム。
【請求項８】
前記複数のバスマスタは、複数のプロセッサを含むことを特徴とする請求項６または７に記載の演算処理システム。
【請求項９】
メインメモリと接続される信号処理回路であって、
プロセッサと、
ＤＭＡ（Direct Memory Access）コントローラと、
キャッシュと、
前記プロセッサ、前記ＤＭＡコントローラ、前記メインメモリおよび前記キャッシュを接続するバスと、
前記プロセッサおよび前記ＤＭＡコントローラによる前記バスの使用権を調停するアービタと、
を備え、
前記プロセッサおよび前記ＤＭＡコントローラそれぞれから前記メインメモリへのアクセスに、前記キャッシュが介在するよう構成され、
ひとつの半導体基板に一体集積化されることを特徴とする信号処理回路。
【請求項１０】
メインメモリと接続される信号処理回路であって、
プロセッサと、
ＤＭＡ（Direct Memory Access）コントローラと、
キャッシュと、
前記プロセッサ、前記ＤＭＡコントローラ、前記メインメモリおよび前記キャッシュを接続するバスと、
前記プロセッサおよび前記ＤＭＡコントローラによる前記バスの使用権を調停するアービタと、
を備え、
前記キャッシュは、前記アービタよりも前記メインメモリ側に配置され、
ひとつの半導体基板に一体集積化されることを特徴とする信号処理回路。
【請求項１１】
前記プロセッサは、
コアと、
少なくともひとつの組み込みメモリと、
を含むことを特徴とする請求項９または１０に記載の信号処理回路。
【請求項１２】
前記信号処理回路は、複数の音源からのデジタルのオーディオデータを受け、デコードするオーディオインタフェース回路であることを特徴とする請求項９から１１のいずれかに記載の信号処理回路。
【請求項１３】
前記メインメモリは、前記信号処理回路と別の半導体基板に集積化され、スタッキングされた態様にて１つのパッケージに収容されることを特徴とする請求項９から１２のいずれかに記載の信号処理回路。
【請求項１４】
前記メインメモリは、前記信号処理回路と同一の半導体基板に集積化されることを特徴とする請求項９から１２のいずれかに記載の信号処理回路。
【請求項１５】
請求項９から１４のいずれかに記載の信号処理回路を備えることを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリおよびプロセッサを備える演算処理回路に関する。
【背景技術】
【０００２】
さまざまな電子機器に、プロセッサ、キャッシュ、メモリを備える演算処理システムが搭載される。図１は、本発明者が検討した比較技術に係る演算処理システムのブロック図である。演算処理システム１ｒは、ＣＰＵ２、キャッシュ４、バスコントローラ６、バス８、メインメモリ（大容量メモリ）１０、ＤＭＡ（Direct Memory Access）コントローラ１２を備える。メインメモリ１０は、システムバスと同期動作するＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）であり、ＣＰＵ２が実行すべき命令および各種のデータを格納する。
【０００３】
ＣＰＵ２は、メインメモリ１０に格納されたデータ、命令など（以下、情報と総称する）を処理する。一般にメインメモリ１０は、そのリード速度、ライト速度がＣＰＵ２の演算処理速度に比べて遅いため、メインメモリ１０へのアクセスは処理のボトルネックとなる。この問題を解消するために、メインメモリ１０よりも上流に、高速なキャッシュ４が設けられる。ＣＰＵ２は、メインメモリ１０に格納される情報のうち、アクセスされる頻度が高い、あるいは確率が高い一部を、およびそれらの属性とともにキャッシュ４にコピーする。ＣＰＵ２がメインメモリ１０のあるアドレスにアクセスしたとき、そのアドレスがキャッシュ４のキャッシングの対象であるときには、キャッシュ４に格納されたデータがアクセスされる（キャッシュヒット）。アクセス先のアドレスがキャッシュ４のキャッシングの対象でない場合には、メインメモリ１０の該当アドレスにアクセスされる。
【０００４】
図示しない周辺機器とメインメモリ１０の間のデータ転送は、２つの方法がサポートされる。ひとつは、ＣＰＵ２が入力（ＩＮＰＵＴ）命令、出力（ＯＵＴＰＵＴ）命令を実行することにより、データ転送を行うものである。この方法は、転送周期が長くなるため、大容量のデータ転送には適していない。
【０００５】
別の方法は、ＤＭＡ（Direct Memory Access）と呼ばれるもので、ＣＰＵ２を介在することなくＤＭＡコントローラ１２の制御下でメインメモリ１０と周辺機器の間で直接、データ転送が行われる。ＤＭＡ転送を行っている間、ＣＰＵ２は、バス８へのアクセスを必要としない処理を行うことができる。
【０００６】
バス８へのアクセス主体をバスマスタと称する。図１のシステムでは、ＣＰＵ２およびＤＭＡコントローラ１２がバスマスタとなる。バス８の使用権は、単一のバスマスタにのみ付与される。バスコントローラ６は、バスアービタとも称され、複数のバスマスタの間で、バス８の使用権を調停する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０００−３０５８４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
図１の演算処理システム１ｒのように、複数のバスマスタが存在するアーキテクチャでは、キャッシュ４に格納される情報と、メインメモリ１０に格納される対応する情報の間の整合性（キャッシュコヒーレンシ）が問題となる。
【０００９】
キャッシュコヒーレンシの問題は、たとえば以下のように生ずる。
ステップ１．  メインメモリ１０の所定のアドレスの情報がキャッシュ４にコピーされる。
ステップ２．  その状態でＣＰＵ２がキャッシュ４にアクセスし、キャッシュ４上の情報が更新される。
このとき、キャッシュ４上のデータと、メインメモリ１０上の対応するデータは不一致となる。
ステップ３．  キャッシュ４のデータがメインメモリ１０に書き戻される前に、ＤＭＡコントローラ１２によるＤＭＡ転送が発生すると、ステップ２における情報の更新が反映されずに、周辺機器に転送されてしまう。
【００１０】
キャッシュコヒーレンシの問題を解決するためには、以下のアプローチがとり得る。
１．  ＤＭＡコントローラ１２によるＤＭＡ転送の対象領域を、キャッシュ４によるキャッシングの対象外とする。
２．  ＤＭＡコントローラ１２によるＤＭＡ転送の実行前に、キャッシュ４をフラッシュする。
【００１１】
いずれのアプローチをとる場合であっても、キャッシュコヒーレンスを確保するために、ソフトウェア処理が必要となるため、演算処理システム１ｒの処理能力の低下の要因となる。
【００１２】
本発明は係る課題に鑑みてなされたものであり、そのある態様の例示的な目的のひとつは、処理能力が改善された演算処理システムの提供にある。
【課題を解決するための手段】
【００１３】
本発明のある態様は、演算処理システムに関する。演算処理システムは、複数のバスマスタと、メインメモリと、キャッシュと、複数のバスマスタ、メインメモリおよびキャッシュを接続するバスと、複数のバスマスタによるバスの使用権を調停するアービタと、を備える。演算処理システムは、複数のバスマスタからメインメモリへのアクセスに、キャッシュが介在するよう構成される。
【００１４】
この態様によると、メインメモリとキャッシュの間の情報の不一致を抑制できるため、キャッシュコヒーレンスを確保するソフトウェア処理が不要となり、処理能力を改善できる。
【００１５】
複数のバスマスタのひとつは、プロセッサであってもよい。複数のバスマスタの別のひとつは、ＤＭＡＣ（Direct Memory Access Controller）であってもよい。複数のバスマスタは、複数のプロセッサを含んでもよい。
【００１６】
本発明の別の態様もまた、演算処理システムである。この演算処理システムは、複数のバスマスタと、メインメモリと、キャッシュと、複数のバスマスタ、メインメモリおよびキャッシュを接続するバスと、複数のバスマスタによるバスの使用権を調停するアービタと、を備える。キャッシュは、アービタよりもメインメモリ側に配置される。
【００１７】
この態様によると、メインメモリとキャッシュの間の情報の不一致を抑制できるため、キャッシュコヒーレンスを確保するためのソフトウェア処理が不要となり、処理能力を改善できる。
【００１８】
複数のバスマスタのひとつは、プロセッサであってもよい。複数のバスマスタの別のひとつは、ＤＭＡＣ（Direct Memory Access Controller）であってもよい。複数のバスマスタは、複数のプロセッサを含んでもよい。
【００１９】
本発明のさらに別の態様は、メインメモリと接続される信号処理回路に関する。この信号処理回路は、プロセッサと、ＤＭＡ（Direct Memory Access）コントローラと、キャッシュと、プロセッサ、ＤＭＡコントローラ、メインメモリおよびキャッシュを接続するバスと、複数のバスマスタによるバスの使用権を調停するアービタと、を備える。信号処理回路は、複数のバスマスタからメインメモリへのアクセスに、キャッシュが介在するよう構成され、ひとつの半導体基板（ダイ）に一体集積化される。
【００２０】
「一体集積化」とは、回路の構成要素のすべてが半導体基板上に形成される場合や、回路の主要構成要素が一体集積化される場合が含まれ、回路定数の調節用に一部の抵抗やキャパシタなどが半導体基板の外部に設けられていてもよい。
【００２１】
本発明のさらに別の態様もまた、信号処理回路である。この信号処理回路は、プロセッサと、ＤＭＡ（Direct Memory Access）コントローラと、キャッシュと、プロセッサ、ＤＭＡコントローラ、メインメモリおよびキャッシュを接続するバスと、複数のバスマスタによるバスの使用権を調停するアービタと、を備え、ひとつの半導体基板に一体集積化される。キャッシュは、アービタよりもメインメモリ側に配置される。
【００２２】
プロセッサは、コアと、少なくともひとつの組み込みメモリと、を含んでもよい。
【００２３】
信号処理回路は、複数の音源からのデジタルオーディオデータを受け、デコードするオーディオインタフェース回路であってもよい。
【００２４】
メインメモリは、信号処理回路と別の半導体基板に集積化されてもよい。メインメモリのダイと信号処理回路のダイは、スタッキングされた態様にて１つのパッケージ（スタックパッケージ）に収容されてもよい。
【００２５】
メインメモリは、信号処理回路と同一の半導体基板に集積化されてもよい。
【００２６】
本発明の別の態様は電子機器に関する。電子機器は、上述の信号処理回路を備える。
【００２７】
なお、以上の構成要素の任意の組み合わせや、本発明の構成要素や表現を、方法、装置、システムなどの間で相互に置換したものもまた、本発明の態様として有効である。
【発明の効果】
【００２８】
本発明のある態様によれば、処理能力を改善できる。
【図面の簡単な説明】
【００２９】
【図１】本発明者が検討した比較技術に係る演算処理システムのブロック図である。
【図２】実施の形態に係る演算処理システムのブロック図である。
【図３】図３（ａ）〜（ｄ）は、図２の演算処理システムの動作を示す図である。
【図４】信号処理回路のブロック図である。
【図５】演算処理システムを用いた電子機器のブロック図である。
【図６】図６（ａ）、（ｂ）は、変形例に係る演算処理システムのブロック図である。
【発明を実施するための形態】
【００３０】
以下、本発明を好適な実施の形態をもとに図面を参照しながら説明する。各図面に示される同一または同等の構成要素、部材、処理には、同一の符号を付するものとし、適宜重複した説明は省略する。また、実施の形態は、発明を限定するものではなく例示であって、実施の形態に記述されるすべての特徴やその組み合わせは、必ずしも発明の本質的なものであるとは限らない。
【００３１】
本明細書において、「部材Ａが、部材Ｂと接続された状態」とは、部材Ａと部材Ｂが物理的に直接的に接続される場合のほか、部材Ａと部材Ｂが、電気的な接続状態に影響を及ぼさない他の部材を介して間接的に接続される場合も含む。また、「部材Ｃが、部材Ａと部材Ｂの間に設けられた状態」とは、部材Ａと部材Ｃ、あるいは部材Ｂと部材Ｃが直接的に接続される場合のほか、電気的な接続状態に影響を及ぼさない他の部材を介して間接的に接続される場合も含む。
【００３２】
図２は、実施の形態に係る演算処理システム１のブロック図である。演算処理システム１は、ＣＰＵ２、バス８、ＤＭＡコントローラ１２、キャッシュ１４、アービタ１６、メインメモリ１０を備える。
【００３３】
このアーキテクチャでは、ＤＭＡコントローラ１２によるメモリ制御が、キャッシュ１４を介して行われる。言い換えれば、すべてのバスマスタからのメインメモリ１０へのアクセスに、キャッシュ１４が介在する。
【００３４】
具体的には、キャッシュ１４は、アービタ１６よりもメインメモリ１０側に設けられる。アービタ１６は、ＣＰＵ２およびＤＭＡコントローラ１２は、バス８の使用権を調停する。アービタ１６により使用権を付与されたバスマスタは、キャッシュ１４を介してメインメモリ１０にアクセスする。
【００３５】
以上が演算処理システム１の構成である。続いてその動作を説明する。
【００３６】
図３（ａ）〜（ｄ）は、図２の演算処理システム１の動作を示す図である。
図３（ａ）において、アービタ１６によりＣＰＵ２が選択され、ＣＰＵ２が、メインメモリ１０のキャッシュ対象のアドレス領域（キャッシュ領域という）ＣＡに格納される情報Ｄ１を、キャッシュ４にコピーする。
【００３７】
図３（ｂ）では、引き続きアービタ１６によりＣＰＵ２が選択され、ＣＰＵ２がメインメモリ１０のキャッシュ領域ＣＡ内のあるアドレスに格納される情報に、書き換えをともなうアクセスする。キャッシュ１４は、ＣＰＵ２からアクセスに応答する。具体的には、バスマスタであるＣＰＵ２のアクセス先のアドレスＡＤＲ１が、キャッシュ領域内にあるか否かを判定する。図３（ｂ）では、キャッシュ領域ＣＡ内であるため、ＣＰＵ２はメインメモリ１０にアクセスすることなく、キャッシュ１４にコピーされた情報を書き換える（キャッシュヒット）。この処理により、キャッシュ１４の情報は、Ｄ１からＤ２に書き換えられる。
【００３８】
続いてＣＰＵ２が、メインメモリ１０のキャッシュ領域ＣＡを対象としたＤＭＡ転送命令を実行する。ＤＭＡ転送に際して、ＣＰＵ２は、転送の対象となる領域の先頭アドレス、終了アドレス、データコピーの方向（すなわちメインメモリ１０から周辺機器へ、または周辺機器からメインメモリ１０へのいずれか）を指示する制御コードを、ＤＭＡコントローラ１２に与える。
【００３９】
図３（ｃ）に示すように、ＤＭＡ転送に際して、アービタ１６は、バス８の使用権を、ＣＰＵ２からＤＭＡコントローラ１２に移す。そしてＤＭＡコントローラ１２は、ＤＭＡ転送を実行する。ここでのＤＭＡ転送は、たとえばキャッシュ領域ＣＡの情報を、周辺機器２０にコピーすることである。
【００４０】
キャッシュ１４は、ＤＭＡコントローラ１２からアクセスに応答する。具体的には、バスマスタであるＤＭＡコントローラ１２のアクセス先のアドレスが、キャッシュ領域内にあるか否かを判定する。この例では、ＤＭＡ転送の対象が、キャッシュ領域ＣＡである（キャッシュヒット）から、ＤＭＡコントローラ１２はメインメモリ１０にアクセスすることなく、キャッシュ１４に格納された情報Ｄ２を、周辺機器に転送する。
【００４１】
やがて、図３（ｄ）に示すように、ＣＰＵ２からの命令に応じて、キャッシュ１４の情報Ｄ２が、メインメモリ１０のキャッシュ領域ＣＡに書き戻される。以上が演算処理システム１の動作である。
【００４２】
この演算処理システム１によれば、複数のバスマスタすべてについて、キャッシュ１４を介してメインメモリ１０にアクセスすることが約束されるため、キャッシュコヒーレンシの問題を解決できる。これにより、ソフトウェア的にキャッシュコヒーレンシを確保するための処理が不要になるため、演算処理システム１の処理能力を改善できる。
【００４３】
続いて演算処理システム１の用途を説明する。図４は、信号処理回路１００のブロック図である。信号処理回路１００は、図２の演算処理システム１のうち、ＣＰＵ２、ＤＭＡコントローラ１２、キャッシュ１４、アービタ１６を内蔵して集積化されたＬＳＩ（Large Scale Integrated circuit）であり、外付けのメインメモリ１０とともに演算処理システム１を構成する。
【００４４】
メインメモリ１０が集積化されるダイ（半導体基板）と、信号処理回路１００が集積化されるダイは、スタックされ、いわゆるスタックパッケージを構成してもよい。あるいは、メインメモリ１０と信号処理回路１００は別々のパッケージを構成してもよい。
【００４５】
たとえばＣＰＵ２は、コア３０、命令キャッシュ３２、組み込みメモリ３４を含む。コア３０は命令を実行する。命令キャッシュ３２には、コア３０が実行すべき命令が格納される。組み込みメモリ３４には、コア３０からより高速にアクセス可能に接続されており、メインメモリ１０あるいはキャッシュ１４から読み出された命令やデータを格納する。
【００４６】
図５は、演算処理システム１を用いた電子機器のブロック図である。
電子機器５０は、たとえばオーディオコンポをはじめとするオーディオ再生機能を有する装置であり、演算処理システム１の信号処理回路１００は、ＵＳＢメモリ、ＣＤプレイヤなどの音源６２ａ〜６２ｂからのデジタルオーディオデータを受け、デコードするオーディオインタフェース回路である。
【００４７】
信号処理回路１００によりデコードされたオーディオ信号は、ＤＳＰ（Digital Sound Processor）５２に入力される。ＤＳＰ５２は、イコライジング処理、バスブースト処理、ラウドネス処理、デジタルボリウム制御などを行い、アナログオーディオ信号に変換する。アンプ５４Ｌ、５４Ｒは、ＬチャンネルおよびＲチャンネルのアナログオーディオ信号を増幅し、対応するスピーカ６０Ｌ、６０Ｒを駆動する。
【００４８】
以上、本発明について、実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。以下、こうした変形例について説明する。
【００４９】
図６（ａ）、（ｂ）は、変形例に係る演算処理システムのブロック図である。図６（ａ）の演算処理システム１ａでは、複数のバスマスタとして、複数のＣＰＵ２が接続される。少なくともひとつのＣＰＵには、キャッシュ１４よりも上位のキャッシュが接続されてもよい。図６（ｂ）の演算処理システム１ｂでは、複数のバスマスタとして、複数のＣＰＵ２およびＤＭＡコントローラ１２が接続されている。
【００５０】
これらの変形例においても、全てのバスマスタからのメインメモリ１０に、共通のキャッシュ１４が介在することとなるため、キャッシュコヒーレンシの問題を解決できる。つまり本発明において、バスマスタの個数や種類は特に限定されない。
【００５１】
実施の形態では、信号処理回路１００とメインメモリ１０が異なるダイに個別に集積化される場合を説明したが、ＳＤＲＡＭ混載プロセスや大容量ＲＡＭを搭載可能な先端プロセスに移行した際には、それらを単一のダイに集積化してもよい。
【００５２】
実施の形態にもとづき、具体的な用語を用いて本発明を説明したが、実施の形態は、本発明の原理、応用を示しているにすぎず、実施の形態には、請求の範囲に規定された本発明の思想を逸脱しない範囲において、多くの変形例や配置の変更が認められる。
【符号の説明】
【００５３】
１…演算処理システム、２…ＣＰＵ、４…キャッシュ、６…バスコントローラ、８…バス、１０…メインメモリ、１２…ＤＭＡコントローラ、１４…キャッシュ、１６…アービタ、３０…コア、３２…命令キャッシュ、３４…組み込みメモリ、１００…信号処理回路、５０…電子機器、５２…ＤＳＰ、５４…アンプ、６０…スピーカ。
【図１】
2015219606.tif 000003
【図２】
2015219606.tif 000004
【図３】
2015219606.tif 000005
【図４】
2015219606.tif 000006
【図５】
2015219606.tif 000007
【図６】
2015219606.tif 000008