(57)【要約】【課題】  半導体集積回路のパフォーマンスをモニタする従来のパフォーマンス・モニタ回路は、モニタ結果をデータバス１７に出力する際に、モニタ対象であるパフォーマンスに影響を与えるため、本来のパフォーマンスとは異なるモニタをすることになる。【解決手段】  モニタシステムでは、パフォーマンス・モニタ回路（ＰＭ回路）１０及び中央演算装置（ＣＰＵ）１２、入出力（Ｉ／Ｏ）１６等の複数のデバイスが、ｎｂｉｔのデータ幅を有するデータバス１７に接続されている。ＰＭ回路１０は、モニタ対象である事象の検出を行い、モニタした結果をｍ（ｍ＞ｎ）ｂｉｔデータとして、ＰＭ回路１０内部の記憶領域に格納する。長期間にわたるモニタの結果、記憶領域にモニタ結果を格納する空き領域がなくなった場合には、ＰＭ回路１０は、モニタ結果のｍｂｉｔデータの内、ｎｂｉｔ以下を選択し、データバス１７を介して、Ｉ／Ｏ１６より外部に出力する。【選択図】        図１
2005339107.tif 000002
【特許請求の範囲】
【請求項１】
複数の事象の発生回数を計測し、複数のｍｂｉｔを有する第１の計測結果を、ｎ（ｍ＞ｎ）ｂｉｔ幅を有するデータバスに出力するパフォーマンス・モニタ回路において、前記第１の計測結果の内ｎｂｉｔ以下を選択して前記データバスに出力することを特徴とするパフォーマンス・モニタ回路。
【請求項２】
複数の事象の発生を検出する複数の検出回路と、前記複数の検出回路により検出された前記複数の事象の発生回数をｉ（ｉ＞ｎ）ｂｉｔまで計測することができる複数の計測回路と、前記複数の計測回路により計測された複数のｉｂｉｔを有する第２の計測結果の内、ｎｂｉｔ以下を選択して複数の前記第１の計測結果として記憶する記憶領域と、を備えることを特徴とする請求項１に記載のパフォーマンス・モニタ回路。
【請求項３】
複数の事象の発生を検出する複数の検出回路と、前記複数の検出回路により検出された前記複数の事象の発生回数を計測することができる複数の計測回路と、前記複数の計測回路により計測された複数の第３の計測結果を記憶する記憶領域と、前記記憶領域から複数の前記第３の計測結果を入力し、事象ごとに分けて前記第３の計測結果を加算し、複数の前記加算したｊ（ｊ＞ｎ）ｂｉｔを有する加算結果の内、ｎｂｉｔ以下を選択して複数の前記第１の計測結果として前記データバスに出力する出力データ調整回路と、を備えることを特徴とする請求項１に記載のパフォーマンス・モニタ回路。
【請求項４】
前記複数の計測回路がオーバーフローした場合に前記計測回路が出力するオーバーフロー信号を入力し、前記オーバーフロー信号に基づいて前記記憶領域に書き込み許可信号を出力する書き込み制御回路を備えることを特徴とする請求項２又は３に記載のパフォーマンス・モニタ回路。
【請求項５】
前記記憶領域は、前記書き込み許可信号が入力されると、前記計測回路から前記第１又は前記第３の計測結果を取得して記憶することを特徴とする請求項４に記載のパフォーマンス・モニタ回路。
【請求項６】
前記複数の計測回路は、前記書き込み許可信号が入力されると、計測値を０にすることを特徴とする請求項４又は５に記載のパフォーマンス・モニタ回路。
【請求項７】
前記書き込み制御回路が出力する前記書き込み許可信号の回数を計測し、前記書き込み信号の回数の計測結果に基づいて前記記憶領域に出力データ制御信号を出力する出力データ制御回路を備えることを特徴とする請求項４乃至６に記載のパフォーマンス・モニタ回路。
【請求項８】
前記記憶領域は、前記出力データ制御信号が入力されると、記憶されている前記第１又は前記第３の計測結果を出力することを特徴とする請求項７に記載のパフォーマンス・モニタ回路。
【請求項９】
前記事象は、前記データバスに接続された複数のデバイス間における前記データバスを介したデータ転送であることを特徴とする請求項１乃至８に記載のパフォーマンス・モニタ回路。
【請求項１０】
前記複数の検出回路は、前記複数のデバイスの内のマスタ・デバイス間の前記データバスの使用権の調停を行うデータバス調停回路から出力されるグラント信号と、前記マスタ・デバイスと転送を行う前記デバイス内のスレーブ・デバイスが何であるかを示す前記マスタ・デバイスから出力されるデバイス選択信号と、から前記データバスが前記デバイス間のいずれかのデータ転送に使われるのかを検出することを特徴とする請求項９に記載のパフォーマンス・モニタ回路。
【請求項１１】
前記出力データ制御回路は、前記調停回路から出力されるデータバスの使用権をいずれかの前記マスタ・デバイスにも与えていないことを示すデータバスアイドル信号を入力し、前記データバスアイドル信号に基づいて前記出力データ制御信号を出力することを特徴とする請求項１０に記載のパフォーマンス・モニタ回路
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体デバイスの内部の状態、動作の計測を行うパフォーマンス・モニタ回路に関するものであり、特に、ビット幅の変換を行う回路を備えたパフォーマンス・モニタ回路に関する。
【背景技術】
【０００２】
近年の情報処理技術の発展に伴い、半導体デバイスの高速動作が要求されており、そのため、半導体デバイスのアーキテクチャーやソフトウェア記述の最適化が必須となる。ハードウェア並びにソフトウェアを最適化するためには、半導体デバイスの高速動作の妨げとなっている箇所を特定する必要がある。その特定を行うために必要なデータを収集するための手段として、パフォーマンス・モニタ回路が用いられている。
【０００３】
図１２に、従来のパフォーマンス・モニタシステム９０のブロック図を示す。パフォーマンス・モニタシステム９０は、検出部９１、制御部９２、カウンタ部９３及びメモリ９４から構成されている。
【０００４】
次に、従来のパフォーマンス・モニタシステム９０の動作について説明する。パフォーマンス・モニタシステム９０内の検出部９１は、モニタの対象となっている事象（例えば、ディスクアレイ装置等におけるブロックまたはファイル毎のリード/ライト）が発生すると、その事象の発生を検出し、制御部９２に事象の発生があった旨を伝える。事象の発生が伝えられた制御部９２は、カウンタ部９３のカウンタを＋１カウントアップするようカウンタ部９３に対して、信号を送る。信号が送られたカウンタ部９３はカウンタ値を＋１だけアップする。また、制御部９２はカウンタ部９３のカウント値がオーバーフローしていないかどうかの確認をする。もし、カウンタ部９３のカウント値がオーバーフローを起こしていた場合には、制御部９２はメモリ９４に対して、カウンタ部９３のカウント値をメモリ９４に書き込むよう書き込み信号を出力する。書き込み信号が入力されたメモリ９４は、カウンタ部９３よりカウンタ値を取得して記憶する。これにより、パフォーマンス・モニタシステムによって取得した事象の発生状況を分析することによって、半導体集積回路（ＬＳＩ）の内部の状態、動作を把握することができ、ハードウェア及びソフトウェアの記述の最適化の妨げになっている箇所の特定が可能となる。
【０００５】
例えば、先行文献１には、複数の事象の発生を事象発生検出部で検出し、その事象を、カウンタを用いてカウントし、カウント値をメモリ上に確保された記憶領域に記憶する技術が開示されている。
【０００６】
【特許文献１】特開２００２-２０７６１４
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述の従来技術では、カウンタ９３が計測したカウント値をメモリ９４に記憶するため、制御部９２はデータバスの使用権を取得する。そのため、モニタシステムがモニタした計測結果を出力するためにデータバスの使用権を占有してしまうことになる。この時ＣＰＵが、ＣＰＵ外部へのアクセスを必要とする命令を実行しデータバスの使用権を要求したとしても、すでにモニタシステムがデータバスを占有しているため、データバスの使用権を取得することができず、データバスの使用権を得られなかったＣＰＵは、使用権を得るまでの間、その他の処理を行うことになる。このため、モニタの対象であるＬＳＩは本来の動作とは異なる動作を行うことになり、その結果、パフォーマンス・モニタ回路は、本来のＬＳＩの動作とは異なる動作のモニタを行ってしまうという問題がある。
【０００８】
この問題は、カウンタ回路から出力されるデータが大きくなればなるほどカウンタからメモリへのデータ転送回数が増加しデータバスの占有時間が長くなるため顕著となる。たとえば、カウンタからメモリへ３２ビットのデータを１６ビットのデータバスを介して送る場合、３２ビットのデータを２個の１６ビットのデータに分けて送る必要があるため、１６ビットの１個のデータを送る場合の２倍の時間がかかる。そのため、パフォーマンス・モニタ回路によるデータバスの占有時間が大きくなり、ＬＳＩチップが本来とは異なる動作を行ってしまう可能性が大きくなる。
【０００９】
本発明は、上記問題点に鑑みてなされたものであって、その主たる目的は、モニタシステムがモニタ対象であるＬＳＩの動作に及ぼす影響を軽減することができるパフォーマンス・モニタ回路を提供することにある。
【課題を解決するための手段】
【００１０】
上述した目的を達成するために、本発明に係るパフォーマンス・モニタ回路は、複数の事象の発生回数を計測し、複数のｍｂｉｔを有する第１の計測結果を、ｎ（ｍ＞ｎ）ｂｉｔ幅を有するデータバスに出力するパフォーマンス・モニタ回路において、前記第１の計測結果の内ｎｂｉｔ以下を選択して前記データバスに出力することを特徴とする。
【発明の効果】
【００１１】
本発明に係るパフォーマンス・モニタ回路によれば、データバスを介してモニタ結果を出力する際の、モニタシステムがモニタ対象であるＬＳＩの動作に及ぼす影響を軽減することができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を用いて、発明の実施の形態を詳細に説明する。但し、説明するにあたって、パフォーマンス・モニタシステム及び回路が検出する事象として、データバスに接続された複数のデバイス間で行われるデータバスを介したデータ転送の回数を例として取り上げることにする。この際のパフォーマンス・モニタの目的は、データ転送回数の測定をすることによって、いくつかのデータバスを介したデータ転送の内、他のデータ転送に比べて、相対的にデータ転送回数が多いデータ転送を特定することができ、データバスを介したデータ転送の最適化、すなわち、データバスのアーキテクチャーの最適化のためのデータ情報を、収集することにある。
【００１３】
図１は、本発明に係るパフォーマンス・モニタ回路を含めたパフォーマンス・モニタシステムを簡略的に示したブロック図である。図１において、１６ｂｉｔデータバス１７には、中央演算装置１２（ＣＰＵ）、ダイレクト・メモリ・アクセス・コントローラ１３（ＤＭＡＣ）、ランダム・アクセス・メモリ１４（ＲＡＭ）、リード・オンリー・メモリ１５（ＲＯＭ）及び入出力１６（Ｉ／Ｏ）の各デバイスと共に、パフォーマンス・モニタ回路（ＰＭ回路１０）が接続されている。また、ＣＰＵ１２、ＤＭＡＣ１３等のバス・マスタ間でのデータバス１７の使用権の調停を行うバス・アービトレーション・ユニット１１（ＢＡＵ）が、ＣＰＵ１２、ＤＭＡＣ１３及びＰＭ回路１０と接続されている。尚、バスにはデータバスの他にアドレスバス及びコントロールバスが存在するが、本発明は特にアドレスバス及びコントロールバスの動作には直接には関係しないため、簡単のため、図１ではアドレスバス及びコントロールバスは省略する。
【００１４】
まず、データバス１７を使用したデータの転送方法について図２を用いて説明する。（図１と同じ構成要素、信号である場合には、同じ番号を付す。以下、他の図についても同じ。）ここでは、ＣＰＵ１２からＲＡＭ１４にデータが書き込まれる場合のデータの転送方法を例にあげて説明する。マスタ側デバイスがデータバス１７を用いてスレーブ側デバイスとの間でデータの送受信を行うためには、ＢＡＵ１１によるデータバス１７の使用権の調停が行われなければならない。従って、まずＣＰＵ１２は、ＢＡＵ１１に対してデータバス１７の使用権を求めてＣＰＵリクエスト信号１２０を出力する。ＣＰＵリクエスト信号１２０を受け取ったＢＡＵ１１は、データバス１７の使用権に関しての調停を行い、ＣＰＵ１２に対してデータバス１７の使用を許可する場合には、許可する旨（データバス１７の使用権を与える）のＣＰＵグラント信号１１０を返す。このようにしてデータバス１７の使用権を得たＣＰＵ１２は、ＲＡＭ１４にデータを書き込むために、データバス１７上に転送データを出力し、ＲＡＭ１４へのデータの書き込み動作を開始する（図２（ａ））。
【００１５】
また逆に、ＢＡＵ１１がＣＰＵ１２に対してデータバス１７の使用を許可しない場合には、許可しない旨（データバス１７の使用権を与えない）のＣＰＵグラント信号１１０を返す。不許可のグラント信号を受け取ったＣＰＵ１２は、所定の時間経過後に再びＢＡＵ１１に対してＣＰＵリクエスト信号１２０を出力してデータバス１７の使用権を求める。この所定の時間の間、ＣＰＵ１２は、データバス１７の使用権を得られるまで、データキャッシュへの書き込みや演算等のその他の処理を行うことができる。その後、ＣＰＵリクエスト信号１２０に対して、ＢＡＵ１１がデータバス１７の使用を許可する旨のＣＰＵグラント信号１１０を返した場合には、ＣＰＵ１２はデータバス１７上に転送データを出力し、ＲＡＭ１４へのデータの書き込み動作を開始する（図２（ｂ））。
【００１６】
尚、ＢＡＵ１１から出力されるＣＰＵグラント信号１１０は、ＰＭ回路１０に対しても出力される。
【００１７】
ＲＡＭ１４へのデータの書き込みをするにあたってＣＰＵ１２は、データバス１７を使ってＲＡＭ１４に書き込むデータ出力する他、アドレス等の書き込みに必要な信号をアドレスバスやコントロールバスを使ってＲＡＭ１４に対して出力する。その際、ＣＰＵ１２は、ＰＭ回路１０に対して、送信先のデバイスとしてＲＡＭ１４を選択した旨を伝えるＣＰＵデバイス選択信号１２１を出力する（図２）。
【００１８】
ＰＭ回路１０は、このようにして行われるデータバス１７を使用したデータ転送の転送回数を計測する。転送回数は、転送の種類ごと、つまり、どのデバイス間で行われたかを区別して計測される。図１においては、転送の種類が、ＣＰＵ１２とＲＡＭ１４間の転送、ＣＰＵ１２とＲＯＭ１５間の転送、ＣＰＵ１２とＩ／Ｏ１６間の転送、ＲＡＭ１４とＲＯＭ１５間のＤＭＡ転送、ＲＡＭ１４とＩ／Ｏ１６間のＤＭＡ転送、ＲＯＭ１５とＩ／Ｏ１６間のＤＭＡ転送の６通り存在する。従って、図１の場合のＰＭ回路１０は、６通りの転送別にそれぞれ分けて計測する。
【００１９】
ＰＭ回路１０が転送別に転送回数を計測するためには、６種類の転送の内、どの転送が行われたかを判定しなければならない。ＣＰＵ１２からＲＡＭ１４へのデータの書き込みの例においては、判定の方法は、ＰＭ回路１０に入力されるデータバス１７の使用を許可する旨のＣＰＵグラント信号１１０とＲＡＭ１４を選択した旨を伝えるＣＰＵデバイス選択信号１２１によって行われる。すなわち、前者はＢＡＵ１１からデータバス１７の使用をＣＰＵ１２に許可することがわかり、後者はバスの使用を許可されたＣＰＵ１２がＲＡＭ１４とのデータの送受信を行うことがわかるので、本データ転送がＣＰＵ１２とＲＡＭ１４間の転送であることが決定できる。
【００２０】
転送別に計測された転送回数は、一旦ＰＭ回路１０内の記憶領域で蓄えられ、その後、ＰＭ回路１０よりデータバス１７を経由して、Ｉ／Ｏ１６より出力される。詳細については後述する。
【００２１】
次に、ＰＭ回路１０の構成を中心に説明する。図３（実施例１）に、ＰＭ回路１０の基本構成を示す。検出回路３００〜３０５は、データバス１７の使用権を与えるためにＢＡＵ１１が出力するＣＰＵグラント信号１１０及びＤＭＡＣグラント信号１１１と、データ転送の相手を知られるためのＣＰＵ１２及びＤＭＡＣ１３が出力するＣＰＵデバイス選択信号１２１及びＤＭＡＣデバイス選択信号１３１とを受け取り、検出信号３１０〜３１５を３２ｂｉｔカウンタ回路３２０〜３２５に出力する。
【００２２】
３２ｂｉｔカウンタ回路３２０〜３２５は、検出信号３１０〜３１５を受け取り、書き込み制御回路３５に対してオーバーフロー信号３３０〜３３５と、記憶領域に対して１６ビット幅を持つカウントデータ信号３４０〜３４５を出力する。
【００２３】
書き込み制御回路３５は、オーバーフロー信号３３０〜３３５を受け取り、記憶領域３６、出力データ制御回路３７及び３２ｂｉｔカウンタ回路３２０〜３２５に対して書き込み許可信号３５０を出力する。
【００２４】
記憶領域３６は、書き込み許可信号３５０、１６ビット幅を持つカウントデータ信号３４０〜３４５及び出力データ制御信号３７０を受け取り、データバス１７に対して記憶したカウントデータを１６ビット幅データとして出力する。
【００２５】
データ出力制御回路３７は、書き込み許可信号３５０を受け取り、記憶領域３６に対して出力データ制御信号３７０を出力する。
【００２６】
尚、図１における転送の種類は、前述の通り６パターン存在するので、転送別に転送回数を計測できるように、ＰＭ回路１０は、検出回路３００〜３０５及び３２ｂｉｔカウンタ回路３２０〜３２５の６組から構成されている。
【００２７】
続いて、ＰＭ回路１０の内部回路の動作を中心に、図４のフロー図を使用して動作について説明する。動作を説明するにあたって、前述同様、ＣＰＵ１２からＲＡＭ１４へのデータ書き込みの場合を例にとり説明する。また、ＣＰＵ１２とＲＡＭ１４間の転送を検出し、カウントする回路を、検出回路３００及び３２ｂｉｔカウンタ回路３２０とする。フローのスタートは、データ転送に必要なデータバスの使用権をＢＡＵ１１から得たところから始めるとする。
【００２８】
ＢＡＵ１１は、ＣＰＵ１２にデータバス１７の使用を許可したため、データバス１７の使用を許可する旨のＣＰＵグラント信号１１０を検出回路３００〜３０５に入力する。また、ＣＰＵ１２は、ＢＡＵ１１よりデータバス１７の使用権を得ることができたため、データの書き込み先としてＲＡＭ１４を選択した旨を伝えるＣＰＵデバイス選択信号１２１を検出回路３００〜３０５に入力する（ステップ１）。
【００２９】
検出回路３００〜３０５は、入力されたＣＰＵグラント信号１１０とＣＰＵデバイス選択信号１２１から、どのデバイス間でデータバス１７を使った転送が行われたかを判定する（ステップ２）。今回の例では、ＣＰＵ１２とＲＡＭ１４間の転送が行われたので、当該転送を計測する検出回路３００は、ＣＰＵ１２とＲＡＭ１４間の転送があったことを検出する。その他の検出回路３００〜３０５は、それぞれが計測する転送ではないので、動作しない。
【００３０】
ＣＰＵ１２とＲＡＭ１４間の転送があったことを検出した検出回路３００は、当該転送回数をカウントする３２ｂｉｔカウンタ回路３２０に対して、検出信号３１０を出力する（ステップ３）。
【００３１】
検出信号３１０を受信した３２ｂｉｔカウンタ回路３２０は、検出信号３１０をトリガとして転送回数を１カウントアップする（ステップ４）。
【００３２】
３２ｂｉｔカウンタ回路３２０は、カウント値がオーバーフローしていないかどうかを確認する（ステップ５）。オーバーフローしていない場合には、次の転送に備えて、検出信号３１０の入力を待つ。
【００３３】
もし、３２ｂｉｔカウンタ回路３２０がオーバーフローをしている場合には、書き込み制御回路３５に対して、オーバーフロー信号３３０を出力する（ステップ６）。
【００３４】
オーバーフロー信号３３０を受信した書き込み制御回路３５は、記憶回路３６、出力データ制御回路３７及び３２ｂｉｔカウンタ回路３２０〜３２５に対して、書き込み許可信号３５０を出力する（ステップ７）。尚、今回は３２ｂｉｔカウンタ回路３２０がオーバーフローした場合であるが、その他の３２ｂｉｔカウンタ回路３２１〜３２５がオーバーフローした場合にも、同様の動作をする。
【００３５】
書き込み許可信号３５０を受信した記憶領域３６は、３２ｂｉｔカウンタ回路３２１〜３２５より、現在のカウント値を示した３２ｂｉｔのカウンタ値の内、上位１６ｂｉｔを選択し、それをカウントデータ信号３４１〜３４５として取得して、その１６ｂｉｔデータを記憶領域３６に記憶する（ステップ８）。また、オーバーフローを生じた３２ｂｉｔカウンタ回路３２０のカウント値は、オーバーフローを生じる直前の値とし、その上位１６ｂｉｔをカウントデータ信号３４０とする。
【００３６】
また、書き込み許可信号３５０を受信した３２ｂｉｔカウンタ回路３２１〜３２５は、記憶回路３６へのカウントデータ信号３４１〜３４５の格納後、カウント値を０クリアする（ステップ９）。また、オーバーフローを生じた３２ｂｉｔカウンタ回路３２０は、オーバーフローを生じた時の転送をカウントしていないため、記憶回路３６へのカウントデータ信号３４０の格納後、０クリアせずに１をセットする。
【００３７】
また、書き込み許可信号３５０を受信した出力データ制御回路３７は、書き込み許可信号３５０の出力回数をカウントすることで、記憶領域３６に記憶されるデータ量を監視する（ステップ１０）。
【００３８】
出力データ制御回路３７は、カウントした書き込み許可信号３５０のカウント値より、記憶領域３６に書き込んだデータがいっぱいになったかどうかを判定する（ステップ１１）。その際、まだ記憶できる領域があると判断した場合には、次の書き込み許可信号３５０の入力に備えて待機する。
【００３９】
もし、出力データ制御回路３７が記憶領域３６の空き容量がないと判断した場合には、記憶領域３６に対して、出力データ制御信号３７０を出力する（ステップ１２）。
【００４０】
出力データ制御信号３７０を受信した記憶領域３６は、格納している１６ｂｉｔカウントデータ値を、１６ｂｉｔデータバスを経由して、Ｉ/Ｏ１６に出力する。
【００４１】
Ｉ/Ｏ１６より外部に出力されたカウンタ値の上位１６ビットのデータは、６種類の転送回数ごとに分類されて集計される。集計された転送回数よりデータバス１７の占有率を計算することができる。これにより、どのデバイス間の転送がどの程度データバス１７を占有していたかを分析することによって、アプリケーションの動作速度の最適化及びバスアーキテクチャの最適化（マルチレイヤ化、階層化等）を達成するための情報として役立てることができる。
【００４２】
本発明のモニタの対象は、データバス１７の占有率、つまりデータバス１７の転送回数をカウントすることである。そして、モニタの際には、このモニタシステムがデータバス１７に与える影響を最小限に抑えることが好ましい。なぜならば、モニタシステムが、モニタ結果の出力のためにデータバス１７の使用権を占有してしまうと、本来はＣＰＵ１２がデータバス１７を使用してデータ転送をするはずであった場合でも、データバス１７の使用権がないために、データ転送を行うことができなくなる。このような場合、ＣＰＵ１２は、所定の時間の経過後、再びデータ転送を試みるためにＢＡＵ１１に対してデータバスの使用権を要求するが、当該所定の時間においては、ＣＰＵ１２は、ただ単に動作を停止するのではなく、データバス１７を使用したデータ転送以外の演算等のその他の処理を行う。このようにして行われたＣＰＵ１２の処理の影響により、モニタシステムがデータバス１７を占有しなければ行われるはずであったデータ転送と全く同じデータ転送が行われないような事態が生じることになり、その結果、本来のデータ転送とは異なるデータ転送をモニタしてしまうことになるからである。従って、長期間モニタを行い、記憶回路３６がオーバーフローを生じて、モニタ中に記憶回路３６から計測結果を、データバス１７を経由してＩ／Ｏ１６より出力しなければならない場合には、モニタシステムがデータバス１７を使用することによって、その他のデバイスが行う本来のデータバス１７を使用したデータ転送を妨害することを極力減らす必要がある。
【００４３】
図３の実施例１においては、データバス１７のバス幅は、１６ｂｉｔである。そして、計測する３２ｂｉｔカウンタ回路３２０〜３２５は、３２ｂｉｔまでのカウンタ値を計測する。本発明のモニタは長期間であることを想定しているため、データバス１７のバス幅１７に対して、カウンタ回路は３２ｂｉｔという非常に大きいｂｉｔ数を有する必要がある。しかし、記憶回路では、カウント値の上位１６ｂｉｔのみを記憶回路に記憶するので、記憶した１データ（１６ｂｉｔ）あたり１回の転送で、１６ｂｉｔデータバス１７を経由してＩ／Ｏ１６より外部に出力可能となる。ここで、仮に３２ｂｉｔ全てを記憶回路に記憶する構成を考えると、１６ｂｉｔデータバス１７を経由した記憶した１データ（３２ｂｉｔ）あたりの転送回数が、２回となり、モニタシステムが実動作に与える影響が２倍になってしまうことになる。
【００４４】
また、実施例１では、モニタの結果である３２ｂｉｔカウンタ値の下位１６ｂｉｔを切り捨てている。本モニタシステムがモニタした結果から得たいと考えているのは、前述の通り、データ転送の回数それ自体ではなく、データ転送ごとの比率であって、最適化したい対象の特定、つまり、ＬＳＩの高速動作の妨げとなっているデータ転送の特定をすることである。このような事情を考えると、３２ｂｉｔカウンタ回路３２０〜３２５によりカウントされた３２ｂｉｔカウンタ値の内、より支配的である上位ｂｉｔが重要になり、支配的ではない下位ｂｉｔの重要度は低い。実施例１では、モニタの結果である３２ｂｉｔカウンタ値の下位１６ｂｉｔを切り捨て、上位１６ｂｉｔのみを計測結果として記憶領域３６に記憶する。計測結果に及ぼす影響が少ない下位１６ｂｉｔを切り捨てることによって、記憶領域３６に記憶するデータ量を削減すると共に、モニタした結果を、データバス１７を介して出力する際の実動作に与える影響を減少させる効果を生じる。
【００４５】
次に、ＰＭ回路１０の別の実施例を、図５（実施例２）に示す。（本実施形態では、転送回数をカウントするための回路は、カウンタ回路ではなく、累算器（アキュミュレータ）５００〜５０５及びレジスタ５１０〜５１５で構成している。
【００４６】
また、ＰＭ回路１０の別の実施例を、図６（実施例３）に示す。本実施形態では、記憶回路３６が出力する計測結果は、データバス１７に出力する前に、出力データ調整回路６０に入力される。出力データ調整回路６０では、記憶回路３６から入力される計測結果を、転送別に加算していく。図１の場合では、転送パターンが６通り存在するので、６通りの転送に分けて、転送回数を集計する。集計結果は、上位１６ｂｉｔのみを計測結果として、データバス１７を経由して、Ｉ／Ｏ１６に出力される。
【００４７】
実施例１に場合では、１６ｂｉｔの計測データが、６転送ごとに、記憶回数分が記憶回路１６より１６ｂｉｔデータバス１７に出力される。従って、記憶回数をｎとすると、１６ｂｉｔデータバス１７を使用した計測結果のデータ転送が、６ｎ回行われることになる。それに対して、実施例３においては、出力データ調整回路６０により、記憶回数分記憶されている計測データを１６ｂｉｔデータバス１７に出出力する前に集計するため、出力させるべき計測結果は、６個だけとなる。この集計データはそれぞれ、上位１６ｂｉｔのみを選択するため、１６ｂｉｔデータバス８を使用した計測結果のデータ転送が、６回ですむことになる。従って、実施例３は、実施例１に比べて、本モニタシステムが実動作に与える影響を、１／ｎ倍に軽減することができる。
【００４８】
尚、実施例３の説明としては、出力データ調整回路６０は計測結果をデータ転送ごとに集計すると説明したが、データ転送ごとの比率を算出した結果をデータバス１７に出力してもよい。例えば、モニタ対象とするデータ転送が３種類（データ転送Ａ、データ転送Ｂ、データ転送Ｃ）であり、データ転送ごとに加算した結果がそれぞれ、３０００、１００、２００であった場合には、データ転送ごとの比率は、データ転送Ａ：データ転送Ｂ：データ転送Ｃ＝３０：１：２となる。但し、この際の比率は、データバス幅に合うように計算する。従って、加算した結果をそのままデータバスに出力する場合には、３回のデータ転送が必要となるが、比率を出力する場合には、必要なデータ転送は１回である。ゆえに、集計結果をそのまま出力する場合に比べて、ＬＳＩの実動作に与える影響を更に減少させることができる。
【００４９】
また、ＰＭ回路１０の別の実施例を、図７（実施例４）に示す。本実施形態では、３２ｂｉｔカウンタ回路３２０〜３２５から出力されるカウントデータ信号３４０〜３４５を１６ｂｉｔデータではなく、３２ｂｉｔデータとして、記憶回路３６は記憶する。記憶回路３６に記憶された計測結果を、１６ｂｉｔデータバス１７を経由して、Ｉ／Ｏ１６より出力する場合には、記憶回路３６に記憶された３２ｂｉｔ計測結果は、一旦出力データ調整回路６０に入力され、１６ｂｉｔデータに加工され後、１６ｂｉｔデータバス１７を経由して、Ｉ／Ｏ１６に出力される。
【００５０】
実施例１乃至３では、３２ｂｉｔカウンタ回路３２０〜３２５でカウントした３２ｂｉｔカウント値を上位１６ｂｉｔに削減した後に、その結果をデータ転送ごとにそれぞれ集計する方式をとっているが、実施例４では、３２ｂｉｔカウンタ回路３２０〜３２５でカウントした３２ｂｉｔカウント値を転送ごとにそれぞれ集計した後に、得られた値の上位１６ｂｉｔを選択する方式をとっている。
【００５１】
具体的な例をあげて実施例３と実施例４の効果の違いについて説明する。説明するにあたって簡単のため、データバスのバス幅及びカウンタ回路は４ｂｉｔとし、計測すべきデータ転送はＡとＢの２種類であるとする。また、データ転送Ａ、データ転送Ｂを計測するカウンタ回路をそれぞれカウンタ回路Ａ、カウンタ回路Ｂとし、実施例３において計測結果は上位２ｂｉｔのみを選択することとする。尚、カウンタ回路Ａが４回オーバーフローした場合を考え、その際のカウンタ回路Ｂのカウント値は全て、２進法で０００１ｂ（１０進法で１）とする。
【００５２】
実施例３では、データ転送Ａについては、１１１１ｂの上位２ｂｉｔ（１１ｂ）が選択されてから記憶領域３６に１１ｂが記憶されることが４回行われるので、記憶領域３６から出力される４つの計測結果を加算すると、１１ｂ＋１１ｂ＋１１ｂ＋１１ｂ＝１１００ｂとなり、１１００ｂがデータバスに出力される。データ転送Ｂについては、データ転送Ａと同様に考えると、００ｂ＋００ｂ＋００ｂ＋００ｂ＝００００ｂより、００００ｂデータバスに出力される。
【００５３】
一方、実施例４では、データ転送Ａについては、計測結果の全てのｂｉｔが選択されて記憶回路３６に記憶されるので、１１１１ｂが４つ記憶されることになる。その後加算してからデータバスに出力されるので、１１１１ｂ＋１１１１ｂ＋１１１１ｂ＋１１１１ｂ＝１１１１００ｂの上位４ｂｉｔ（１１１１ｂ）が選択されてデータバスに出力される。データ転送Ｂについては、データ転送Ａと同様に考えると、０００１ｂ＋０００１ｂ＋０００１ｂ＋０００１ｂ＝０００１００ｂの上位４ｂｉｔ（０００１ｂ）が選択されてデータバスに出力される。
【００５４】
ここで、データバスに出力された後の計測結果を考慮すると、実施例３では、記憶領域３６に記憶する際に切り捨てた下位２ｂｉｔを補完すると、データ転送Ａは１１００００ｂ（４８）であり、データ転送Ｂは００００００ｂ（０）である。これに対し、実施例４では、データバスに出力する際に切り捨てた下位２ｂｉｔを補完すると、データ転送Ａは１１１１００ｂ（６０）であり、データ転送Ｂは０００１００ｂ（４）となる。両者を比較すると、データ転送Ａ、Ｂ共に差異が見られ、今回のケースでは、実施例４による計測結果は正確な値が出ている点に対して、実施例３による計測結果は正確な値とはなっていない。従って、このような構成とすることにより、実施例４は実施例３に比べて、より正確な値を計測結果として得ることができるので、データ転送ごとの比率をより正確に把握したい場合、若しくは、より正確なデータ転送回数を把握したい場合に有効となる。
【００５５】
また、記憶領域３６からの計測結果を出力するタイミングに関しての別の実施例を図８（実施例５）に示す。本実施形態では、ＢＡＵ１１から出力されるデータバスアイドル信号８０がＰＭ回路１０内の出力データ制御回路３７に入力される。データバスアイドル信号８０は、ＢＡＵ１１がＣＰＵ１２及びＤＭＡＣ１３の双方共にデータバス１７の使用権を与えていない、すなわち、データバス１７がアイドル状態になっていることを示す信号である。
【００５６】
出力データ制御回路３７は、データバスアイドル信号８０を検出した場合には、書き込み許可信号３５０をカウントすることによる記憶領域３６のオーバーフロー状態の検出の前であっても、記憶領域３６に対して、出力データ制御信号３７０を出力する。これにより、データバス１７が使用されていない間に、記憶領域３６からデータバス１７を経由してＩ／Ｏ１６に計測結果を出力し始めるため、本モニタシステムが、実動作に与える影響を減らすことに効果がある。また、計測結果の出力が終了する前に、アイドル状態が終了した場合には、一旦計測結果の出力を停止し、データバスの使用権を開放することもできる。これにより、本モニタシステムが、実動作に与える影響をさらに減らすことができる。尚、出力データ制御回路３７は、出力データ制御信号３７０を出力した後には、カウントしていた書き込み許可信号３５０のカウント値を０クリアする。
【００５７】
次にモニタシステムがデータバスに与える影響を抑制する本発明の効果について、円グラフを用いて説明する。図９（ａ）は、データバスのモニタをしなかった場合におけるバスの占有率を表したものである。図中のＣＰＵ及びＤＭＡＣはそれぞれのマスタ側のデバイスがデータバスを使用していた割合を示し、またＣＰＵ及びＤＭＡＣの双方ともデータバスを使用していなかった場合をＩＤＯＬとして示している。図９（ｂ）は、従来のモニタの方法におけるデータバスの占有率を表したものである。モニタシステムがデータバスを使用した割合をＰＭで示す。モニタシステムが計測結果をデータバス経由でＲＡＭに書き込むため、その分ＩＤＯＬ領域が減っている。図９（ｃ）は、本発明のモニタシステムを使用した場合におけるデータバスの占有率を表したものである。本発明では、データバスを使用した転送回数を抑えているため、図９（ｂ）に比べると、ＰＭ領域が非常に小さくなっているといえる。これにより、モニタシステムがデータバスを使用しているために、ＣＰＵ又はＤＭＡＣがデータバスを使用できないという機会が非常に低くなる、つまり、本モニタシステムが実動作に与える影響を緩和することができるという効果があることが認識できる。
【００５８】
また、今度はタイミングチャートを使って、本発明の効果について実施例ごとに分けて説明する。図１０（ａ）〜（ｅ）は、それぞれ、（ａ）モニタをしなかった場合、（ｂ）従来のモニタ方法、（ｃ）実施例１及び２、（ｄ）実施例３及び４、（ｅ）実施例５の場合を示す。また、今回説明を簡略化するため、データバスの使用回数を計測するカウンタ回路を２ｂｉｔ、記憶領域を４ｂｉｔ、データバス幅を２ｂｉｔとする。
【００５９】
図１０（ｂ）は、従来のモニタ方法によるデータバスのタイミングチャートを表している。２ｂｉｔカウンタ回路がオーバーフローした場合には、その計測結果を２ｂｉｔデータとして、２ｂｉｔデータバスに出力する。図１０（ｂ）では、２ｂｉｔカウンタ回路が４回オーバーフローする場合を示しており、それぞれオーバーフロー直後に計測結果をデータバスに出力する。従って、２ｂｉｔデータバスにて、２ｂｉｔ計測データ４個を、４回に分けて転送を行う。
【００６０】
図１０（ｃ）は、実施例１及び２によるデータバスのタイミングチャートを表している。２ｂｉｔカウンタ回路がオーバーフローした場合には、計測結果の上位１ｂｉｔのみを選択して記憶領域に記憶する。図１０（ｃ）では、図１０（ｂ）と同様にデータバスが使用されたとすると、４回目の記憶領域への書き込みによって、記憶領域はオーバーフローになるため、４回目の記憶領域への記憶作業の直後、計測結果は記憶領域からデータバスに出力される。従って、２ｂｉｔデータバスにて、１ｂｉｔ計測データ４個を、２回に分けて転送を行う。ゆえに、図１０（ｃ）は、図１０（ｂ）の場合に比べてデータバスの使用回数を２分の１に減らすことができる。
【００６１】
図１０（ｄ）は、図１０（ｃ）の場合において、記憶された計測結果の１ｂｉｔ×４のデータをそのままデータバスに出力させずに、加算した後、その上位２ｂｉｔデータをデータバスに出力する。従って、２ｂｉｔデータバスにて、２ｂｉｔ計測加算データ１個を、１回で転送を行う。ゆえに、図１０（ｄ）では、図（ｂ）の場合に比べてデータバスの使用回数を４分の１に、図１０（ｃ）の場合に比べてデータバスの使用回数を２分の１減らすことができる。
【００６２】
図１０（ｅ）は、図１０（ｄ）の場合において、オーバーフローする前であっても、アイドル状態を検出した際に、データバスへの計測結果の出力をし始める。これにより、ＣＰＵ又はＤＭＡＣによるデータバスの使用を妨害してモニタシステムがデータバスを使用する割合を減少させることができる。図１０（ｅ）では、アイドル状態中に計測結果の出力が終了した場合を示している。この場合には、モニタシステムが実動作に与える影響は全くないと考えられる。
【００６３】
以上のように、本モニタシステムがデータバスを使用する回数は、従来の場合に比べて著しく減少し、そのため本モニタシステムが実動作に与える影響を大幅に軽減することができる。
【００６４】
また、本発明に係るパフォーマンスのモニタシステムでは、図１のデータバス１７に接続されたデバイスをＣＰＵ１２、ＤＭＡＣ１３、ＲＡＭ１４、ＲＯＭ１５、Ｉ／Ｏ１６としているが、この構成に捉われる必要はなく、例えばマスタ側のデバイスが１つだけ接続されている場合やマスタ側及びスレーブ側のデバイスとしてその他のデバイスが接続されている場合であっても構わない。また、データバス１７を１６ｂｉｔ幅としているが、そのｂｉｔ幅にとらわれる必要はない。
【００６５】
また、本発明では、実施例のカウントデータ信号３４０〜３４５は１６ｂｉｔ又は３２ｂｉｔとして説明しているが、そのビット数にとらわれる必要はない。
【００６６】
また本発明では、実施例１、３又は４では、転送回数をカウントするカウンタ回路が３２ｂｉｔカウンタ回路３２０〜３２５として説明しているがが、３２ｂｉｔにとらわれる必要はない。同様に、実施例２においても、累算器５００〜５０５及びレジスタ５１０〜５１５は、３２ｂｉｔにとらわれる必要はない。
【００６７】
但し、この場合、本発明の効果が得られるためには、カウンタ回路又は累算器及びレジスタから転送ごとに分けて出力されるカウント値（カウントデータ信号３４０〜３４５）の内少なくとも１つのカウント値のデータ幅がデータバス１７のバス幅を超える、若しくは、カウンタ回路又は累算器及びレジスタから出力されるカウント値を転送ごとに分けて集計した結果をデータバス１７に出力する際に、その集計結果の内少なくとも１つの集計結果のデータ幅がデータバス１７のバス幅を超えるように、データバス１７のバス幅、カウントデータ信号３４０〜３４５のデータ幅、カウンタ回路又は累算器及びレジスタのビット幅を設定する必要がある。
【００６８】
また、本発明の検出回路３００〜３０５がどのデバイス間での転送が行われたかの転送の種類を判定する方法として、ＢＡＵ１１から出力されるＣＰＵグラント信号１１０とＣＰＵ１２から出力されるＣＰＵデバイス選択信号１２１とから特定する方法を記載しているが、当該方法に捉われることはなく、例えば、他の方法として、ＣＰＵ１２からアドレスバスに出力されるアドレスを検出回路３００〜３０５が参照することによって転送の種類を特定するような方法も考えられる。
【００６９】
また、本発明に係るＰＭ回路１０の記憶領域３６として、ＦＩＦＯを用いてもよい。ＦＩＦＯを使用することにより、構造を単純化することが可能となる。
【００７０】
また、本発明に係るＰＭ回路１０の検出回路３００〜３０５は、データバス１７を使用したデータ転送の回数を計測するものとして説明したが、その検出回路の1つにクロックを計測する回路を追加してもよい。これにより、クロックを計測する検出回路が必ず最初にオーバーフローを起こすため、ある一定期間に行われたデータ転送回数を計測することになり、定期的な時間間隔でのデータの取得が可能となる。
【００７１】
また、本発明に係るパフォーマンスのモニタシステムでは、モニタ結果はＩ／Ｏ１６より出力するよう説明しているが、データバス１７上に接続されているＲＡＭ１４に一旦保存するような構成としてもよい。その際には、モニタの終了後にＲＡＭ１４に保存されているモニタ結果を、Ｉ／Ｏ１６より出力する。
【００７２】
また、モニタの対象であるＬＳＩのデータバス１７が複数に分離されている場合の本発明の実施例について説明する。図１１は、データバス１７が２つに分離されている場合を示す。本実施形態では、データバス１７がデータバス１７０と１７１から構成されており、データバス１７０に接続するデバイス及びデバイス相互の接続関係は、図１の場合と同じ（ＰＭ回路１０を除く）である。また、データバス１７１には、ＰＭ回路１０、ＣＰＵ８２、ＲＡＭ８３、Ｉ／Ｏ８４が接続され、データバス１７０と１７１は、ブリッジ８１にて接続されている。
【００７３】
ＰＭ回路１０は、他の実施例と同様な方法でデータバス１７０のモニタを行うが、計測結果の出力を行うデータバスは、モニタの対象となっているデータバス１７０ではなく、モニタの対象となっていないデータバス１７１を経由して、Ｉ／Ｏ８４より出力する。これにより、モニタ対象となっているデータバス１７０の実動作に、本モニタシステムが全く影響を与えることなく、データバス１７０のモニタを行うことが可能となる。
【００７４】
また、本実施形態では、データバスを介したデータ転送の最適化が必要なデータバスがデータバス１７０であることが特定されている場合であったため、特にデータバス１７１のモニタをしていなかったが、必要に応じてデータバス１７１のモニタを行ってもよい。
【００７５】
尚、図１１の例では、既存のデータバスをモニタ結果の出力に利用しているため、別途そのためのデータバスを配線する必要はなかったが、モニタ結果の出力のためのデータバスを新しく配線してもよい。例えば、モニタ結果を専用のシリアルバスから出力することも考えられる。
【００７６】
また、前述した本発明に係るパフォーマンス・モニタ回路の実施形態は、それぞれの実施形態から適宜選択して、組み合わせてパフォーマンス・モニタ回路を実施することが可能である。
【００７７】
また、本発明の実施の形態の説明において、モニタを行う事象をデータ転送の回数として説明してきたが、モニタの対象である事象は、これ以外のものでもよい。例えば、本発明のパフォーマンス・モニタ回路は、ＣＰＵ１２内のキャッシュのサイズの最適化を検討する際のデータ収集にも利用できる。
【００７８】
ＣＰＵ１２内の実行部は、演算を行うために必要な命令やデータを、ＣＰＵ１２内のキャッシュに対して要求する。実行部からの要求を受け取ったキャッシュは、キャッシュ内に要求された命令やデータがあるか否かの判断をする。要求された命令やデータが存在する場合には、当該命令やデータを実行部に出力するが、要求された命令やデータが存在しない場合には、ウェイト信号を実行部に出力し、外部より当該命令やデータを取得するためにデータバス１７の使用権をＢＡＵ１１に要求する。この際、キャッシュに目的の命令やデータが存在する場合にはヒットであるとし、キャッシュに目的の命令やデータが存在しない場合にはミスヒットであるとする。通常、このヒットする率（ヒット率）は、９８％以上であることが必要である。
【００７９】
パフォーマンス・モニタ回路１０は、ＣＰＵ１２内のキャッシュより出力されるヒット及びミスヒットを示す信号を検出回路３００〜３０１にて検出し、その回数を３２ｂｉｔカウンタ回路３２０〜３２１にて計測する。計測結果は記憶領域３６に記憶された後、データバス１７を介して出力される。これにより、ヒット率を算出することができ、キャッシュの最適化が必要であるか否かの判断をすることができる。
【図面の簡単な説明】
【００８０】
【図１】本発明のパフォーマンス・モニタ回路がデータバスのデータ転送回数をモニタする際のパフォーマンスのモニタシステムの一実施形態を示したブロック図である。
【図２】（ａ）はデータバスの使用権を１度も拒否されずに与えられた場合、（ｂ）はデータバスの使用権を少なくとも１度は拒否された場合の図１におけるＣＰＵとＲＡＭ間のデータ転送に係る動作と出力信号を説明した図である。
【図３】本発明のパフォーマンス・モニタ回路の一実施形態を示したブロック図である。
【図４】図３における動作のフローを示した図である。
【図５】累算器を用いた本発明のパフォーマンス・モニタ回路の一実施形態を示したブロック図である。
【図６】出力データ調整回路を追加した本発明のパフォーマンス・モニタ回路の一実施形態を示したブロック図である。
【図７】３２ｂｉｔで計測結果を記憶領域に記憶する本発明のパフォーマンス・モニタ回路の一実施形態を示したブロック図である。
【図８】データバスのアイドル状態を検出しその間にモニタ結果を出力する本発明のパフォーマンス・モニタ回路を含んだパフォーマンスのモニタシステムの一実施形態を示したブロック図である。
【図９】（ａ）はモニタをしなかった場合、（ｂ）は従来のモニタを行った場合、（ｃ）本発明のモニタを行った場合のＣＰＵ、ＤＭＡＣ、アイドル状態（ＩＤＬＥ）のデータバスの使用割合を示した円グラフである。
【図１０】（ａ）はモニタがない場合、（ｂ）は従来のモニタを行った場合、（ｃ）〜（ｅ）は本発明のモニタを行った場合のＣＰＵとＲＡＭ間でのデータ転送が行われた場合におけるデータバスのタイミングチャートである。
【図１１】複数のデータバスが存在する場合の発明のパフォーマンス・モニタ回路を含んだパフォーマンスのモニタシステムの一実施形態を示したブロック図である。
【図１２】従来のパフォーマンス・モニタシステムを示したブロック図である。
【符号の説明】
【００８１】
１０                    パフォーマンス・モニタ回路（ＰＭ回路）
１１                    バス・アービトレーション・ユニット（ＢＡＵ）
１１０              ＣＰＵグラント信号
１１１              ＤＭＡＣグラント信号
１２、８２            中央演算装置（ＣＰＵ）
１２０              ＣＰＵリクエスト信号
１２１              ＣＰＵデバイス選択信号
１３                    ダイレクト・メモリ・アクセス・コントローラ（ＤＭＡＣ）
１３０              ＤＭＡＣリクエスト信号
１３１              ＤＭＡＣデバイス選択信号
１４、８３            ランダム・アクセス・メモリ（ＲＡＭ）
１５                    ロード・オンリ・メモリ（ＲＯＭ）
１６、８４            入出力（Ｉ／Ｏ）
１７、１７０、１７１    データバス
３００〜３０５      検出回路
３１０〜３１５      検出信号
３２０〜３２５      ３２ｂｉｔカウンタ回路
３３０〜３３５      オーバーフロー信号
３４０〜３４５      カウントデータ信号
３５                    書き込み制御回路
３５０              書き込み許可信号
３６                    記憶領域
３７                    出力データ制御回路
３７０              出力データ制御信号
５００〜５０５      累算器
５１０〜５１５      レジスタ
６０                    出力データ調整回路
８０                    データバスアイドル信号
８１                    ブリッジ
９０                    従来のパフォーマンス・モニタ装置
９１                    検出部
９２                    制御部
９３                    カウンタ部
９４                    メモリ
【図１】
2005339107.tif 000003
【図２】
2005339107.tif 000004
【図３】
2005339107.tif 000005
【図４】
2005339107.tif 000006
【図５】
2005339107.tif 000007
【図６】
2005339107.tif 000008
【図７】
2005339107.tif 000009
【図８】
2005339107.tif 000010
【図９】
2005339107.tif 000011
【図１０】
2005339107.tif 000012
【図１１】
2005339107.tif 000013
【図１２】
2005339107.tif 000014