(57)【要約】【課題】  プロセッサの外部に設けられた外部メモリの容量を小さくすることができるデータ処理装置及びデータ処理方法を提供すること。【解決手段】  本発明にかかるデータ処理装置は、プロセッサ（１）１００と、プロセッサ（２）１２０と、プロセッサ（１）１００によって読み出し／書き込みが行なわれる外部ＲＡＭ１５０とを備えるデータ処理装置であって、プロセッサ（１）が、プロセッサ（１）で使用されるデータを外部ＲＡＭ１５０上でのアドレスと対応付けて記憶するプログラム・キャッシュ・メモリ１１２を備え、データが、プロセッサ（２）から、プログラム・キャッシュ・メモリ１１２に外部ＲＡＭ１５０を介さずに書き込まれているものである。【選択図】  図１
2006331391.tif 000002
【特許請求の範囲】
【請求項１】
第１のプロセッサと、第２のプロセッサと、前記第１のプロセッサによって読み出し／書き込みが行なわれる外部ＲＡＭとを備えるデータ処理装置であって、
前記第１のプロセッサが、前記第１のプロセッサで使用されるデータを前記外部ＲＡＭ上でのアドレスと対応付けて記憶するキャッシュ・メモリを備え、
前記データが、前記第２のプロセッサから、前記キャッシュ・メモリに前記外部ＲＡＭを介さずに書き込まれるデータ処理装置。
【請求項２】
前記キャッシュ・メモリのメモリ領域のうち、前記第２のプロセッサから前記データが書き込まれたメモリ領域に対応するタグ領域には、前記外部ＲＡＭのアドレスが対応付けられている請求項１に記載のデータ処理装置。
【請求項３】
前記外部ＲＡＭに、前記外部ＲＡＭ上で一定アドレス間隔のジャンプ命令を実行させるプログラムが書き込まれ、
前記プログラムを前記第２のプロセッサが実行した後、前記第２のプロセッサから前記キャッシュ・メモリの前記プログラムが書き込まれたメモリ領域にデータを書き込む請求項２に記載のデータ処理装置。
【請求項４】
前記第２のプロセッサから前記キャッシュ・メモリにデータが書き込まれた状態では、前記第１のプロセッサから前記外部ＲＡＭへのプログラムフェッチアクセスが禁止されている請求項１、２又は３に記載のデータ処理装置。
【請求項５】
第１のプロセッサと、第２のプロセッサと、前記第１のプロセッサによって読み出し／書き込みが行なわれる外部ＲＡＭとを備えたデータ処理装置におけるデータ処理方法であって、
前記第１のプロセッサに設けられたキャッシュメモリに、前記外部ＲＡＭ上のアドレスを対応付け、
前記キャッシュメモリに、前記第２のプロセッサから、前記外部ＲＡＭを介さずにデータを書き込むデータ処理方法。
【請求項６】
前記キャッシュ・メモリのメモリ領域のうち、前記第２のプロセッサから前記データが書き込まれたメモリ領域に対応するタグ領域には、前記外部ＲＡＭのアドレスが対応付けられている請求項５に記載のデータ処理方法。
【請求項７】
前記外部ＲＡＭに、前記外部ＲＡＭ上で一定アドレス間隔のジャンプ命令を実行させるプログラムが書き込まれ、
前記プログラムを前記第２のプロセッサが実行した後、前記第２のプロセッサから前記キャッシュ・メモリの前記プログラムが書き込まれたメモリ領域にデータを書き込む請求項６に記載のデータ処理方法。
【請求項８】
前記第２のプロセッサから前記キャッシュ・メモリにデータが書き込まれた状態では、前記第１のプロセッサから前記外部ＲＡＭへのプログラムフェッチアクセスが禁止されている請求項４、５又は６に記載のデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置及びデータ処理方法に関し、特に詳しくは、複数のプロセッサを有するデータ処理装置及びそのデータ処理方法に関する。
【背景技術】
【０００２】
近年、１つのＬＳＩチップ上に複数のプロセッサ・コア・モジュールや周辺ＲＡＭ、周辺機能モジュールを搭載したものが普及している。また高機能化により、前述のプロセッサ・コア・モジュールがプログラム・キャッシュ・メモリを内蔵していることが多い。通常のＲＡＭよりも高速なプログラム・キャッシュ・メモリを設けることによって、プロセッサの処理速度を高速化することができる。また、キャッシュを有するプロセッサに対して、割り込み要求をして割り込み処理を行なう割り込み方法が開示されている（特許文献１）。この方法では、予測したタイミングで、割り込み処理を行なうプログラムを主記憶手段からキャッシュへと転送している。
【０００３】
ところで、ＬＳＩチップ上において、プロセッサが有するプログラム・メモリ容量に収まらない大きさのプログラム・コードを実行させたい場合、プロセッサに持たせるプログラム・メモリ容量や周辺ＲＡＭのサイズを拡大することが最も簡単な解決手段である。
【０００４】
一方、ＬＳＩチップに対して、生産歩留まりや実装面積の観点から、搭載するプロセッサ・コアやＲＡＭのサイズを小さくすることが求められている。また、搭載するプロセッサ・コア・モジュールは再利用可能なように部品化されており、個々のＬＳＩチップ向けにプログラム・メモリ容量を変更したプロセッサ・コアを開発することは、コスト面での問題から困難となっている。
【０００５】
こうした背景のもとで、プログラム・メモリ容量の拡大といったハードウェアの変更なしに、内蔵プログラム・メモリ容量以上の大きさのプログラム・コードを実行させることを可能とする手法が必要となっている。すなわち、プロセッサを有するデータ処理装置では、内蔵プログラム・メモリの容量を実行されるプログラムよりも小さくすることが望まれる場合がある。
【０００６】
複数のプロセッサを有する従来のデータ処理装置のシステム構成について図１２を用いて説明する。図１２は従来のデータ処理装置のシステム構成を示すブロック図である。システムはプロセッサ（１）６００、プロセッサ（２）６２０及び外部ＲＡＭ６５０から構成されている。プロセッサ（１）６００と外部ＲＡＭ６５０とはメモリ・バスで接続されており、プロセッサ（２）６２０と外部ＲＡＭ６５０とはメモリ・バスで接続されている。プロセッサ（２）６２０からプロセッサ（１）６００へは割り込み信号６４０を出力することができる。
【０００７】
プロセッサ（１）６００は、プログラムを記憶する内蔵プログラム・メモリ６１３と外部ＲＡＭ６５０に対するプログラム・フェッチ・アクセスでフェッチしたプログラム・コードを記憶するプログラム・キャッシュ・メモリ６１２とを備えている。プログラム・キャッシュ・メモリ６１２、内蔵プログラム・メモリ６１３及び外部ＲＡＭ６５０からのプログラムコードの読み出し及びデータの書き込みがメモリ・コントローラ６１１によってコントロールされる。演算ユニット６１０はメモリ・コントローラを制御して内蔵プログラム・メモリ６１３等に記憶されたプログラム・コードを読み出し、プログラムを実行する。
【０００８】
プロセッサ（２）６２０は、プログラムを記憶する内蔵プログラム・メモリ６３２を備えている。内蔵プログラム・メモリ６３２及び外部ＲＡＭ６５０からのプログラムコードの読み出し及びデータの書き込みがメモリ・コントローラ６３１によってコントロールされる。演算ユニット６３０はメモリ・コントローラを制御して内蔵プログラム・メモリ６３２等に記憶されたプログラム・コードを読み出し、プログラムを実行する。
【０００９】
図１３にプロセッサ（１）６００及びプロセッサ（２）６２０のメモリ・マップを示す。外部ＲＡＭ６５０はプロセッサ（１）６００およびプロセッサ（２）６２０のメモリ・マップ上にそれぞれマッピングされている。すなわち、プロセッサ（１）のメモリマップには、外部ＲＡＭ７００がマッピングされ、プロセッサ（２）のメモリマップには外部ＲＡＭ７１１がマッピングされている。よって、プロセッサ（１）６００及びプロセッサ（２）６２０から外部ＲＡＭ６５０に対して任意に読み出し／書き込みができる。また、プロセッサ（１）６００の内蔵プログラム・メモリ６１３の容量に収まらないプロセッサ（２）用プログラム・コードをプロセッサ（２）６２０のメモリ・マップ上のプロセッサ（１）用プログラム・コード テーブル・データ７１０に格納している。
【００１０】
一般的なプログラム・キャッシュ・メモリの動作を図１１を用いて説明する。図１１はプログラム・キャッシュ・メモリの構成を示す図である。プロセッサが外部ＲＡＭ６５０に対してプログラム・フェッチ・アクセスを行うと、そのフェッチしたプログラム・コードをハードウェアが自動的にプログラム・キャッシュ・メモリ領域５１０、５１１、５１２、５１３のうちのいずれかの領域へコピーする。このコピー動作時、フェッチしたプログラム・コードを含めて、その前後のプログラム・コードがLバイト分、まとめてコピーされる。また同時に、コピー先のメモリ領域５００を管理するプログラム・キャッシュ・メモリ・タグ５３０〜５３３に対し、外部ＲＡＭのどのアドレスからプログラム・コードをコピーしたかをハードウェアが記録する。
【００１１】
図１４および図１５に従来のプログラム・フローチャートを示す。図１４はプロセッサ（１）６００の動作を示すフローチャートであり、図１５はプロセッサ（２）６２０の動作を示すフローチャートである。まず、プロセッサ（２）６２０は外部ＲＡＭ７１１へテーブルコード (プロセッサ（１）用プログラム・コードのうち、プロセッサ（１）の内蔵プログラム・メモリ６１３の容量に収まらないもの)のコピーを開始する（ステップ８１１）。これにより、外部ＲＡＭ６５０に前述のプログラム・コードが格納される。そして、テーブル・データ７１０のコピーが完了したら、プロセッサ（２）６２０がプロセッサ（１）６００に対して割り込み信号６４０を用いてプログラム・コード７１０の書き込み完了を通知する（ステップ８１２）。プロセッサ（１）６００は、ステップ８０１にてこの割り込み信号６４０の信号入力を待っており、この信号入力によって通常のプログラム実行状態に移行する（ステップ８０２）。この後、プロセッサ（１）６００が外部ＲＡＭ６５０上のプログラム・コードを実行した際には、実行したプログラム・コードが逐次ハードウェア動作により外部ＲＡＭ１５０からプログラム・キャッシュ・メモリ６１２へコピーされていく。
【００１２】
従来技術においては、外部ＲＡＭ６５０にはプロセッサ（１）の内蔵プログラム・メモリ６１３の容量を超えた部分のプログラム・コードを格納している。そのため、それ以外の用途として外部ＲＡＭ６５０を使用することができず、他用途のためには新たなＲＡＭを搭載しなければならなくなる、という問題点がある。この問題が発生する理由について以下に説明する。
【００１３】
外部ＲＡＭ６５０に格納されているプロセッサ（１）用プログラム・コードは、それらが全てプロセッサ（１）のプログラム・キャッシュ・メモリ６１２へコピーされない限り、プロセッサ（１）のメモリ・コントローラ６１１からのフェッチ・アクセスを受ける可能性がある。このため、プロセッサ（１）用プログラム・コードを破壊しないよう、外部ＲＡＭ６５０の格納データ内容を書き換えることができない。ここで、外部ＲＡＭ６５０からプロセッサ（１）のプログラム・キャッシュ・メモリ６１２へ格納データ内容を全てコピーさせるためには、外部ＲＡＭ６５０上のプログラム・コードをプロセッサ（１）６００に網羅的に実行させる必要がある。すなわち、内蔵プログラム・メモリ６１３に格納されていないプログラムコード全てを読み出してプログラム・キャッシュ・メモリ６１２に書き込む必要がある。
【００１４】
【特許文献１】特開平１１−３０６０２９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
しかし、プログラム・コードが一般的に有している条件分岐構造と実行条件により、実行頻度が低いプログラム・コード箇所が存在することが考えられる。そのため、プロセッサ（１）６００が網羅的にプログラム・コードを実行できたかどうかを検出することが困難である。すなわち、外部ＲＡＭ６５０上の全てのプログラム・コードがプロセッサ（１）のプログラム・キャッシュ・メモリ６１２へコピーされたかどうかの検出が困難である。従って、外部ＲＡＭ６５０に格納されているプロセッサ（１）用プログラム・コードを書き換えることができない。この結果、外部ＲＡＭ６５０の一部がプログラム・コードを格納するための用途として占有されてしまう。この場合、外部ＲＡＭ６５０に内蔵プログラム・メモリ６１３に記憶されていない部分の全てのプログラムコードを格納しておく必要がある。従って、外部ＲＡＭ６５０の空き容量が小さくなってしまい、外部ＲＡＭを一定容量以下にすることができないという問題点が生じてしまう。
【課題を解決するための手段】
【００１６】
本発明にかかるデータ処理装置は、第１のプロセッサと、第２のプロセッサと、前記第１のプロセッサによって読み出し／書き込みが行なわれる外部ＲＡＭとを備えるデータ処理装置であって、前記第１のプロセッサが、前記第１のプロセッサで使用されるデータを前記外部ＲＡＭ上でのアドレスと対応付けて記憶するキャッシュ・メモリを備え、前記データが、前記第２のプロセッサから、前記キャッシュ・メモリに前記外部ＲＡＭを介さずに書き込まれるものである。これにより、外部ＲＡＭの空き容量を増加させることができ、外部ＲＡＭの小型化を図ることができる。
【００１７】
本発明にかかるデータ処理方法は、第１のプロセッサと、第２のプロセッサと、前記第１のプロセッサによって読み出し／書き込みが行なわれる外部ＲＡＭとを備えたデータ処理装置におけるデータ処理方法であって、前記第１のプロセッサに設けられたキャッシュメモリに、前記外部ＲＡＭ上のアドレスを対応付け、前記キャッシュメモリに、前記第２のプロセッサから、前記外部ＲＡＭを介さずにデータを書き込むものである。これにより、外部ＲＡＭの空き容量を増加させることができ、外部ＲＡＭの小型化を図ることができる。
【発明の効果】
【００１８】
本発明によれば、プロセッサの外部に設けられた外部メモリの容量を小さくすることができるデータ処理装置及びデータ処理方法を提供することができる。
【発明を実施するための最良の形態】
【００１９】
以下に、本発明を適用可能な実施の形態が説明される。以下の説明は、本発明の実施形態を説明するものであり、本発明は以下の実施形態に限定されるものではない。説明の明確化のため、以下の記載は、適宜、省略及び簡略化がなされている。又、当業者であれば、以下の実施形態の各要素を、本発明の範囲において容易に変更、追加、変換することが可能であろう。尚、各図において同一の符号を付されたものは同様の要素を示しており、適宜、説明が省略される。
【００２０】
本発明にかかるデータ処理装置のシステム構成について図１を用いて説明する。図１は、本発明にかかるデータ処理装置のシステム構成を示すブロック図である。本発明にかかるデータ処理装置は、第１のプロセッサ（１）１００と第２のプロセッサ（２）１２０とを備えるＬＳＩから構成されている。データ処理装置はプロセッサ（１）１００と、プロセッサ（２）１２０とプロセッサ（１）１００及びプロセッサ（２）１２０の外部に設けられた外部ＲＡＭ１５０とを備えている。プロセッサ（１）１０とプロセッサ（２）１２０とはメモリ・バスで接続されており、プロセッサ（１）１００と外部ＲＡＭ１５０とはメモリ・バスで接続されている。また、プロセッサ（１）１００からプロセッサ（２）１２０へは割り込み信号（１）１４０を出力することができ、プロセッサ（２）１２０からプロセッサ（１）１００へは割り込み信号（２）１４１を出力することができる。
【００２１】
プロセッサ（１）は、演算ユニット１１０とメモリ・コントローラ１１１とプログラム・キャッシュ・メモリ１１２と内蔵プログラム・メモリ１１３とＲＯＭ１１４を備えている。メモリ・コントローラ１１１はプログラム・キャッシュ・メモリ１１２、内蔵プログラム・メモリ１１３及び外部ＲＡＭ１５０とそれぞれバスラインで接続されている。プログラム・キャッシュ・メモリ１１２、内蔵プログラム・メモリ１１３及び外部ＲＡＭ１５０からのプログラムコードの読み出し及びデータの書き込み等がメモリ・コントローラ１１１によってコントロールされる。演算ユニット１１０とメモリ・コントローラ１１１とはバスラインで接続されている。演算ユニット１１０はメモリ・コントローラ１１１を制御して内蔵プログラム・メモリ１１３等に記憶されたプログラム・コードを読み出し、プログラムを実行する。そして、メモリ・コントローラ１１１は演算ユニット１１０による演算処理結果を外部ＲＡＭ１５０に書き込む。これにより、実行プログラムに応じて所定のデータ処理が行なわれる。内蔵プログラム・メモリ１１３より高速なプログラム・キャッシュ・メモリ１１２を設けることによって処理速度を向上することができる。ＲＯＭ１１４には、プログラム・キャッシュ・メモリ１１２を初期化するための初期化プログラムが記憶されている。この初期化プログラムについては後述する。
【００２２】
プロセッサ（２）１２０は演算ユニット１３０とメモリ・コントローラ１３１と内蔵プログラム・メモリ１３２とＲＯＭ１３３とを備えている。演算ユニット１３０はメモリ・コントローラ１３１とバスラインで接続されている。メモリ・コントローラ１３１は内蔵プログラム・メモリ１３２とバスラインで接続されている。演算ユニット１３０はメモリ・コントローラ１３１によって内蔵プログラム・メモリ１３２から読み出されたプログラムコードに基づいて演算処理を行なう。さらに、メモリ・コントローラ１３１は、プロセッサ（１）１００のプログラム・キャッシュ・メモリ１１２とメモリバスラインで接続されている。メモリ・コントローラ１３１はプロセッサ（１）のプログラム・キャッシュ・メモリ１１２に対してプログラムコードの書き込みを行う。ＲＯＭ１３３には、プロセッサ（１）で実行される実行プログラムが記憶されている。ＲＯＭ１３３に記憶されたプロセッサ（１）で実行される実行プログラムは、例えば、ＤＭＡ（ダイレクトメモリアクセス）によってプロセッサ（１）の内蔵プログラム・メモリ１１３に書き込まれる。
【００２３】
図２にプロセッサ（１）及びプロセッサ（２）のメモリ・マップを示す。内蔵プログラム・メモリ１１３は、プロセッサ（１）１００のメモリマップ上にマッピングされている。さらに、外部ＲＡＭ１５０はプロセッサ（１）のメモリマップ上にマッピングされており、プロセッサ（１）１００から任意に読み出し／書き込みができる。プロセッサ（１）１００のプログラム・キャッシュ・メモリ１１２はプロセッサ（２）のメモリ・マップ上にマッピングされている。すなわち、プロセッサ（２）のメモリマップには、プログラ・キャッシュ・メモリ２１１が設けられている。よって、プログラム・キャッシュ・メモリ１１２上のデータはプロセッサ（２）１２０から任意に読み出し／書き込みができる。さらに、プロセッサ（１）の内蔵プログラム・メモリ１１３の容量に収まらない部分のプロセッサ（１）用プログラム・コードをプロセッサ（２）１２０のメモリ・マップ上にテーブル・データ２１０として格納している。すなわち、ＲＯＭ１３３に記憶された実行プログラムのうち、内蔵プログラム・メモリ１１３に書き込むことができない部分のプログラムコードが、テーブル・データ２１０としてメモリ・マップ上にマッピングされている。メモリ・コントローラ１１１はこのメモリマップに従って、プログラムコードやデータの読み出し／書き込みを実行する。
【００２４】
次に、プロセッサ（１）１００のプログラム・キャッシュ・メモリ１１２の構成について図１１を用いて説明する。図１１はプログラム・キャッシュ・メモリ１１２の構成を示すブロック図である。一般的にプログラム・キャッシュ・メモリ１１２は、プログラム・コードを格納するメモリ領域５００と、その領域を管理するタグ領域５２０から構成される。また前述のメモリ領域５００はｎ個の小さなプログラム・キャッシュ・メモリ領域５１０、５１１、５１２、５１３に分かれている。それら各々のプログラム・キャッシュ・メモリ領域５１０〜５１３のサイズは全て同一であってLバイトである。そして、メモリ領域５００から分割されたプログラム・キャッシュ・メモリ領域５１０、５１１、５１２、５１３を管理するため、タグ領域５２０もｎ個のプログラム・キャッシュ・メモリ・タグ５３０、５３１、５３２、５３３に分かれている。これらに関し、プログラム・キャッシュ・メモリ領域５１０とプログラム・キャッシュ・メモリ・タグ５３０、プログラム・キャッシュ・メモリ領域５１１とプログラム・キャッシュ・メモリ・タグ５３１、というように各々が対で動作するようになっている。すなわち、各プログラム・キャッシュ・メモリ領域５１０〜５１３は各プログラム・キャッシュ・メモリ・タグ５３０〜５３３と対応付けられている。プロセッサ（１）１００は、例えば、プログラム・キャッシュ・メモリ領域５１０のプログラムコードの書き換えを行なうと、それに対応するプログラム・キャッシュ・メモリ・タグ５３０の書き換えも行なう。プログラム・キャッシュ・メモリ・タグ５３０〜５３３には、プログラム・キャッシュ・メモリ領域５１０〜５１３に格納されているプログラ・コードの外部ＲＡＭ上のアドレスが書き込まれる。すなわち、プログラム・キャッシュ・メモリ・タグ５３０〜５３３は、プログラム・キャッシュ・メモリ領域５１０〜５１３に書き込まれたプログラム・コードが格納されている外部ＲＡＭ１５０上のアドレスを記憶する。これにより、プログラム・キャッシュ・メモリ１１２には、プログラム・コードと、その外部ＲＡＭ上のコピー元のアドレスとが１対１に対応付けられて記憶される。
【００２５】
次に、プログラム・キャッシュ・メモリの初期化を行なう手順について図３及び図４を用いて説明する。図３及び図４はプログラム・キャッシュ・メモリの初期化の手順を示すフローチャートである。また、図３はプロセッサ（１）１００の動作を示しており、図４はプロセッサ（２）１２０の動作を示している。まず、プロセッサ（１）１００はプログラム・キャッシュ・メモリ１１２の初期化用プログラム・コードをコピーし、外部ＲＡＭ１５０に格納する（ステップ３０１）。この初期化用プログラム・コードは図５のプログラム・コード４１０、４１１、４１２、４１３のように格納される。なお、図５では、１Ｋバイト分のメモリ領域が４つ設けられている構成のプログラム・キャッシュ・メモリ１１２について示している。この時、プログラム・キャッシュ・メモリ１１２の内容は不定状態である。
【００２６】
そして、アドレスm番地からの前述の初期化用プログラム・コード４１０、４１１、４１２、４１３を実行する（ステップ３０２）。初期化用プログラム・コードを実行すると、1Kバイト飛びに３回ジャンプし、その後プログラム呼び出し元アドレスにリターンする。すなわち、プログラム・コード４１０〜４１２は、１Ｋバイト間隔のジャンプ命令であり、プログラムコード４１３はリターン命令である。そして、このプログラム・コード４１０〜４１１に対して、プロセッサ（１）からプログラム・フェッチ・アクセスが実行される。これにより、プログラム・キャッシュ・メモリ１１２のハードウェア動作によって、図６のようにアドレスｍ番地から4Ｋバイト分の外部ＲＡＭ１５０の内容全てがプログラム・キャッシュ・メモリ１１２へコピーされる。また同時にプログラム・キャッシュ・メモリ・タグ（１）５３０、プログラム・キャッシュ・メモリ・タグ（２）５３１、プログラム・キャッシュ・メモリ・タグ（３）５３２、プログラム・キャッシュ・メモリ・タグ（４）５３３に対して、外部ＲＡＭ１５０のアドレスm番地から4Kバイト分のメモリ領域からプログラム・コードがコピーされたという情報が記録される。すなわち、プログラム・キャッシュ・メモリ・タグ５３０〜５３３には、プログラム・キャッシュ・メモリ領域５１０〜５１３のそれぞれに対して、外部ＲＡＭ１５０のコピー元のアドレスが対応付けられて記憶される。
【００２７】
プロセッサ（１）１００は、プログラム・キャッシュ・メモリ１１２の初期化処理が完了したことを、プロセッサ（２）１２０に対して割り込み信号（１）１４０を用いて通知する（ステップ３０３）。プロセッサ（２）１２０はこの割り込み信号（１）１４０の信号入力を待っている（ステップ３１１）。そして、割り込み信号（１）の入力によってプロセッサ（２）はテーブル・データ２１０からプロセッサ（１）１００のプログラム・キャッシュ・メモリ２１１へのプログラム・コードのコピーを開始する（ステップ３１２）。すなわち、プロセッサ（２）のＲＯＭ１３３からプログラム・キャッシュ・メモリ１１２にプログラム・コードの一部をコピーする。換言すると、ＲＯＭ１３３に記憶された実行プログラムのうち、内蔵プログラム・メモリ１１３に書き込まれていないプログラムコードがプログラム・キャッシュ・メモリ１１２に書き込まれる。このとき、プロセッサ（２）のＲＯＭ１３３から内蔵プログラム・メモリ１１３にプログラム・コードの一部がＤＭＡによって書き込まれる。
【００２８】
プロセッサ（１）のプログラム・キャッシュ・メモリ１１２はプロセッサ（２）のメモリ・マップ上のプログラム・キャッシュ・メモリ２１１にマッピングされている。このため、プロセッサ（２）１２０から書き込んだプログラム・コードはそのままプロセッサ（１）のプログラム・キャッシュ・メモリ１１２に書き込まれる。この時までに、プロセッサ（１）１００は外部ＲＡＭ１５０へのフェッチ・アクセスを行っていないため、プログラム・キャッシュ・メモリ・ タグ５３０、５３１、５３２、５３３はステップ３０２でのプロセッサ（１）１００の初期化処理時の状態のまま保持されている。
【００２９】
プロセッサ（２）１２０からプログラム・キャッシュ・メモリ１１２へのプログラムコードの書き込みが終了したら、プロセッサ（２）１２０はプロセッサ（１）１００に対し割り込み信号（２）を用いてプログラム・コードの書き込み完了を通知する（ステップ３１３）。プロセッサ（１）はこの割り込み信号（２）の信号入力を待っており（ステップ３０４）、割り込み信号（２）の入力によって通常のプログラム実行状態に移行する（ステップ３０５）。また、プロセッサ（２）１２０は割り込み信号（２）を出力後、通常のプログラム実行状態に移行する（ステップ３１４）。
【００３０】
この時、プロセッサ（１）のプログラム・キャッシュ・メモリ・タグ５３０、５３１、５３２、５３３は外部ＲＡＭ１５０のアドレスを示している。このため、プロセッサ（２）１２０がステップ３１２にて書き込んだプログラム・コードをプロセッサ（１）１００が実行する際、あたかもプロセッサ（１）１００が以前にアドレスm番地以降の外部ＲＡＭ１５０からプログラム・フェッチしてプログラム・キャッシュ・メモリ１１２に取り込んだプログラム・コードであるかのように実行させることができる。従って、プログラムフェッチにより、プログラム・キャッシュ・メモリ１１２を書き換えることがなく、プログラムを実行することができる。
【００３１】
上述のように、プログラム・キャッシュ・メモリ１１２の初期化時、外部ＲＡＭ１５０にプログラム・キャッシュ・メモリ初期化用プログラム・コード４１０、４１１、４１２、４１３を格納し、これをプロセッサ（１）１００が実行する。このことにより、プロセッサ（１）のプログラム・キャッシュ・メモリ１１２の内容が外部ＲＡＭ１５０に格納されているプログラム・コードと同一であるとプロセッサ（１）１００に認識させることができる。このため、その後、ステップ３１２にてプロセッサ（２）１２０がプロセッサ（１）のプログラム・キャッシュ・メモリ１１２の内容を書き換えたとしても、プログラム・キャッシュ・メモリ・タグ５１０〜５１３が書き換わらない。これにより、プロセッサ（１）１００はそのプログラム・コードが外部ＲＡＭ１５０の内容と差異が無いと判断する。このため、プロセッサ（１）１００は外部ＲＡＭ１５０へ一切プログラム・フェッチ・アクセスを行わず、プログラム・キャッシュ・メモリ１１２に格納されているプログラム・コードを実行するように動作する。このため、本発明においては初期化後には外部ＲＡＭ１５０を書き換えることが可能になり、外部ＲＡＭ１５０を他用途として使用することができる。
【００３２】
なお上述の説明では、プログラム・キャッシュ・メモリ領域を1Kバイトとし、４つのプログラム・キャッシュ・メモリ領域５１０〜５１３、および４つのプログラム・キャッシュ・メモリ・タグ５３０〜５３３から構成されているプロセッサ（１）のプログラム・キャッシュ・メモリ１１２について説明したが、これに限るものではない。プログラム・キャッシュ・メモリ領域及びプログラム・キャッシュ・メモリ・タグが各々ｘ個ずつで構成されており、プログラム・キャッシュ・メモリ領域のサイズがｙバイトである場合、プログラム・キャッシュ・メモリ初期化用プログラム・コード４１０、４１２、４１３、４１４のジャンプ命令の命令格納アドレスをｙバイト間隔、格納命令個数を（x−1）個、ジャンプ命令によるジャンプ幅をｙバイトとすることで、本発明を適用することが可能となる。
【００３３】
上述のように、プロセッサ（１）１００のプログラム・キャッシュ・メモリ１１２がプロセッサ（２）１２０のメモリ・マップ上にマッピングされるようにメモリ・バスを接続する。これにより、プロセッサ（１）の内蔵プログラム・メモリ容量に収まらない部分のプロセッサ（１）用プログラム・コードを、プロセッサ（２）１２０が直接プロセッサ（１）１００のプログラム・キャッシュ・メモリ１１２へ書き込むことが可能となる。また、プロセッサ（２）１２０によってプロセッサ（１）１００のプログラム・キャッシュ・メモリ１１２へ書き込まれたプロセッサ（１）用プログラム・コードを、あたかも外部ＲＡＭ１５０からプロセッサ（１）がフェッチしたプログラム・コードであるかのようにプロセッサ（１）に認識させる初期化プログラム・コードを用いる。これにより、初期化以後では外部ＲＡＭ１５０にプログラム・コードを格納しておくことなくプロセッサ（１）１００がプログラム・コードを実行することが可能となる。
【００３４】
また、初期化プログラムコードを外部ＲＡＭ上において一定アドレス間隔でジャンプ命令を実行させるプログラムとする。これにより、プロセッサ（１）１００が初期化中にフェッチアクセスを行なうことで、外部ＲＡＭ１５０のプログラムコードがプログラム・キャッシュ・メモリ１１２に書き込まれる。このとき、外部ＲＡＭ１５０に格納されているプログラムコードとその外部ＲＡＭ１５０上でのアドレスがプログラム・キャッシュ・メモリ１１２に対応付けて記憶される。そして、プロセッサ（２）１２０でプログラム・キャッシュ・メモリ１１２のメモリ領域のみを書き換えることにより、外部ＲＡＭの格納データ内容とプロセッサ（１）のプログラム・キャッシュ・メモリの格納データ内容が等価であるとプロセッサ（１）に認識させることができる。
【００３５】
上述の構成では、プログラム・メモリのメモリ容量を超える大きさのプログラム・コードを実行させる場合でも、外部ＲＡＭのメモリ容量の増大を防ぐことができる。例えば、内蔵プログラム・メモリ１１３とプログラム・キャッシュ・メモリ１１２の合計容量と等しいか、それ以下のプログラムを実行する場合、外部ＲＡＭ１５０に対してプログラムコードを格納する必要がなくなる。よって、外部ＲＡＭ１５０の容量の増加を防ぐことができる。また、内蔵プログラム・メモリ１１３とプログラム・キャッシュ・メモリ１１２の合計容量を超えるプログラムを実行する場合でも、外部ＲＡＭ１５０の実質的な空き容量の低下を防ぐことができる。例えば、プログラム・キャッシュ・メモリ１１２の初期化後、プログラムの実行中は、外部ＲＡＭ１５０に対してプログラムフェッチアクセスを行なわないようにする。あるいは、プロセッサ（２）１２０からプログラム・キャッシュ・メモリ１１２にプログラムが書き込まれた状態において、外部ＲＡＭ１５０に対してプログラムフェッチアクセスを行なわないようにする。これにより、プログラム・キャッシュ・メモリ１１２の書き換えが禁止される。すなわち、外部ＲＡＭ１５０の記憶されているプログラムコードを読み込んだ場合でも、プログラムキャッシュアドレスにそのプログラムコードを書き込まないようにする。これにより、プログラム・キャッシュ・メモリの容量分だけ、外部ＲＡＭ１５０の容量の増加を防ぐことができる。そのため、外部ＲＡＭ１５０のうち、他用途に使用することができる空き容量を実質的に増加することができる。
【００３６】
本発明ではプロセッサ（１）１００が内蔵する内蔵プログラム・メモリ１１３のメモリ容量を超える大きさのプログラム・コードを実行させる場合に、プロセッサ（１）の内蔵プログラム・メモリ容量を拡大させる必要がなくなる。これにより、内蔵プログラム・メモリ１１３の容量の増加を防ぐことができる。また、外部ＲＡＭ１５０に格納するプログラムコードの容量を低減できるため、初期化時以後、外部ＲＡＭ１５０をデータ・メモリ等の用途として使用することができる。これにより、既存プロセッサ・コア・モジュールの流用による開発コスト削減、およびメモリ・モジュール・ハードウェアのLSI実装面積縮小による生産歩留まり向上が可能となる。
【００３７】
実施例１
上記したデータ処理装置の実施例について図７を用いて説明する。図７は実施例１にかかるデータ処理装置の構成を示すブロック図である。なお、上述のデータ処理装置と同様の構成については、説明を省略する。また、図７では、説明の簡略化のため、プロセッサ（２）１２０の内部構成と、プロセッサ（１）に設けられたＲＯＭ１１４の構成については省略して図示している。また、図７では、説明の明確化のため、プログラム・キャッシュ・メモリ１１２のタグ領域５２０を併せて示している。
【００３８】
図７に示すようにデータ処理装置は、プロセッサ（１）１００、プロセッサ（２）１２０、及び外部ＲＡＭ１５０を備えている。プロセッサ（１）１００、プロセッサ（２）１２０、及び外部ＲＡＭ１５０はシステムバス１６０で接続されている。プロセッサ（１）１００、及びプロセッサ（２）１２０からの外部ＲＡＭ１５０に対するアクセスや、プロセッサ（１）１００とプロセッサ（２）１２０との間の通信は、システムバス１６０を介して行なわれる。プロセッサ（１）１００、及びプロセッサ（２）１２０は例えば、ＣＰＵである。プロセッサ（２）１２０はメインプロセッサであり、プロセッサ（１）１００はプロセッサ（２）の支配下で動作するコプロセッサである。
【００３９】
演算ユニット１１０が外部ＲＡＭ１５０にアクセスするときや、プロセッサ（２）と通信を行なうときは、データアクセスＩ／Ｆ１１７、及びシステムバスＩ／Ｆ１１８を介してデータのやり取りを行なう。システムバスＩ／Ｆ１１８はシステムバス１６０と接続されており、データアクセスＩ／Ｆ１１７は、システムバスＩ／Ｆ１１８と接続されている。プロセッサ（１）１１０には、内蔵プログラム・メモリ１１３が設けられている。内蔵プログラム・メモリ１１３には、常時使用されるプログラムが記憶される。
【００４０】
外部ＲＡＭ１５０に記憶されたプログラムをキャッシュするときは、外部ＲＡＭ１５０にキャッシュアドレス領域からアクセスする。これにより、キャッシュコントローラ１１１ａが動作する。キャッシュコントローラ１１１ａは、図１で示したメモリ・コントローラ１１１の一部を構成しており、プログラム・キャッシュ・メモリ１１２への書き込みを制御する。従って、キャッシュコントローラ１１１ａが、外部ＲＡＭ１５０上のプログラムをプログラム・キャッシュ・メモリ１１２に書き込む。この時、システムバスＩ／Ｆ１１８、及びデータアクセスＩ／Ｆ１１７を介して外部ＲＡＭ１５０のプログラムが読み込まれる。また、キャッシュコントローラ１１１ａは、外部ＲＡＭ１５０から読み出されたプログラムのアドレスをプログラム・キャッシュ・メモリ１１２のメモリ・タグに書き込む。これにより、外部ＲＡＭ１５０のアドレスがプログラム・キャッシュ・メモリ１１２のタグ領域５２０に書き込まれる。すなわち、キャッシュコントローラ１１１ａは、プログラム・キャッシュ・メモリ１１２に書き込んだプログラムが、外部ＲＡＭ１５のどのアドレスに記憶されていたかをプログラム・キャッシュ・メモリ・タグとして書き込む。これにより、プログラム・キャッシュ・メモリ１１２のタグ領域に格納されていた外部ＲＡＭ１５０上のアドレスが書き換えられる。このように、プログラム・キャッシュ・メモリ・タグのそれぞれには、外部ＲＡＭ１５０の各アドレスが対応して記憶される。
【００４１】
例えば、図７のタグ領域５２０に示すように、プログラム・キャッシュ・メモリ・タグ０に対応して、外部ＲＡＭ１５０のアドレス０に記憶されているプログラムが書き込まれる。また、プログラム・キャッシュ・メモリ・タグｎに対応して、外部ＲＡＭ１５０のアドレスｎに記憶されているプログラムが書き込まれる。このように、キャッシュコントローラ１１１ａは、図７に示すようにプログラム・キャッシュ・メモリ・タグｎと、外部ＲＡＭ１５０のアドレスｎとを対応付ける。プログラム・キャッシュ・メモリ・タグにより、プログラム・キャッシュ・メモリ１１２に書き込まれたプログラムが、どのアドレスに対応しているかを判別することができる。キャッシュコントローラ１１１ａはタグ領域５２０の所定のタグに対して外部ＲＡＭのアドレスを書き込む。
【００４２】
内蔵プログラム・メモリ１１３の容量には限りがある。そのため、動作を行なうためのプログラムの全てを内蔵プログラム・メモリ１１３に搭載することができない。そこで、プロセッサ（１）１００の動作を把握しているプロセッサ（２）１２０が必要に応じてプログラムの一部、又は全部をプログラム・キャッシュ・メモリ１１２に取り込ませる。例えば、プロセッサ（１）１００にエンコードを行わせたい時は、エンコード用プログラムをプログラム・キャッシュ・メモリ１１２に取り込ませる。あるいは、デコードを行なわせたい時は、デコード用プログラムをプログラム・キャッシュ・メモリ１１２に取り込ませる。もちろん、プログラム・キャッシュ・メモリ１１２に取り込ませるプログラムは、上記以外のプログラムであってもよい。また、プログラム・キャッシュ・メモリ１１２にプログラムの一部のみを取り込ませてもよい。
【００４３】
ここで、プログラム・キャッシュ・メモリ１１２に対するプロセッサ（２）１２０からのプログラムの書き込みは、図８に示されたＡのルートで行なわれる。すなわち、プロセッサ（２）１２０から、システムバス１６０、システムバスＩ／Ｆ１１８、及びデータアクセスＩ／Ｆ１１７を介してプログラム・キャッシュ・メモリ１１２にプログラムが直接、書き込まれる。このように、プロセッサ（２）１２０から、外部ＲＡＭ１５０を介さずにプログラム・キャッシュ・メモリ１１２にプログラムが書き込まれる。キャッシュコントローラ１１１ａによってプログラム・キャッシュ・メモリ１１２にプログラムが書き込まれないため、プログラム・キャッシュ・メモリ・タグが書き換えられない。従って、プログラム・キャッシュ・メモリ・タグには、外部ＲＡＭ１５０のアドレスが書き込まれたままとなる。キャッシュコントローラ１１１ａは、外部ＲＡＭ１５０から読み込まれたプログラムがキャッシュに取り込まれていると認識している。従って、演算ユニット１１０は、あたかも、プロセッサ（１）１００は、プログラム・キャッシュ・メモリ１１２に外部ＲＡＭ１６０のプログラムが書き込まれているかのように、処理を行う。このため、プロセッサ（１）１００は外部ＲＡＭ１５０へ一切プログラム・フェッチ・アクセスを行わず、プログラム・キャッシュ・メモリ１１２に格納されているプログラム・コードを実行する。従って、プロセッサ（２）１２０は外部ＲＡＭ１５０を存分に使用することができる。これにより、プログラム・キャッシュ・メモリ１１２の容量分だけ、外部ＲＡＭ１５０の容量の増加を防ぐことができる。外部ＲＡＭ１５０のうちの他用途として使用することができる空き容量を実質的に増加することができる。
【００４４】
プロセッサ（２）１２０からプログラム・キャッシュ・メモリ１１２にプログラムを書き込むには、例えば、図５に示したようなジャンプ命令を有する初期化用プログラム・コードが使用される。具体的には、図３で示した割り込み処理を行った後、プロセッサ（２）１２０は、プログラムを外部ＲＡＭ１５０に書き込む。ジャンプ命令を有する初期化用プログラムを使用することにより、外部ＲＡＭ１５０のアドレスとプログラム・キャッシュ・メモリ・タグとが対応付けられる。すなわち、プロセッサ（１）１００は、キャッシュコントローラ１１１ａのタグ領域と、外部ＲＡＭ１５０のアドレスとの対応付けを行なう。ここで、プロセッサ（２）１２０のメモリマップ上には、プロセッサ（１）１００のプログラム・キャッシュ・メモリ１１２が見えている。これにより、プロセッサ（１）１００のプログラム・キャッシュ・メモリ１１２にプロセッサ（１）が必要としているプログラムを書き込むことができる。このとき、プログラムはＡのルートで書き込まれる。そして、プロセッサ（１）がプログラム・キャッシュ・メモリ１１２に書き込まれたプログラムを外部ＲＡＭ１５０にあるプログラムと同様に使用する。このように、ジャンプ命令を有するプログラムを使用することによって、プロセッサ（２）１２０から簡便にプログラム・キャッシュ・メモリにプログラムを書き込むことができる。
【００４５】
実施例２．
本実施例にかかるデータ処理装置の構成について図９を用いて説明する。本実施例にかかるデータ処理装置の基本的構成は、実施例１で示したデータ処理装置と同じである。従って、上述のデータ処理装置と重複する内容については、説明を省略する。本実施例にかかるデータ処理装置では、プログラム・キャッシュ・メモリ・タグを書き込むルートが実施例１と異なっている。本実施例では、プロセッサ（２）１２０からプログラム・メモリ・キャッシュ１１２にプログラムを書き込む際、図９に示すＢのルートで、プログラム・キャッシュ・メモリ１１２にタグが書き込まれる。すなわち、システムバス１６０、システムバスＩ／Ｆ１１８、データアクセスＩ／Ｆ１１７、及びキャッシュコントローラ１１１ａを介して、タグがプログラム・キャッシュ・メモリ１１２に書き込まれる。このように、本実施例では、キャッシュコントローラ１１１ａがプログラム・キャッシュ・メモリ１１２にタグを書き込む。
【００４６】
本実施例では、データアクセスＩ／Ｆ１１７からキャッシュコントローラ１１１ａへの書き込みが可能になるようデータ接続している。これにより、キャッシュコントローラ１１１ａによるプログラム・キャッシュ・メモリ・タグの書き換えをＢのルートで直接行なうことができる。従って、実施例１で示したジャンプ命令を有するプログラムの読み込みが不要となる。すなわち、キャッシュコントローラ１１１ａは、プロセッサ（２）１２０によるプログラムの書き込みとともに、プログラム・キャッシュ・メモリ・タグを書き換える。このとき、プロセッサ（２）のメモリ・マップには、プロセッサ（１）１００のプログラム・キャッシュ・メモリ１１２がマッピングされている。従って、プログラム・キャッシュ・メモリ・タグには、プログラムの読み出し元であるプロセッサ（２）１２０のＲＯＭや、内蔵プログラム・メモリ１３２のアドレスが書き込まれる。従って、プロセッサ（２）１２０は、外部ＲＡＭ１５０を存分に使用することができる。これにより、実施例１と同様にプログラム・キャッシュ・メモリ１１２の容量分だけ、外部ＲＡＭ１５０の容量の増加を防ぐことができる。
【００４７】
実施例３．
本実施例にかかるデータ処理装置の構成について図１０を用いて説明する。本実施例にかかるデータ処理装置は、実施例１で示したデータ処理装置と基本的構成は同じである。従って、上述のデータ処理装置と重複する内容については、説明を省略する。本実施例にかかるデータ処理装置のプロセッサ（１）１００には、データを書き込むためのデータ・キャッシュ・メモリ１１９が設けられている。データ・キャッシュ・メモリ１１９には、例えば、プログラムの実行により得られたプログラムデータ等が記憶される。このデータ・キャッシュ・メモリ１１９についても、プログラム・キャッシュ・メモリ１１２と同様に接続する。そして、データ・キャッシュ・メモリ１１９をプロセッサ（２）１２０のメモリマップ上に見えるようにしておく。これにより、プロセッサ（２）１２０から、データ・キャッシュ・メモリ１１９を書き換えることができる。従って、実施例１と同様に、プログラム・キャッシュ・メモリ１１２の容量分だけ、外部ＲＡＭ１５０の容量の増加を防ぐことができる。まお、データ・キャッシュ・メモリ１１９に対する書き込みは、Ａのルート、及びＢのルートのいずれでもよい。
【００４８】
本実施例で示したように、プロセッサ（２）１２０からの書き込みは、プロセッサ（１）１００で使用されるプログラムに限られるものではなく、プログラムデータであってもよい。すなわち、プロセッサ（１）１００で使用されるプログラムコード、やプログラムデータなどの様々なデータをプロセッサ（２）１２０からキャッシュ・メモリに書き込むことができる。ここで、データとは、プロセッサ（１）１００で使用されるプログラムのコードや、プログラムで処理されるプログラムデータ等の情報を含むものである。すなわち、プログラム・キャッシュ・メモリ１１２にプロセッサ（２）１２０から書き込まれるデータには、プロセッサ（１）１００で使用されるプログラムや、そのプログラムで処理されるデータがある。これにより、プログラム・キャッシュ・メモリ１１２の容量分だけ、外部ＲＡＭ１５０の容量の増加を防ぐことができる。外部ＲＡＭ１５０のうちの他用途として使用することができる空き容量を実質的に増加することができる。
【図面の簡単な説明】
【００４９】
【図１】本発明にかかるデータ処理装置のシステム構成を示すブロック図である。
【図２】本発明にかかるデータ処理装置のメモリマップを示す図である。
【図３】本発明にかかるデータ処理装置のプログラム・キャッシュ・メモリの初期化の手順を示すフローチャートである。
【図４】本発明にかかるデータ処理装置のプログラム・キャッシュ・メモリの初期化の手順を示すフローチャートである。
【図５】本実施の形態にかかるデータ処理装置において、プログラム・キャッシュ・メモリの初期化プログラム・コードを外部ＲＡＭに読み込んだ際の外部ＲＡＭとプログラム・キャッシュ・メモリに格納されているデータを示す図である。
【図６】本実施の形態にかかるデータ処理装置において、初期化プログラム実行後の外部ＲＡＭとプログラム・キャッシュ・メモリに格納されているデータを示す図である。
【図７】本発明の実施例１にかかるデータ処理装置の構成を示すブロック図である。
【図８】本発明の実施例１にかかるデータ処理装置において、プログラムの書き込みルートを示す図である。
【図９】本発明の実施例２にかかるデータ処理装置において、プログラムの書き込みルートを示す図である。
【図１０】本発明の実施例３にかかるデータ処理装置において、プログラムデータの書き込みルートを示す図である。
【図１１】一般的なプログラム・キャッシュ・メモリの構成を示す図である。
【図１２】従来のデータ処理装置のシステム構成を示すブロック図である。
【図１３】従来のデータ処理装置のメモリマップを示す図である。
【図１４】従来のデータ処理装置のプログラム・キャッシュ・メモリの初期化の手順を示すフローチャートである。
【図１５】従来のデータ処理装置のプログラム・キャッシュ・メモリの初期化の手順を示すフローチャートである。
【符号の説明】
【００５０】
１００  プロセッサ（１）、１１０  演算ユニット、１１１  メモリ・コントローラ
１１２  プログラム・キャッシュ・メモリ、１１３  内蔵プログラム・メモリ、
１１９  データ・キャッシュ・メモリ、１１４  ＲＯＭ、１２０  プロセッサ（２）、
１３０  演算ユニット、１３１  メモリ・コントローラ、
１３２  内蔵プログラム・メモリ、１３３  ＲＯＭ、
１４０  割り込み信号（１）、１４１  割り込み信号（２）、１５０  外部ＲＡＭ、
１６０  システムバス
２００  外部ＲＡＭ、２１０  テーブル・データ、
２１１  プログラム・キャッシュ・メモリ、４１０〜４１３  プログラムコード
５００  メモリ領域、５１０〜５１３  プログラム・キャッシュ・メモリ領域、
５２０  タグ領域、５３０〜５３３  プログラム・キャッシュ・メモリ・タグ
６００  プロセッサ（１）、６１０  演算ユニット、６１１  メモリ・コントローラ
６１２  プログラム・キャッシュ・メモリ、６１３  内蔵プログラム・メモリ、
６２０  プロセッサ（２）、６３０  演算ユニット、６３１  メモリ・コントローラ、
６３２  内蔵プログラム・メモリ、６４０  割り込み信号
【図１】
2006331391.tif 000003
【図２】
2006331391.tif 000004
【図３】
2006331391.tif 000005
【図４】
2006331391.tif 000006
【図５】
2006331391.tif 000007
【図６】
2006331391.tif 000008
【図７】
2006331391.tif 000009
【図８】
2006331391.tif 000010
【図９】
2006331391.tif 000011
【図１０】
2006331391.tif 000012
【図１１】
2006331391.tif 000013
【図１２】
2006331391.tif 000014
【図１３】
2006331391.tif 000015
【図１４】
2006331391.tif 000016
【図１５】
2006331391.tif 000017