(57)【要約】【課題】マルチプロセッサ構成の演算処理装置において、シングルプロセッサとして利用した場合に、キャッシュヒット率の低下を回避する。【解決手段】キャッシュアクセス伝達手段１３２はＣＰＵ１１０からローカルキャッシュアクセスアドレス入力手段１６１を介して取得したアクセスアドレスを、リモートキャッシュアクセスアドレス出力手段１６４を介して共有アドレスバス８１に出力する。キャッシュアクセス制御手段２３１は共有アドレスバス８１からリモートキャッシュアクセスアドレス入力手段２６５を介して取得したアクセスアドレスを用いて、キャッシュメモリ２２１へのアクセスを行う。すなわち、プロセッサ１００のＣＰＵ１１０から出力されたアクセスアドレスは、キャッシュアクセス伝達手段１３２から出力され、キャッシュアクセス制御手段２３１によって取得されて、プロセッサ２００のキャッシュメモリ２２１へのアクセスに利用可能となる。【選択図】図１
2007114890.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵとローカルキャッシュとをそれぞれ有する複数のプロセッサを備えた演算処理装置であって、
前記各プロセッサは、共有バスとその制御を行う制御部とを有する共有バス制御手段に、共通に接続されており、
前記各プロセッサが有するローカルキャッシュは、キャッシュメモリと、キャッシュ制御手段とを備え、
前記キャッシュ制御手段は、それぞれ、
前記ＣＰＵからのアクセスアドレスを受けるローカルキャッシュアクセスアドレス入力手段と、前記共有バスからのアクセスアドレスを受けるリモートキャッシュアクセスアドレス入力手段とに接続されており、前記ローカルキャッシュアクセスアドレス入力手段または前記リモートキャッシュアクセスアドレス入力手段から取得したアクセスアドレスを用いて、前記キャッシュメモリへのアクセスを行うキャッシュアクセス制御手段と、
前記ローカルキャッシュアクセスアドレス入力手段と、前記共有バスにアクセスアドレスを出力するリモートキャッシュアクセスアドレス出力手段とに接続されており、前記ローカルキャッシュアクセスアドレス入力手段から取得したアクセスアドレスを、前記リモートキャッシュアクセスアドレス出力手段により前記共有バスに出力する機能を有するキャッシュアクセス伝達手段と、
シングルキャッシュ動作モードとして動作するか、または、スヌープキャッシュ動作モードとして動作するかを、設定可能に構成されたキャッシュ動作モード選択手段とを備えている
ことを特徴とする演算処理装置。
【請求項２】
請求項１において、
前記キャッシュ動作モード選択手段が、シングルキャッシュ動作モードを設定している場合において、
前記複数のプロセッサのうち、動作する第１のプロセッサにおいて、
前記ローカルキャッシュアクセスアドレス入力手段は有効化されるとともに、前記リモートキャッシュアクセスアドレス入力手段は無効化され、
前記キャッシュアクセス制御手段は、前記ローカルキャッシュアクセスアドレス入力手段から取得したアクセスアドレスを用いて、前記キャッシュメモリへのアクセスを行い、
前記キャッシュアクセス伝達手段は、前記ローカルキャッシュアクセスアドレス入力手段から取得したアクセスアドレスを、前記リモートキャッシュアクセスアドレス出力手段により前記共有バスに出力し、
前記複数のプロセッサのうち、前記第１のプロセッサ以外のプロセッサにおいて、
前記ローカルキャッシュアクセスアドレス入力手段は無効化されるとともに、前記リモートキャッシュアクセスアドレス入力手段は有効化され、
前記キャッシュアクセス制御手段は、前記リモートキャッシュアクセスアドレス入力手段から取得したアクセスアドレスを用いて、前記キャッシュメモリへのアクセスを行い、
前記キャッシュアクセス伝達手段は、前記共有バスにアクセスアドレスを出力しない
ことを特徴とする演算処理装置。
【請求項３】
請求項１記載の演算処理装置において、キャッシュ動作を行う方法であって、
前記キャッシュ動作モード選択手段に、シングルキャッシュ動作モード、または、スヌープキャッシュ動作モードを設定する第１の工程と、
前記第１の工程でシングルキャッシュ動作モードが設定された場合に、前記複数のプロセッサのうち、動作する第１のプロセッサにおいて、
前記ローカルキャッシュアクセスアドレス入力手段を有効化するとともに、前記リモートキャッシュアクセスアドレス入力手段を無効化し、
前記キャッシュアクセス制御手段が、前記ローカルキャッシュアクセスアドレス入力手段から取得したアクセスアドレスを用いて、前記キャッシュメモリへのアクセスを行い、
前記キャッシュアクセス伝達手段が、前記ローカルキャッシュアクセスアドレス入力手段から取得したアクセスアドレスを、前記リモートキャッシュアクセスアドレス出力手段により前記共有バスに出力する第２の工程と、
前記第１の工程でシングルキャッシュ動作モードが設定された場合に、前記複数のプロセッサのうち、前記第１のプロセッサ以外のプロセッサにおいて、
前記ローカルキャッシュアクセスアドレス入力手段を無効化するとともに、前記リモートキャッシュアクセスアドレス入力手段を有効化し、
前記キャッシュアクセス制御手段が、前記リモートキャッシュアクセスアドレス入力手段から取得したアクセスアドレスを用いて、前記キャッシュメモリへのアクセスを行い、
前記キャッシュアクセス伝達手段が、前記共有バスにアクセスアドレスを出力しない第３の工程とを備えた
ことを特徴とするキャッシュ動作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサ構成の演算処理装置に関し、特に、プロセッサからローカルキャッシュを効率的に使用するために有効な技術に関する。
【背景技術】
【０００２】
従来、製造プロセス技術の進歩やスーパーパイプライン技術による動作周波数の向上や、スーパスケーラやその効率を上げるレジスタ・リネーム、ＯＵＴ ＯＦ ＯＲＤＥＲ実行、分岐予測、投機実行技術によるＣＰＩ（CLOCK CYCLES PER INSTRUCTION）の減少による、並列処理技術によるプロセッサの性能向上が行われてきた。さらに、昨今では、上述したような高速実装技術に加えて、マルチプロセッサ技術による処理性能の向上も多く取り入れられている。
【特許文献１】特開昭６３−２４０６４９号公報（第一図）
【特許文献２】特開平５−１９７６２２号公報（第一図）
【非特許文献１】John L. Hennessy & David A. Patterson “Computer Architecture A Quantitative Approach Third Edition” Chapter Six Multiprocessors and Thread-Level Parallelism Snooping Protocols [P.551]
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、マルチプロセッサを使用する場合は、従来から使用しているソフトウェアをそのまま流用することはできない。たとえば、ＬｉｎｕｘＯＳを採用している組み込みソフトウェアでは、マルチプロセッサに対応したＬｉｎｕｘなどのＯＳとＰＯＳＩＸマルチスレッドライブラリ対応などにより、ソフトウェアの改変を最小限にした上でマルチプロセッサを使用することは可能である。しかしながら、ＯＳをもたない組み込みソフト、μＩＴＲＯＮのようにマルチプロセッサ対応が少し遅れていたＯＳなどを採用している場合、ソフトウェア開発工数を考慮する必要がある。
【０００４】
また、将来的にはマルチプロセッサ対応が考えられる場合であっても、ソフトウェア開発工数を鑑み、シングルプロセッサでソフトウェア開発を行った後、そのプラットフォームで継続的にマルチプロセッサ対応を行っていくなどの開発方法がとられることもあり得る。さらに、ハードウェアの不良箇所によっては、すべてのキャッシュは使用可能であるが使用できないプロセッサがある場合もあり、このような場合にも、マルチプロセッサをシングルプロセッサとして利用することが考えられる。
【０００５】
以上のように、マルチプロセッサ技術によって性能向上されたチップにおいても、マルチプロセッサを搭載した演算処理装置をシングルプロセッサとして利用する場合について、考慮する必要がある。
【０００６】
ところが、マルチプロセッサ構成の演算処理装置において、シングルプロセッサのみを使用する場合、キャッシュの容量がローカルキャッシュ分しかないため、キャッシュ容量が低下し、キャッシュヒット率が低下する、という問題が生じる。
【０００７】
前記の問題に鑑み、本発明は、マルチプロセッサの構成をもった演算処理装置において、シングルプロセッサとして利用した場合に、マルチプロセッサが有しているキャッシュ容量を有効に活用し、キャッシュヒット率の低下を回避することを課題とする。
【課題を解決するための手段】
【０００８】
本発明では、マルチプロセッサをシングルプロセッサとして利用する場合、利用しないプロセッサに接続されたローカルキャッシュを、スヌープキャッシュ機能の資源を有効に用いることによって、動作させるプロセッサのローカルキャッシュとして活用する。
【０００９】
すなわち、本発明は、ＣＰＵとローカルキャッシュとをそれぞれ有する複数のプロセッサを備えた演算処理装置として、前記各プロセッサは共有バスとその制御を行う制御部とを有する共有バス制御手段に共通に接続されており、前記各プロセッサが有するローカルキャッシュは、キャッシュメモリと、キャッシュ制御手段とを備え、前記キャッシュ制御手段は、それぞれ、前記ＣＰＵからのアクセスアドレスを受けるローカルキャッシュアクセスアドレス入力手段と、前記共有バスからのアクセスアドレスを受けるリモートキャッシュアクセスアドレス入力手段とに接続されており、前記ローカルキャッシュアクセスアドレス入力手段または前記リモートキャッシュアクセスアドレス入力手段から取得したアクセスアドレスを用いて、前記キャッシュメモリへのアクセスを行うキャッシュアクセス制御手段と、前記ローカルキャッシュアクセスアドレス入力手段と、前記共有バスにアクセスアドレスを出力するリモートキャッシュアクセスアドレス出力手段とに接続されており、前記ローカルキャッシュアクセスアドレス入力手段から取得したアクセスアドレスを、前記リモートキャッシュアクセスアドレス出力手段により前記共有バスに出力する機能を有するキャッシュアクセス伝達手段と、シングルキャッシュ動作モードとして動作するかまたはスヌープキャッシュ動作モードとして動作するかを設定可能に構成されたキャッシュ動作モード選択手段とを備えたものである。
【００１０】
本発明によると、ローカルキャッシュのキャッシュ制御手段において、キャッシュアクセス伝達手段は、ＣＰＵからローカルキャッシュアクセスアドレス入力手段を介して取得したアクセスアドレスを、リモートキャッシュアクセスアドレス出力手段を介して、共有バスに出力することができる。また、キャッシュアクセス制御手段は、ＣＰＵからローカルキャッシュアクセスアドレス入力手段を介して取得したアクセスアドレスを用いて、キャッシュメモリへのアクセスを行うことができるとともに、共有バスからリモートキャッシュアクセスアドレス入力手段を介して取得したアクセスアドレスを用いて、キャッシュメモリへのアクセスを行うことができる。すなわち、あるプロセッサのＣＰＵから出力されたアクセスアドレスは、そのプロセッサのキャッシュアクセス伝達手段から共有バスに出力され、他のプロセッサのキャッシュアクセス制御手段によって共有バスから取得されて、他のプロセッサのキャッシュメモリへのアクセスに利用可能となる。したがって、あるプロセッサが単独で動作する場合に、他のプロセッサのキャッシュメモリを、当該プロセッサのローカルキャッシュとして利用することができる。
【００１１】
そして、本発明に係る演算処理装置において、前記キャッシュ動作モード選択手段が、シングルキャッシュ動作モードを設定している場合において、前記複数のプロセッサのうち動作する第１のプロセッサにおいて、前記ローカルキャッシュアクセスアドレス入力手段は有効化されるとともに、前記リモートキャッシュアクセスアドレス入力手段は無効化され、前記キャッシュアクセス制御手段は、前記ローカルキャッシュアクセスアドレス入力手段から取得したアクセスアドレスを用いて前記キャッシュメモリへのアクセスを行い、前記キャッシュアクセス伝達手段は、前記ローカルキャッシュアクセスアドレス入力手段から取得したアクセスアドレスを前記リモートキャッシュアクセスアドレス出力手段により前記共有バスに出力し、前記複数のプロセッサのうち前記第１のプロセッサ以外のプロセッサにおいて、前記ローカルキャッシュアクセスアドレス入力手段は無効化されるとともに前記リモートキャッシュアクセスアドレス入力手段は有効化され、前記キャッシュアクセス制御手段は、前記リモートキャッシュアクセスアドレス入力手段から取得したアクセスアドレスを用いて前記キャッシュメモリへのアクセスを行い、前記キャッシュアクセス伝達手段は前記共有バスにアクセスアドレスを出力しないものとする。
【００１２】
また、本発明は、前記本発明に係る演算処理装置において、キャッシュ動作を行う方法として、前記キャッシュ動作モード選択手段にシングルキャッシュ動作モードまたはスヌープキャッシュ動作モードを設定する第１の工程と、前記第１の工程でシングルキャッシュ動作モードが設定された場合に、前記複数のプロセッサのうち動作する第１のプロセッサにおいて、前記ローカルキャッシュアクセスアドレス入力手段を有効化するとともに前記リモートキャッシュアクセスアドレス入力手段を無効化し、前記キャッシュアクセス制御手段が、前記ローカルキャッシュアクセスアドレス入力手段から取得したアクセスアドレスを用いて前記キャッシュメモリへのアクセスを行い、前記キャッシュアクセス伝達手段が、前記ローカルキャッシュアクセスアドレス入力手段から取得したアクセスアドレスを前記リモートキャッシュアクセスアドレス出力手段により前記共有バスに出力する第２の工程と、前記第１の工程でシングルキャッシュ動作モードが設定された場合に、前記複数のプロセッサのうち前記第１のプロセッサ以外のプロセッサにおいて、前記ローカルキャッシュアクセスアドレス入力手段を無効化するとともに前記リモートキャッシュアクセスアドレス入力手段を有効化し、前記キャッシュアクセス制御手段が、前記リモートキャッシュアクセスアドレス入力手段から取得したアクセスアドレスを用いて前記キャッシュメモリへのアクセスを行い、前記キャッシュアクセス伝達手段が、前記共有バスにアクセスアドレスを出力しない第３の工程とを備えたものである。
【発明の効果】
【００１３】
本発明によると、マルチプロセッサ構成の演算処理装置をシングルプロセッサとして利用する場合、動作しない他のプロセッサのキャッシュメモリを、動作するプロセッサのローカルキャッシュとして利用することができる。これにより、キャッシュ容量低下によるキャッシュヒット率の低下を回避することができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【００１５】
図１は本実施形態に係る演算処理装置としてのマルチプロセッサ１０の機能ブロック構成図である。マルチプロセッサ１０は、２つのプロセッサ１００，２００と、共有バスとしての共有アドレスバス８１，共有データバス８２およびその制御を行う制御部８３を有する共有バス制御手段８０を備えており、プロセッサ１００，２００はそれぞれ共有バス制御手段８０に共通に接続されている。
【００１６】
プロセッサ１００（２００）は、ＣＰＵ１１０（２１０）とローカルキャッシュ１１１（２１１）とを備えており、ローカルキャッシュ１１１（２１１）は、命令ローカルキャッシュ１２０（２２０）とデータローカルキャッシュ１４０（２４０）から構成されている。命令ローカルキャッシュ１２０（２２０）は、キャッシュメモリ１２１（２２１）とキャッシュ制御手段１２２（２２２）からなり、データローカルキャッシュ１４０（２４０）は、キャッシュメモリ１４１（２４１）とキャッシュ制御手段１４２（２４２）からなる。なお、本実施形態では、プロセッサ２００の各構成要素について、プロセッサ１００と同様である場合には、その符号を括弧書きで示すものとする。
【００１７】
キャッシュ制御手段１２２，１４２（２２２、２４２）は、ＣＰＵ１１０（２１０）からキャッシュメモリ１２１，１４１（２２１，２４１）へのアクセス要求を伝達するキャッシュアクセス制御手段１３１，１５１（２３１，２５１）と、他ローカルキャッシュにアクセス内容を伝達するキャッシュアクセス伝達手段１３２，１５２（２３２，２５２）と、他ローカルキャッシュがアクセスした内容を監視するキャッシュアクセス監視手段１３３，１５３（２３３，２５３）と、ＣＰＵ１１０（２１０）と外部メモリとのデータ転送およびそのデータ整合性の管理を行い、かつ、各キャッシュ間のデータ転送およびそのデータ整合性の管理を行うデータ整合性管理手段１３４，１５４（２３４，２５４）と、マルチプロセッサ１０のそれぞれのローカルキャッシュ１１１（２１１）がスヌープキャッシュとして動作するか、シングルキャッシュとして動作するかを示すキャッシュ動作モードを記憶するキャッシュ動作モード選択手段１３５，１５５（２３５，２５５）を備えている。
【００１８】
キャッシュ動作モード選択手段１３５，１５５，２３５，２５５は、例えばレジスタによって構成されるものであり、スヌープキャッシュ動作モード、または、シングルキャッシュ動作モードのいずれかを、外部からの設定信号によって、共通に、設定可能に構成されている。
【００１９】
命令ローカルキャッシュ１２０（２２０）は、ＣＰＵ１１０（２１０）と共有バス制御手段８０とに接続されている。命令ローカルキャッシュ１２０（２２０）とＣＰＵ１１０（２１０）との間には、ＣＰＵ１１０（２１０）からのフェッチアドレスを伝達するローカルキャッシュアクセスアドレス入力手段１６１（２６１）と、ＣＰＵ１１０（２１０）からのフェッチアドレスに対応する命令を伝達するローカルキャッシュアクセスデータ出力手段１６２（２６２）とが設けられている。
【００２０】
また、命令ローカルキャッシュ１２０（２２０）と共有バス制御手段８０との間には、命令ローカルキャッシュ１２０（２２０）からのフェッチアドレスを伝達するリモートキャッシュアクセスアドレス出力手段１６４（２６４）と、命令ローカルキャッシュ１２０（２２０）からのフェッチアドレスに対応する命令や、他ローカルキャッシュ１４０，２２０,２４０（１２０,１４０，２４０）からの共有データを伝達するリモートキャッシュアクセスデータ入力手段１６７（２６７）とが、設けられている。リモートキャッシュアクセスアドレス出力手段１６４（２６４）は共有バス制御手段８０の共有アドレスバス８１と接続されており、リモートキャッシュアクセスデータ入力手段１６７（２６７）は共有バス制御手段８０の共有データバス８２に接続されている。さらに、他ローカルキャッシュ１４０，２２０，２４０（１２０，１４０，２４０）とのデータ転送のために、他ローカルキャッシュ１４０，２２０，２４０（１２０，１４０，２４０）のアクセス内容を伝達するリモートキャッシュアクセスアドレス入力手段１６５（２６５）と、命令ローカルキャッシュ１２０（２２０）から共有バス制御手段８０にデータを転送するリモートキャッシュアクセスデータ出力手段１６６（２６６）とが、設けられている。リモートキャッシュアクセスアドレス入力手段１６５（２６５）は共有バス制御手段８０の共有アドレスバス８１に接続されており、リモートキャッシュアクセスデータ出力手段１６６（２６６）は共有バス制御手段８０の共有データバス８２に接続されている。
【００２１】
データローカルキャッシュ１４０（２４０）は、ＣＰＵ１１０（２１０）と共有バス制御手段８０とに接続されている。データローカルキャッシュ１４０（２４０）とＣＰＵ１１０（２１０）との間には、ＣＰＵ１１０（２１０）からの読み出しおよび書き込みアドレスを伝達するローカルキャッシュアクセスアドレス入力手段１７１（２７１）と、ＣＰＵ１１０（２１０）からの読み出しアドレスに対応するデータを伝達するローカルキャッシュアクセスデータ出力手段１７２（２７２）と、ＣＰＵ１１０（２１０）からの書き込みアドレスに対応するデータを伝達するローカルキャッシュアクセスデータ入力手段１７３（２７３）とが設けられている。
【００２２】
また、データローカルキャッシュ１４０（２４０）と共有バス制御手段８０との間では、データローカルキャッシュ１４０（２４０）からのデータ読み出しおよび書き込みアドレスを伝達するリモートキャッシュアクセスアドレス出力手段１７４（２７４）と、データローカルキャッシュ１４０（２４０）からの読み出しアドレスに対応するデータや、他ローカルキャッシュ１２０，２２０，２４０（１２０，１４０，２２０）からの共有データを伝達するリモートキャッシュアクセスデータ入力手段１７７（２７７）とが設けられている。リモートキャッシュアクセスアドレス出力手段１７４（２７４）は共有バス制御手段８０の共有アドレスバス８１に接続されており、リモートキャッシュアクセスデータ入力手段１７７（２７７）は共有バス制御手段８０の共有データバス８２に接続されている。さらに、他ローカルキャッシュ１２０，２２０，２４０（１２０，１４０，２２０）とのデータ転送のために、他ローカルキャッシュ１２０，２２０，２４０（１２０，１４０，２２０）のアクセス内容を伝達するリモートキャッシュアクセスアドレス入力手段１７５（２７５）と、データローカルキャッシュ１４０（２４０）から外部メモリ等へデータを転送するリモートキャッシュアクセスデータ出力手段１７６（２７６）とが設けられている。リモートキャッシュアクセスアドレス入力手段１７５（２７５）は共有バス制御手段８０の共有アドレスバス８１に接続されており、リモートキャッシュアクセスデータ出力手段１７６（２７６）は共有バス制御手段８０の共有データバス８２に接続されている。
【００２３】
キャッシュアクセス制御手段１３１，１５１（２３１，２５１）は、ＣＰＵ１１０（２１０）からのアクセスアドレスを受けるローカルキャッシュアクセスアドレス入力手段１６１，１７１（２６１，２７１）と、共有アドレスバス８１からのアクセスアドレスを受けるリモートキャッシュアクセスアドレス入力手段１６５，１７５（２６５，２７５）とに接続されている。そして、ローカルキャッシュアクセスアドレス入力手段１６１，１７１（２６１，２７１）、またはリモートキャッシュアクセスアドレス入力手段１６５，１７５（２６５，２７５）から取得したアクセスアドレスを用いて、キャッシュメモリ１２１，１４１（２２１，２４１）へのアクセスを行う。
【００２４】
キャッシュアクセス伝達手段１３２，１５２（２３２，２５２）は、ローカルキャッシュアクセスアドレス入力手段１６１，１７１（２６１，２７１）と、共有アドレスバス８１にアクセスアドレスを出力するリモートキャッシュアクセスアドレス出力手段１６４，１７４（２６４，２７４）とに接続されている。そして、ローカルキャッシュアクセスアドレス入力手段１６１，１７１（２６１，２７１）からアクセスアドレスを取得したとき、このアクセスアドレスをリモートキャッシュアクセスアドレス出力手段１６４，１７４（２６４，２７４）により、共有アドレスバス８１に出力可能に構成されている。
【００２５】
キャッシュアクセス監視手段１３３，１５３（２３３，２５３）は、リモートキャッシュアクセスアドレス入力手段１６５，１７５（２６５，２７５）と接続されている。
【００２６】
データ整合性管理手段１３４，１５４（２３４，２５４）は、リモートキャッシュアクセスアドレス入力手段１６５，１７５（２６５，２７５）と接続されている。
【００２７】
そして、キャッシュ動作モード選択手段１３５，１５５（２３５，２５５）は、キャッシュアクセス制御手段１３１，１５１（２３１，２５１）、キャッシュアクセス伝達手段１３２，１５２（２３２，２５２）、キャッシュアクセス監視手段１３３，１５３（２３３，２５３）、およびデータ整合性管理手段１３４，１５４（２３４，２５４）と接続されている。すなわち、キャッシュアクセス制御手段１３１，１５１（２３１，２５１）、キャッシュアクセス伝達手段１３２，１５２（２３２，２５２）、キャッシュアクセス監視手段１３３，１５３（２３３，２５３）、およびデータ整合性管理手段１３４，１５４（２３４，２５４）は、キャッシュ動作モード選択手段１３５，１５５（２３５，２５５）に設定された動作モードに応じて、動作を行う。
【００２８】
なお、本実施形態では、共有バス制御手段８０に設けられた共有アドレスバス８１および共有データバス８２は、外部メモリへのアクセスとキャッシュ間のアクセスとで兼用されているが、バス競合状態をできるだけ回避するために、外部メモリ用のバスとキャッシュ間アクセス用のバスを個別に備えるなどの方法もあり、この限りではない。
【００２９】
また、図１において実線または破線の矢印で示した各入力手段および出力手段は、信号を伝達するバスと、その制御機構とによって、実現される。
【００３０】
以下、図１の演算処理装置の動作について、動作モード毎に、説明を行う。
【００３１】
まず、キャッシュ動作モード選択手段１３５，１５５（２３５，２５５）において、スヌープキャッシュ動作モードが設定されている場合について説明する。
【００３２】
ＣＰＵ１１０（２１０）から命令ローカルキャッシュ１２０（２２０）およびデータローカルキャッシュ１４０（２４０）へのメモリアクセスにおいて、キャッシュアクセス制御手段１３１，１５１（２３１，２５１）は、自ＣＰＵ１１０（２１０）のローカルキャッシュアクセスを行うために、ローカルキャッシュアクセスアドレス入力手段１６１，１７１（２６１，２７１）により、キャッシュメモリ１２１，１４１（２２１，２４１）へのアクセスアドレスを取得し、キャッシュメモリアドレス出力手段１３６，１５６（２３６，２５６）を介してキャッシュメモリ１２１，１４１（２２１，２４１）へのアクセスを行う。
【００３３】
またこのとき、キャッシュアクセス伝達手段１３２，１５２（２３２，２５２）は、キャッシュを使用しない（非キャッシュ）読み出しアクセスの場合、キャッシュを使用しない（非キャッシュ）書き込みアクセスの場合、キャッシュを使用する（キャッシュ）書き込みアクセスの場合、および、キャッシュを使用する（キャッシュ）読み出しアクセスのキャッシュミスアクセスの場合に、ローカルキャッシュアクセスアドレス入力手段１６１，１７１（２６１，２７１）により取得したアクセスアドレスを、伝達信号として、リモートキャッシュアクセスアドレス出力手段１６４，１７４（２６４，２７４）を介して共有バス制御手段８０に伝達する。この伝達信号によって、他のローカルキャッシュは、データ整合性を維持するための処理が必要か否かを判定することができる。
【００３４】
キャッシュアクセス監視手段１３３，１５３（２３３，２５３）は、他のローカルキャッシュ２２０（１２０）のキャッシュアクセス伝達手段２３２，２５２（１３２，１５２）から伝達信号が伝達されたとき、自ローカルキャッシュ１２０（２２０）のキャッシュメモリ１２１，１４１（２２１，２４１）を検索する。
【００３５】
そして、伝達信号が、非キャッシュ読み出しアクセス、または、キャッシュ読み出しのキャッシュミスアクセスによるものであるとき、データ整合性管理手段１３４，１５４（２３４，２５４）は、次のように動作する。すなわち、自ローカルキャッシュ１２０（２２０）が他ローカルキャッシュ２２０（１２０）のアクセス対象データを記憶している場合に、自ローカルキャッシュ１２０（２２０）が共有バス制御手段８０に、対象データ、または、対象エントリのデータを出力するよう制御する。
【００３６】
伝達信号が、キャッシュ書き込みのキャッシュヒットアクセスによるものであるとき、データ整合性管理手段１３４，１５４（２３４，２５４）は次のように動作する。すなわち、自ローカルキャッシュ１２０（２２０）が他ローカルキャッシュ２２０（１２０）のアクセス対象データを記憶している場合に、自ローカルキャッシュ１２０（２２０）が、共有バス制御手段８０に他ローカルキャッシュ２２０（１２０）から出力されている対象データを記憶情報として更新するか、または、対象エントリの記憶情報を無効化するよう制御する。
【００３７】
伝達信号が、キャッシュ書き込みのキャッシュミスアクセスによるものであるとき、データ整合性管理手段１３４，１５４（２３４，２５４）は次のように動作する。すなわち、自ローカルキャッシュ１２０（２２０）が他ローカルキャッシュ２２０（１２０）のアクセス対象データを記憶している場合に、自ローカルキャッシュ１２０（２２０）が、共有バス制御手段８０に他ローカルキャッシュ２２０（１２０）から出力されている対象データを記憶情報として更新し、対象エントリのデータを共有バス制御手段８０に出力するよう制御する。そして、他ローカルキャッシュ２２０（１２０）のデータ整合性管理手段２３４，２５４（１３４，１５４）は、共有バス制御手段８０に出力された対象データを記憶情報として更新するか、または、対象エントリの記憶情報を無効化する。
【００３８】
伝達信号が、非キャッシュ書き込みアクセスによるものであるとき、データ整合性管理手段１３４，１５４（２３４，２５４）は次のように動作する。すなわち、自ローカルキャッシュ１２０（２２０）が他ローカルキャッシュ２２０（１２０）のアクセス対象データを記憶している場合、自ローカルキャッシュ１２０（２２０）が、共有バス制御手段８０に他ローカルキャッシュ２２０（１２０）から出力されている対象データを記憶情報として更新するか、または、対象エントリの記憶情報を無効化するよう制御する。
【００３９】
また、データ整合性管理手段１３４，１５４（２３４，２５４）は、外部メモリとのデータ転送および、そのデータ整合性の管理についても行う。なお、本実施形態では、非キャッシュアクセスにおいてもデータ整合性管理手段による対象データを記憶情報として更新するか、または、対象エントリの記憶情報を無効化する制御を行うように記載したが、非キャッシュアクセスは、データ整合性管理を行わないと考えることも可能であり、この限りではない。
【００４０】
次に、キャッシュ動作モード選択手段１３５，１５５（２３５，２５５）において、シングルキャッシュ動作モードが設定されている場合について説明する。なお、ここでは、第１のプロセッサとしてのプロセッサ１００がシングルプロセッサとして動作するものとする。動作するプロセッサの選択は、例えばレジスタ設定によって行えばよく、動作させるプロセッサを切り替えることも可能である。
【００４１】
プロセッサ１００のローカルキャッシュ１１１において、ローカルキャッシュアクセスアドレス入力手段１６１，１７１は有効化されるとともに、リモートキャッシュアクセスアドレス入力手段１６５，１７５は無効化される。一方、プロセッサ２００のローカルキャッシュ２１１において、ローカルキャッシュアクセスアドレス入力手段２６１，２７１は無効化されるとともに、リモートキャッシュアクセスアドレス入力手段２６５，２７５は有効化される。
【００４２】
プロセッサ１００において、キャッシュアクセス制御手段１３１，１５１は、ＣＰＵ１１０のローカルキャッシュアクセスを行うために、ローカルキャッシュアクセスアドレス入力手段１６１，１７１によりキャッシュメモリ１２１，１４１へのアクセスアドレスを取得し、取得したアクセスアドレスを、キャッシュメモリアドレス出力手段１３６，１５６を介してキャッシュメモリ１２１，１４１に出力する。また、キャッシュアクセス伝達手段１３２，１５２は、ローカルキャッシュアクセスアドレス入力手段１６１，１７１により取得したアクセスアドレスを、伝達信号として、常に、リモートキャッシュアクセスアドレス出力手段１６４，１７４を介して共有バス制御手段８０の共有アドレスバス８１に伝達する。この伝達信号によって、プロセッサ１００以外のプロセッサすなわちプロセッサ２００におけるローカルキャッシュ２２０は、ＣＰＵ１１０のローカルキャッシュとして動作することができる。
【００４３】
一方、プロセッサ２００において、キャッシュアクセス制御手段２３１，２５１は、ＣＰＵ１１０のローカルキャッシュアクセスを行うために、リモートキャッシュアクセスアドレス入力手段２６５，２７５によりキャッシュメモリ２２１，２４１へのアクセスアドレスを取得し、取得したアクセスアドレスを、キャッシュメモリアドレス出力手段２３６，２５６を介してキャッシュメモリ２２１，２４１に出力する。また、キャッシュアクセス伝達手段２３２，２５２は、常に、取得したアクセスアドレスを、リモートキャッシュアクセスアドレス出力手段２６４，２７４を介して共有バス制御手段８０の共有アドレスバス８１に、伝達しない。
【００４４】
また、シングルキャッシュ動作モードにおいて、キャッシュアクセス監視手段１３３，１５３（２３３、２５３）は、動作しない。また、データ整合性管理手段１３４，１５４（２３４、２５４）は、各キャッシュ間のデータ転送およびデータ整合性の管理に関しては動作せず、外部メモリとのデータ転送およびデータ整合性の管理に関してのみ、動作する。
【００４５】
以上説明したように、キャッシュ動作モード選択手段１３５，１５５，２３５，２５５がスヌープキャッシュ動作モードを選択している場合は、プロセッサ１００におけるローカルキャッシュ１１１とプロセッサ２００におけるローカルキャッシュ２１１は、それぞれのＣＰＵ１１０，２１０のローカルキャッシュとして動作するとともに、他ＣＰＵ２１０，１１０のリモートキャッシュとして、スヌープ動作をすることができる。
【００４６】
また、キャッシュ動作モード選択手段１３５，１５５，２３５，２５５がシングルキャッシュ動作モードを選択している場合は、プロセッサ１００におけるローカルキャッシュ１１１とプロセッサ２００におけるローカルキャッシュ２１１がともに、ＣＰＵ１１０からローカルキャッシュアクセスアドレス入力手段１６１、１７１を介して取得されたアクセスアドレスによって、キャッシュメモリアドレス出力手段１３６、１５６、２３６、２５６を介してアクセスされる。すなわち、ローカルキャッシュ１１１、２１１がともに、ＣＰＵ１１０のローカルキャッシュとして動作できる。これにより、キャッシュ容量低下によるキャッシュヒット率の低下を回避することができる。
【００４７】
なお、本実施形態では、２つのプロセッサを備えたマルチプロセッサを例にとって説明を行ったが、本発明はこれに限られるものではなく、３つ以上のプロセッサを備えたマルチプロセッサの場合であっても、本実施形態と同様に実現可能である。この場合、シングルキャッシュ動作モードにおいて、全てのキャッシュメモリを、動作するＣＰＵのシングルキャッシュとして利用することができ、本実施形態と同様の効果が得られる。
【００４８】
なお、本実施形態では、説明を容易にするため、一部、データローカルキャッシュ間のキャッシュ間転送のみを説明しているが、この限りではなく、命令ローカルキャッシュ間のキャッシュ間転送についても、同様にして実現できる。
【産業上の利用可能性】
【００４９】
本発明では、マルチプロセッサ構成の演算処理装置をシングルプロセッサとして利用する場合に、キャッシュヒット率の低下を回避することができるので、例えば、シングルプロセッサとしての利用時における演算処理装置の性能向上に有効である。
【図面の簡単な説明】
【００５０】
【図１】本発明の一実施形態に係る演算処理装置としてのマルチプロセッサの構成を示す図である。
【符号の説明】
【００５１】
１０  マルチプロセッサ（演算処理装置）
８０  共有バス制御手段
８１  共有アドレスバス（共有バス）
８２  共有データバス（共有バス）
１００  プロセッサ（第１のプロセッサ）
２００  プロセッサ
１１０，２１０  ＣＰＵ
１１１，２１１  ローカルキャッシュ
１２１，１４１，２２１，２４１  キャッシュメモリ
１２２，１４２，２２２，２４２  キャッシュ制御手段
１３１，１５１，２３１，２５１  キャッシュアクセス制御手段
１３２，１５２，２３２，２５２  キャッシュアクセス伝達手段
１３５，１５５，２３５，２５５  キャッシュ動作モード選択手段
１６１，１７１，２６１，２７１  ローカルキャッシュアクセスアドレス入力手段
１６４，１７４，２６４，２７４  リモートキャッシュアクセスアドレス出力手段
１６５，１７５，２６５，２７５  リモートキャッシュアクセスアドレス入力手段
【図１】
2007114890.tif 000003