(57)【特許請求の範囲】
【請求項１】
メモリにアクセスして演算を行うメモリアクセス制御装置において、
データを格納するメモリと、
イベント発生時、前記データに対するオペレーションの生成を行うオペレーション生成手段と、前記オペレーションを送信するオペレーション送信手段と、から構成されるプロセッサ・ユニットと、
前記オペレーションを受信して格納するオペレーション格納手段と、前記オペレーションの生成動作とは独立して、前記オペレーションにもとづいて、前記メモリへアクセスし、前記データの演算処理を行う演算処理手段と、演算結果を前記プロセッサ・ユニットへ送信する演算結果送信手段と、から構成されるメモリインタフェース・ユニットと、
を備え、
前記オペレーション格納手段は、前記オペレーションを格納するキューと、前記キューに対する前記オペレーションの制御を行うオペレーション制御手段と、を含み、
前記オペレーション制御手段は、前記キュー内に、同一アドレスのオペレーションが格納されている場合は、前記同一アドレスのオペレーションを優先して、連続してリードする、
ことを特徴とするメモリアクセス制御装置。
【請求項２】
メモリにアクセスして演算を行うメモリアクセス制御装置において、
データを格納するメモリと、
イベント発生時、前記データに対するオペレーションの生成を行うオペレーション生成手段と、前記オペレーションを送信するオペレーション送信手段と、から構成されるプロセッサ・ユニットと、
前記オペレーションを受信して格納するオペレーション格納手段と、前記オペレーションの生成動作とは独立して、前記オペレーションにもとづいて、前記メモリへアクセスし、前記データの演算処理を行う演算処理手段と、演算結果を前記プロセッサ・ユニットへ送信する演算結果送信手段と、から構成されるメモリインタフェース・ユニットと、
を備え、
前記オペレーション格納手段は、前記オペレーションを格納するキューと、前記キューに対する前記オペレーションの制御を行うオペレーション制御手段と、を含み、
前記オペレーション制御手段は、前記キュー内に、連続アドレスのオペレーションが格納されている場合は、前記連続アドレスのオペレーションを優先して、連続してリードする、
ことを特徴とするメモリアクセス制御装置。
【請求項３】
メモリにアクセスして演算を行うメモリアクセス制御装置において、
データを格納するメモリと、
イベント発生時、前記データに対するオペレーションの生成を行うオペレーション生成手段と、前記オペレーションを送信するオペレーション送信手段と、から構成されるプロセッサ・ユニットと、
前記オペレーションを受信して格納するオペレーション格納手段と、前記オペレーションの生成動作とは独立して、前記オペレーションにもとづいて、前記メモリへアクセスし、前記データの演算処理を行う演算処理手段と、演算結果を前記プロセッサ・ユニットへ送信する演算結果送信手段と、から構成されるメモリインタフェース・ユニットと、
を備え、
前記オペレーション格納手段は、前記オペレーションを格納するキューと、前記キューに対する前記オペレーションの制御を行うオペレーション制御手段と、を含み、
前記オペレーション制御手段は、前記キュー内に、同一アドレスのオペレーションが存在する場合は、前記同一アドレスのオペレーションを無効化し、代わりに前記同一アドレスのオペレーションの演算操作を積算した積算オペレーションを生成する、
ことを特徴とするメモリアクセス制御装置。
【請求項４】
メモリにアクセスして演算を行うメモリアクセス制御装置において、
データを格納するメモリと、
イベント発生時、前記データに対するオペレーションの生成を行うオペレーション生成手段と、前記オペレーションを送信するオペレーション送信手段と、から構成されるプロセッサ・ユニットと、
前記オペレーションを受信して格納するオペレーション格納手段と、前記オペレーションの生成動作とは独立して、前記オペレーションにもとづいて、前記メモリへアクセスし、前記データの演算処理を行う演算処理手段と、演算結果を前記プロセッサ・ユニットへ送信する演算結果送信手段と、から構成されるメモリインタフェース・ユニットと、
を備え、
前記オペレーション格納手段は、前記オペレーションを格納するキューと、前記キューに対する前記オペレーションの制御を行うオペレーション制御手段と、を含み、
前記オペレーション制御手段は、前記キュー内に、ライトすべきオペレーションと同一アドレスのオペレーションが存在する場合は、前記同一アドレスのオペレーションを無効化し、代わりにライトすべき前記オペレーションの演算操作と、前記同一アドレスのオペレーションの演算操作とを積算した積算オペレーションを生成する、
ことを特徴とするメモリアクセス制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はメモリアクセス制御装置に関し、特にメモリにアクセスして演算を行うメモリアクセス制御装置に関する。
【０００２】
【従来の技術】
従来、データ通信のシステムでは、演算処理を行うＣＰＵと、データを格納する主記憶部としてのメモリとが含まれており、ＣＰＵでは、メモリへのアクセス制御を行って、演算処理を実行している。
【０００３】
図２５はＣＰＵの演算処理の動作の流れを示す図である。イベントの発生と、ＣＰＵが行う演算処理との関係を時系列上で表したものである。イベントＡが発生すると、そのイベントＡに関する演算処理が開始される。そして、Ｔ時間経過後にイベントＢが発生し、そのイベントＢに関する演算処理が開始され、以降同様に続く。ここで、ＣＰＵでの演算処理は、以下のような順で行われる。
〔Ｓ１００〕どのデータに対してどのような演算を行うかの判断や、そのデータが格納されているメモリアドレスの認識等を含む前処理を行う。
〔Ｓ１０１〕求めたメモリのアドレスから該当するデータを読み出す。
〔Ｓ１０２〕そのデータに対して加算演算などの演算処理を実行する。
〔Ｓ１０３〕演算結果をメモリへ書き込む。
【０００４】
このように、従来のＣＰＵの処理は、メモリからデータをリードして演算し、その演算結果をメモリへ書き込むといった、一連の演算処理を順に繰り返すことにより、必要な機能を実現していた。
【０００５】
【発明が解決しようとする課題】
しかし、上記のような従来のＣＰＵの処理では、ある１つのイベントによる演算処理が終了しないと、次のイベントによる演算処理が実行できないといった問題があった。
【０００６】
図２６は複数データの演算処理の動作の流れを示す図である。イベントの発生と、ＣＰＵが行う演算処理との関係を時系列上で表したもので、２つのデータの更新処理を行う場合を示している。
【０００７】
イベントＡが発生すると、そのイベントＡに関するデータ（データｄ１とデータｄ２とする）の演算処理が開始される。演算処理は、以下のような順で行われる。
〔Ｓ１１０〕どのデータに対してどのような演算を行うかの判断や、そのデータが格納されているメモリアドレスの認識等を含む前処理を行う。
〔Ｓ１１１〕求めたメモリのアドレスからデータｄ１を読み出す。
〔Ｓ１１２〕求めたメモリのアドレスからデータｄ２を読み出す。
〔Ｓ１１３〕データｄ１に対して加算演算などの演算処理を実行する。
〔Ｓ１１４〕データｄ２に対して加算演算などの演算処理を実行する。
〔Ｓ１１５〕ステップＳ１１３の演算結果をメモリへ書き込む。
〔Ｓ１１６〕ステップＳ１１４の演算結果をメモリへ書き込む。
【０００８】
このように従来では、１つのイベントで複数データの演算処理を行って、処理時間がＴ時間を越えてしまうと、イベントＢがＴ時間経過後に発生した場合、イベントＡによる演算処理が終了していないため、イベントＢに対する演算処理を実行することができなかった。このため、処理効率が悪く、また動作品質の低下を引き起こすといった問題があった。
【０００９】
図２７はパイプラインによる演算処理の動作の流れを示す図である。イベントの発生と、ＣＰＵが行う演算処理との関係を、パイプラインによる時系列上で表している。
〔Ｓ１２０〕イベントＡの発生時、イベントＡに関するデータの前処理を行う。
〔Ｓ１２１〕イベントＢの発生時、イベントＢに関するデータの前処理を行う。さらに、イベントＡに関するデータ読み出しを行う。
〔Ｓ１２２〕イベントＢに関するデータ読み出しを行う。さらに、イベントＡに関するデータ更新演算を行う。
〔Ｓ１２３〕イベントＣの発生時、イベントＣに関するデータの前処理を行う。以降、図に示すような順で処理が行われる。
【００１０】
ここで、イベントＢが、イベントＡによって更新された更新後のデータを処理する場合、ステップＳ１２２のように、イベントＡによるデータ更新中に、イベントＢによるデータ読み出しが行われる際には、イベントＢによる演算結果が正しい値とならず、エラーが生じてしまう（パイプラインハザードという）。
【００１１】
このように、ＣＰＵの処理をパイプライン化させた場合には、全体のスループットは向上できるが、連続して同一のデータにメモリアクセスすると、パイプラインハザードが発生してしまうといった問題があった。
【００１２】
一方、近年では、データ、音声、動画などからなるマルチメディア通信を、それぞれの速度や品質に合わせてユーザに提供するコネクション型通信のＡＴＭ（Asynchronous Transfer Mode）通信の開発が進んでいる。
【００１３】
ＡＴＭ通信システムでは、多数のコネクションを扱うので大容量のメモリが必要であり、さらに、膨大なデータを扱うためにシステム処理の大半をメモリアクセスが占有することになる。
【００１４】
したがって、ＡＴＭ通信システムの、受信ＡＴＭセル数の計数やＯＡＭ（Operation And Maintenance）性能管理機能の統計処理、または転送ＡＴＭセル数にもとづく課金処理等に対して、図２５で説明したような従来の処理を適用しようとすると、これらＡＴＭに関する処理は高速処理（実時間処理）が要求されるため、上述のような問題が顕著に現れてしまう。
【００１５】
また、これらの問題を回避するために、ＣＰＵとメモリ間のデータ幅を増やしたり、クロック周波数を上げたりすると、ピンネックや消費電力の増加につながってしまうといった問題があった。
【００１６】
さらに、高速処理を行おうとして、ＡＳＩＣのようなハードワイヤードで構成して、上述の問題点を解決しようとすると、ＩＴＵ等の規格や設計仕様が変更された場合、柔軟に対応できないといった問題があった。
【００１７】
本発明はこのような点に鑑みてなされたものであり、高品質で効率のよいメモリアクセス制御を行って、システムのスループットを向上させたメモリアクセス制御装置を提供することを目的とする。
【００１８】
【課題を解決するための手段】
上記課題を解決するために、メモリにアクセスして演算を行うメモリアクセス制御装置が提供される。メモリアクセス制御装置は、データを格納するメモリと、イベント発生時、前記データに対するオペレーションの生成を行うオペレーション生成手段と、前記オペレーションを送信するオペレーション送信手段と、から構成されるプロセッサ・ユニットと、前記オペレーションを受信して格納するオペレーション格納手段と、前記オペレーションの生成動作とは独立して、前記オペレーションにもとづいて、前記メモリへアクセスし、前記データの演算処理を行う演算処理手段と、演算結果を前記プロセッサ・ユニットへ送信する演算結果送信手段と、から構成されるメモリインタフェース・ユニットと、を備え、前記オペレーション格納手段は、前記オペレーションを格納するキューと、前記キューに対する前記オペレーションの制御を行うオペレーション制御手段と、を含み、前記オペレーション制御手段は、前記キュー内に、同一アドレスのオペレーションが格納されている場合は、前記同一アドレスのオペレーションを優先して、連続してリードする。
【００１９】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。図１はメモリアクセス制御装置の原理図を示す図である。メモリアクセス制御装置１は、プロセッサ・ユニット１０と、メモリインタフェース・ユニット２０と、メモリ３０とから構成され、メモリ３０にアクセスして多様な演算（算術演算や比較演算など）を行う。
【００２０】
プロセッサ・ユニット１０は、オペレーション生成手段１１とオペレーション送信手段１２から構成される。なお、プロセッサ・ユニット１０は、ＣＰＵ（Central Processing Unit）に該当する。
【００２１】
オペレーション生成手段１１は、イベント発生（受信）時、処理対象となるデータの判断や、データに対してどのような演算を行うか、またはデータが格納されているメモリアドレスの認識等を含む前処理を行う。その後、データに対するオペレーションの生成を行う。オペレーションの構成は図６以降で後述する。
【００２２】
オペレーション送信手段１２は、生成したオペレーションをメモリインタフェース・ユニット２０へ送信する。
メモリインタフェース・ユニット２０は、オペレーション格納手段２１と、演算処理手段２２と、演算結果送信手段２３とから構成される。
【００２３】
オペレーション格納手段２１は、ランダムアクセスキュー２１ａと、オペレーション制御手段２１ｂとから構成される。ランダムアクセスキュー２１ａは、前回ライトまたはリードが行われた格納場所とは無関係な格納場所で、ライトまたはリードを行うことのできるキューであり、プロセッサ・ユニット１０から送信されたオペレーションを格納する。
【００２４】
オペレーション制御手段２１ｂは、ランダムアクセスキュー２１ａに対するオペレーションの制御を行う。詳細は図１５以降で行う。
演算処理手段２２は、オペレーションの生成動作とは独立して、ランダムアクセスキュー２１ａからリードしたオペレーションにもとづいて、メモリ３０へアクセスし、データの演算処理を行う。
【００２５】
演算結果送信手段２３は、演算処理結果をプロセッサ・ユニット１０へ送信する。メモリ３０は、主記憶メモリであり、演算処理前のデータ及び演算処理後のデータを格納する。
【００２６】
また、プロセッサ・ユニット１０内の各手段の機能はソフトウェアで構成し、メモリインタフェース・ユニット２０内の各手段の機能はハードワイヤードで構成する。
【００２７】
これにより、オペレーションの生成部がソフトウェア構成であるため、どのデータに対して、どの様な演算を行うかをプログラマブルにできるので、柔軟性の高いシステムを構成することが可能になる。
【００２８】
次に動作について説明する。図２はプロセッサ・ユニット１０の動作手順を示すフローチャートである。
〔Ｓ１〕オペレーション生成手段１１は、イベントが発生したか否かを判断する。イベントが発生した場合はステップＳ２へ、そうでなければステップＳ１の処理を繰り返す。
〔Ｓ２〕オペレーション生成手段１１は、処理対象となるデータの判断及び処理内容の認識等の前処理を行う。
〔Ｓ３〕オペレーション生成手段１１は、データに対するオペレーションを生成する。このとき、オペレーションを１つ、または複数生成する。
〔Ｓ４〕オペレーション送信手段１２は、生成したオペレーションをメモリインタフェース・ユニット２０へ送信する。
【００２９】
図３はメモリインタフェース・ユニット２０の動作手順を示すフローチャートである。メモリインタフェース・ユニット２０は、上記のプロセッサ・ユニット１０の動作とは独立して以下の処理を実行する。
〔Ｓ１０〕オペレーション格納手段２１は、オペレーション送信手段１２から送信されたオペレーションを格納する。
〔Ｓ１１〕演算処理手段２２は、オペレーション格納手段２１からオペレーションをリードし、このオペレーションにもとづいて、メモリ３０からデータをリードする。
〔Ｓ１２〕演算処理手段２２は、オペレーションにもとづいて、データの参照か、または更新かの判断を行う。参照の場合はステップＳ１３へ、更新の場合はステップＳ１４へ行く。
〔Ｓ１３〕演算結果送信手段２３は、演算参照結果（メモリ３０からリードしたデータ）をプロセッサ・ユニット１０へ送信する。
〔Ｓ１４〕演算処理手段２２は、データの演算処理（更新処理）を行う。
〔Ｓ１５〕演算処理手段２２は、演算処理後のデータをメモリ３０へライトする。
〔Ｓ１６〕演算結果送信手段２３は、更新処理終了後の演算結果をプロセッサ・ユニット１０へ送信する。なお、以降では演算処理とはデータの更新処理を指すものとする。
【００３０】
図４、図５はメモリアクセス制御装置１の動作タイムチャートを示す図である。図は、イベントの発生、プロセッサ・ユニット１０の動作、ランダムアクセスキュー２１ａ内のオペレーション蓄積数、メモリインタフェース・ユニット２０のメモリアクセス動作の関係を時系列上で表したものである。
【００３１】
そして、図４はＴ時間間隔毎にイベントが発生した場合を示しており、図５はＴ時間間隔内に複数のイベントが発生した場合を示している。
〔Ｓ２０〕プロセッサ・ユニット１０は、イベントＡが発生すると、オペレーションを生成し、メモリインタフェース・ユニット２０へ送信する。
〔Ｓ２１〕メモリインタフェース・ユニット２０内のランダムアクセスキュー２１ａは、オペレーションを格納する。この時点の蓄積数を１とする。
〔Ｓ２２〕メモリインタフェース・ユニット２０は、ランダムアクセスキュー２１ａからオペレーションをリードし、イベントＡの演算処理を行う。演算処理の内容としては、メモリ３０からのデータのリード、リードしたデータに対する演算処理、演算処理結果のメモリ３０へのライトが含まれる。以降、イベントＢの発生時の処理も上記と同様な処理が行われる。
〔Ｓ３０〕プロセッサ・ユニット１０は、イベントＣが発生すると、オペレーションを生成し、メモリインタフェース・ユニット２０へ送信する。
〔Ｓ３１〕メモリインタフェース・ユニット２０内のランダムアクセスキュー２１ａは、オペレーションを格納する。蓄積数は１である。
〔Ｓ３２〕メモリインタフェース・ユニット２０は、ランダムアクセスキュー２１ａからオペレーションをリードし、イベントＣの演算処理を行う。また、ランダムアクセスキュー２１ａ内のオペレーション蓄積数はリードしたので０である。
〔Ｓ３３〕イベントＣの演算処理中にイベントＤが発生し、プロセッサ・ユニット１０は、オペレーションを生成し、メモリインタフェース・ユニット２０へ送信する。
〔Ｓ３４〕ランダムアクセスキュー２１ａは、オペレーションを格納する。蓄積数は１である。
〔Ｓ３５〕イベントＣの演算処理中にイベントＥが発生し、プロセッサ・ユニット１０は、オペレーションを生成し、メモリインタフェース・ユニット２０へ送信する。
〔Ｓ３６〕ランダムアクセスキュー２１ａは、オペレーションを格納する。蓄積数は２である。
〔Ｓ３７〕メモリインタフェース・ユニット２０は、ランダムアクセスキュー２１ａからオペレーションをリードし、イベントＤの演算処理を行う。また、ランダムアクセスキュー２１ａ内のオペレーション蓄積数はリードしたので１である。以降、同様な処理が行われる。
【００３２】
以上説明したように、メモリアクセス制御装置１は、プロセッサ・ユニット１０とメモリインタフェース・ユニット２０との互いの動作を独立に行う構成とした。
【００３３】
したがって、プロセッサ・ユニット１０は、メモリ３０と直接データのやりとりを行っているわけではないので（データに対するオペレーションと演算結果のやりとりのみ）、ＣＰＵに該当するプロセッサ・ユニット１０とメモリインタフェース・ユニット２０間のバンド幅を削減できる。また、パイプライン構成をとらずにスループットを向上させることが可能になる。
【００３４】
さらに、プロセッサ・ユニット１０は、イベント発生時に、演算処理を行わずにオペレーションの生成処理を行うだけなので、アクセス時間を短縮でき、かつバースト的なイベント発生の処理に効率よく対応することが可能になる。
【００３５】
次にオペレーションの構成について説明する。図６はオペレーションの構成を示す図である。オペレーションＯＰ１０は、処理対象となるデータが格納されているメモリアドレスＯＰ１１と、データに対する演算処理指示情報となる操作オペランドＯＰ１２とから構成される。
【００３６】
また、操作オペランドＯＰ１２は、演算操作を示す演算オペランドＯＰ１２ａと、演算ソースデータを示すデータオペランドＯＰ１２ｂとから構成される。
例えば、アドレス１０番地に格納されたデータに対して＋１したい場合は、メモリアドレスＯＰ１１は“１０番地”、演算オペランドＯＰ１２ａは“加算”、データオペランドＯＰ１２ｂは“１”となる。演算オペランドＯＰ１２ａは、加算の他に減算、シフト演算、比較演算等の各種演算機能を示す。
【００３７】
図７はオペレーションの構成の変形例を示す図である。オペレーションＯＰ１０−１は、メモリアドレスＯＰ１１と、操作オペランドＯＰ１２−１とから構成される。また、操作オペランドＯＰ１２−１は、クリアビットＯＰ１２０を含む演算オペランドＯＰ１２ａ−１と、データオペランドＯＰ１２ｂとから構成される。
【００３８】
クリアビットＯＰ１２０は、メモリアドレスＯＰ１１で指定されたデータへのクリア処理を要求するビットである。例えば、メモリアドレスＯＰ１１が“１０番地”であり、クリアビットＯＰ１２０に“１”が立っている場合には、１０番地のデータがすべてクリア（ALL 0 ）になる。このように、演算オペランドを拡張することによって、データに対する加算や減算等の演算処理だけでなく、クリア処理も実行することが可能になる。
【００３９】
図８はオペレーションの構成の変形例を示す図である。オペレーションＯＰ１０−２は、メモリアドレスＯＰ１１と、操作オペランドＯＰ１２−２とから構成される。また、操作オペランドＯＰ１２−２は、即値ビットＯＰ１２１を含む演算オペランドＯＰ１２ａ−２と、データオペランドＯＰ１２ｂとから構成される。
【００４０】
即値ビットＯＰ１２１は、メモリアドレスＯＰ１１で指定されたデータを、データオペランドＯＰ１２ｂの値に即値更新（置き換え）を要求するビットである。例えば、メモリ３０のデータ幅が３２ビットで、メモリアドレスＯＰ１１が“１０番地”であり、データオペランドＯＰ１２ｂが“ＦＦＦＦ”で、即値ビットＯＰ１２１に“１”が立っている場合には、１０番地のデータがすべて“ＦＦＦＦ”になる。
【００４１】
このように、演算オペランドを拡張することによって、メモリ３０の格納データを任意の値に更新することが可能になる。
なお、上述のクリアビットＯＰ１２０または即値ビットＯＰ１２１を用いる場合は、メモリ３０へのリードを行わないようにする。これにより、メモリ３０へのアクセス回数を削減することが可能になる。
【００４２】
図９はオペレーションの構成の変形例を示す図である。オペレーションＯＰ１０−３は、メモリアドレスＯＰ１１と、操作オペランドＯＰ１２−３とから構成される。また、操作オペランドＯＰ１２−３は、マスクビットＯＰ１２２を含む演算オペランドＯＰ１２ａ−３と、データオペランドＯＰ１２ｂとから構成される。
【００４３】
マスクビットＯＰ１２２は、メモリアドレスＯＰ１１で指定されたデータを、データオペランドＯＰ１２ｂの値にしたがってビットマスクを要求するビットである。例えば、メモリアドレスＯＰ１１が“１０番地”であり、データオペランドＯＰ１２ｂが“１”で、マスクビットＯＰ１２２に“１”が立っている場合には、１０番地のデータの“１”の部分がマスクされることになる。
【００４４】
このように、演算オペランドを拡張することによって、メモリ３０の格納データの任意の値をマスクすることが可能になる。なお、上記の説明では、クリアビットＯＰ１２０と即値ビットＯＰ１２１とマスクビットＯＰ１２２は、別々に設けた場合を説明したが、実際には各種組み合わせて演算オペランドを構成する。
【００４５】
図１０はオペレーションの構成の変形例を示す図である。オペレーションＯＰ１０−４は、メモリアドレスＯＰ１１と、操作オペランドＯＰ１２−４とから構成される。また、操作オペランドＯＰ１２−４は、コード化演算オペランドＯＰ１２ａ−４と、データオペランドＯＰ１２ｂとから構成される。
【００４６】
コード化演算オペランドＯＰ１２ａ−４は、演算オペランドＯＰ１２ａ、またはクリアビットＯＰ１２０と即値ビットＯＰ１２１とマスクビットＯＰ１２２の少なくとも１つを含む演算オペランドをコード化したものである。
【００４７】
図１１はコード化演算オペランドＯＰ１２ａ−４のコード表の一例である。コード化演算オペランドＯＰ１２ａ−４は３ビット構成とする。コード表Ｔ１は、演算処理内容として、No-Operation、加算、減算、比較演算（例えば、データオペランドＯＰ１２ｂの値とメモリ３０内の格納データが等しいか否かなど）、左シフト、右シフト、即値、ビットマスクがある。また、それぞれの演算処理内容のビット値は図に示す通りである。
【００４８】
このように、演算オペランドをコード化することによって、様々なデータに対する処理を行うのに、オペレーションの情報量を削減することが可能になる（図１１では８種のデータに対する処理に対して、３ビットで演算オペランドが構成できる）。
【００４９】
次に１つのオペレーションで複数データの演算指示を行う場合について説明する。図１２はメモリ３０の１アドレスに２つのデータが格納される様子を示す図である。図では、メモリアドレス０番地にデータＤ１（３１〜１６ビット）とデータＤ２（１５〜０ビット）の２つのデータが格納されている。また、アドレス１番地以降では１つのデータが格納されている。
【００５０】
図１３はデータオペランドを分割して、複数データの演算指示を行うオペレーションの構成を示す図である。オペレーションＯＰ１０−５は、メモリアドレスＯＰ１１と、操作オペランドＯＰ１２−５とから構成される。また、操作オペランドＯＰ１２−５は、演算オペランドＯＰ１２ａと、データオペランドＯＰ１２ｂ−１とから構成される。データオペランドＯＰ１２ｂ−１は、２つのデータオペランド（データＤ１用とデータＤ２用）から構成される。
【００５１】
ここで、図１２で示したメモリ３０のアドレス０番地のデータＤ１に対してのみ＋１０加算を行いたい場合、データオペランドＯＰ１２ｂ−１を３２ビットとすると、データオペランドＯＰ１２ｂ−１は、“000A0000(Hex)”とする。データＤ２に対するデータオペランドの部分はALL 0 とする。
【００５２】
このようにデータオペランドを分割することにより、複数のデータが１アドレスに格納されていても、そのデータに対するオフセットアドレスをオペレーションに加える必要がなくなる。
【００５３】
次にデータが複数のアドレスにまたがって、メモリ３０に格納されている場合のオペレーションの構成について説明する。
図１４はアドレス連続情報を含むオペレーションの構成を示す図である。オペレーションＯＰ１０−６は、メモリアドレスＯＰ１１と、操作オペランドＯＰ１２−６とから構成される。また、操作オペランドＯＰ１２−６は、アドレス連続情報ＯＰ１２３を含む演算オペランドＯＰ１２ａ−６と、データオペランドＯＰ１２ｂとから構成される。
【００５４】
アドレス連続情報ＯＰ１２３は、アドレス連続を識別する情報であり、このアドレス連続情報ＯＰ１２３が有効の場合は、メモリアドレスＯＰ１１は、連続するアドレスのうち、１つのアドレスのみを格納する（例えば、連続するアドレスのうちの最小アドレス）。
【００５５】
また、演算処理手段２２は、このオペレーションＯＰ１０−６にもとづいて演算処理を行う場合は、アドレスの連続数がｎならば、メモリ３０からｎ回連続リード、演算処理、ｎ回連続ライトを行う。
【００５６】
これにより、連続するアドレスを全部格納する必要がないため、オペレーションの情報量を削減でき、メモリアクセスを効率よく行うことが可能になる。
次にオペレーション制御手段２１ｂのランダムアクセスキュー２１ａに対するオペレーションの制御について説明する。図１５はランダムアクセスキュー２１ａの状態を示す図である。
【００５７】
最初、ランダムアクセスキュー２１ａには、オペレーションＯＰ１〜ＯＰ５が格納されている。オペレーションＯＰ１は、演算操作が＋１で、メモリ３０のアドレスが０番地である。オペレーションＯＰ２は、演算操作が＋１、アドレスが４番地である。オペレーションＯＰ３は、演算操作が＋３、アドレスが０番地である。オペレーションＯＰ４は、演算操作が＋１、アドレスが２番地である。オペレーションＯＰ５は、演算操作が＋１、アドレスが１番地である。
【００５８】
なお、演算操作とは、上述した演算オペランドとデータオペランドを合わせた内容のことを指す。
ここで、オペレーション制御手段２１ｂは、同一メモリアドレスの情報が存在するか、または連続するメモリアドレスの情報が存在するかを監視して、それらのアドレスを持つオペレーションを優先して、ランダムアクセスキュー２１ａから出力させて、演算処理手段２２へ送信する。
〔Ｓ４０〕オペレーション制御手段２１ｂは、オペレーションＯＰ１、ＯＰ３が同一アドレス（アドレス０番地）であり、オペレーションＯＰ５が、オペレーションＯＰ１、ＯＰ３に対して連続アドレス（アドレス１番地）を持つオペレーションであることを認識する。
〔Ｓ４１〕オペレーション制御手段２１ｂは、ランダムアクセスキュー２１ａからオペレーションＯＰ１を出力させる。
〔Ｓ４２〕オペレーション制御手段２１ｂは、ランダムアクセスキュー２１ａから、オペレーションＯＰ１と同一アドレスのオペレーションＯＰ３を出力させる。
〔Ｓ４３〕オペレーション制御手段２１ｂは、ランダムアクセスキュー２１ａから、オペレーションＯＰ３と連続アドレスのオペレーションＯＰ５を出力させる。
【００５９】
このように、ランダムアクセスキュー２１ａ内に同一メモリアドレス、または連続するメモリアドレスの情報が格納されていれば、それらを優先してランダムアクセスキュー２１ａから先にリードする構成にした。
【００６０】
これにより、演算処理手段２２は、メモリ３０に対し、同一または連続アドレスでアクセスできるため、アクセス時間が短縮され、メモリアクセスを効率よく行うことが可能になる。
【００６１】
図１６はランダムアクセスキュー２１ａの状態を示す図である。最初、ランダムアクセスキュー２１ａには、オペレーションＯＰ１〜ＯＰ５が格納されている。オペレーションＯＰ１は、演算操作が＋１で、アドレスが０番地である。オペレーションＯＰ２は、演算操作が＋３、アドレスが０番地である。オペレーションＯＰ３は、演算操作が＋１、アドレスが４番地である。オペレーションＯＰ４は、演算操作が＋１、アドレスが２番地である。オペレーションＯＰ５は、演算操作が＋１、アドレスが０番地である。
【００６２】
ここで、オペレーション制御手段２１ｂは、ランダムアクセスキュー２１ａ内に、同一メモリアドレスの情報が存在するかを監視し、存在する場合は、それらの演算処理を積算して積算オペレーションを生成し、これを出力させる。
〔Ｓ５０〕オペレーション制御手段２１ｂは、オペレーションＯＰ１、ＯＰ２、ＯＰ３が同一アドレス（アドレス０番地）であることを認識する。
〔Ｓ５１〕オペレーション制御手段２１ｂは、オペレーションＯＰ１、ＯＰ２、ＯＰ３に対する積算処理を行う。ここでは、（＋１）＋（＋３）＋（＋１）＝＋５である。
〔Ｓ５２〕オペレーション制御手段２１ｂは、オペレーションＯＰ１、ＯＰ２、ＯＰ３を無効化し、代わりに演算操作が＋５で、アドレス０番地の積算オペレーションＩ１を生成し、演算処理手段２２へ送信する。
【００６３】
このように、ランダムアクセスキュー２１ａ内に同一メモリアドレスの情報が格納されていれば、それらを積算した積算オペレーションを生成してリードする構成にした。これにより、演算処理手段２２は、メモリ３０に対するアクセス時間を短縮して、メモリアクセスを効率よく行うことが可能になる。
【００６４】
図１７はランダムアクセスキュー２１ａの状態を示す図である。最初、ランダムアクセスキュー２１ａには、オペレーションＯＰ１〜ＯＰ３が格納されている。オペレーションＯＰ１は、演算操作が＋１で、アドレスが４番地である。オペレーションＯＰ２は、演算操作が＋３、アドレスが０番地である。オペレーションＯＰ３は、演算操作が＋１、アドレスが２番地である。また、ランダムアクセスキュー２１ａにライトされるオペレーションＯＰ４は、演算操作が＋２、アドレスが０番地である。
【００６５】
オペレーション制御手段２１ｂは、ランダムアクセスキュー２１ａへライトすべきオペレーションのメモリアドレスと同一メモリアドレスの情報が、ランダムアクセスキュー２１ａ内に存在するかを監視し、存在する場合は、それらの演算処理を積算して積算オペレーションを生成する。
〔Ｓ６０〕オペレーション制御手段２１ｂは、ランダムアクセスキュー２１ａに格納されているオペレーションＯＰ２と、ランダムアクセスキュー２１ａにライトするオペレーションＯＰ４が同一アドレス（アドレス０番地）であることを認識する。
〔Ｓ６１〕オペレーション制御手段２１ｂは、オペレーションＯＰ２、ＯＰ４に対する積算処理を行う。ここでは、（＋３）＋（＋２）＝＋５である。
〔Ｓ６２〕オペレーション制御手段２１ｂは、オペレーションＯＰ２、ＯＰ４を無効化し、代わりに演算操作が＋５でアドレス０番地の積算オペレーションＩ２を生成して、ランダムアクセスキュー２１ａにライトする。
【００６６】
このように、ライトすべきオペレーションのアドレスと、キュー内に同一アドレスのオペレーションが存在する場合は、これらを無効化して、代わりに積算オペレーションを生成する構成とした。これにより、演算処理手段２２は、メモリ３０に対するアクセス時間を短縮して、メモリアクセスを効率よく行うことが可能になる。
【００６７】
なお、上記の説明では、キューをランダムアクセスキュー２１ａとして説明したが、ランダムアクセスキュー２１ａの前段にレディ（ready）キューを設けたハイブリッド構成にしてもよい。
【００６８】
ランダムアクセスキュー２１ａは、キュー内を監視する必要があるが（オペレーション制御手段２１ｂがキュー内のオペレーションの格納状況を監視する）、ここでは受信したオペレーションをＦＩＦＯ形式で一端格納するレディキューを、ランダムアクセスキュー２１ａの前段に配置する。
【００６９】
このような構成で、レディキューからランダムアクセスキュー２１ａへオペレーションを順次渡すことにより、オペレーション制御手段２１ｂのランダムアクセスキュー２１ａに対する監視制御の負荷を削減することができる。
【００７０】
次にランダムアクセスキュー２１ａがＦＵＬＬの時の動作について説明する。図１８はランダムアクセスキュー２１ａがＦＵＬＬになった際の動作手順を示すフローチャートである。
〔Ｓ７０〕オペレーション制御手段２１ｂは、ランダムアクセスキュー２１ａのオペレーション格納状態を監視する。ＦＵＬＬの場合はステップＳ７１へ、そうでなければステップＳ７０の処理を繰り返す。
〔Ｓ７１〕オペレーション制御手段２１ｂは、プロセッサ・ユニット１０での次イベントによる処理をＷａｉｔさせるためのＷａｉｔ信号を生成し、プロセッサ・ユニット１０へ送信する。
〔Ｓ７２〕プロセッサ・ユニット１０は、Ｗａｉｔ信号を受信したか否かを判断する。受信した場合はステップＳ７３へ、受信しない場合はステップＳ７４へ行く。
〔Ｓ７３〕プロセッサ・ユニット１０は、オペレーションのメモリインタフェース・ユニット２０への送信をＷａｉｔする。
〔Ｓ７４〕プロセッサ・ユニット１０は、オペレーションをメモリインタフェース・ユニット２０へ送信する。
【００７１】
このように、オペレーション制御手段２１ｂは、ランダムアクセスキュー２１ａの状態がＦＵＬＬの場合は、次イベントによる処理をＷａｉｔさせる構成にした。これにより、キューあふれによるデータの更新もれを防止し、データの信頼性を確保することが可能になる
次にランダムアクセスキュー２１ａをキャッシュメモリで構成した場合について説明する。図１９はオペレーション格納手段の構成を示す図である。オペレーション格納手段２１−１は、キャッシュメモリ２１ａ−１と、オペレーション制御手段２１ｂ−１とから構成される。
【００７２】
オペレーション制御手段２１ｂ−１は、キャッシュメモリ２１ａ−１に対するオペレーションの制御を行う。オペレーションの制御としては、同一メモリアドレスに対する演算操作をキャッシュメモリ上で積算する処理等を行う。
【００７３】
オペレーション制御手段２１ｂ−１は、キャッシュメモリ２１ａ−１へオペレーションを格納する場合、キャッシュメモリ２１ａ−１上にそのアドレスのオペレーションが存在する場合（キャッシュヒット時）は、キャッシュメモリ２１ａ−１上で演算操作の積算処理を行う。
【００７４】
また、キャッシュメモリ２１ａ−１上にそのアドレスのオペレーションが存在しない場合（キャッシュミスヒット時）は、キャッシュメモリ２１ａ−１に空きがあれば空き領域にオペレーションを格納し、空きがない場合はキャッシュメモリ２１ａ−１に格納されている他のオペレーションを実行して、メモリ３０へライトした後、その部分に新たに受信したオペレーションを書き込む（キャッシュ格納データの入れ替え）。
【００７５】
次に演算処理手段２２について説明する。演算処理手段２２は、データアクセスの局所性を利用し、オペレーションにしたがって、あるアドレスに対してメモリリードアクセスを行う時に、その近辺のアドレス（隣接アドレス）に対してもメモリリードを行って、データを記憶しておく。
【００７６】
すると、その隣接アドレスが後で要求されたときに、すでにデータが記憶されているために、メモリアクセスを行う必要がなくなる。そして、その記憶したデータを用いてオペレーションを実行し、更新したデータをまとめてメモリへライトする。これにより、メモリ３０のリードアクセスとライトアクセス時にアドレスの連続性があるため、効率よくメモリアクセスを行うことができる。
【００７７】
次にメモリアクセス制御装置１を適用したＡＴＭ制御装置について説明する。図２０はＡＴＭ制御装置の構成を示す図である。ＡＴＭ制御装置１００は、プロセッサ・ユニット１０とメモリインタフェース・ユニット２０とメモリ３０とから構成されるメモリアクセス制御装置１を含み、ＡＴＭの通信管理の制御を行う。
【００７８】
ＡＴＭの通信管理の制御とは、例えば、セル数の計数処理、ＯＡＭ性能管理の統計処理または課金処理等のことであり、ＡＴＭ制御装置１００は、これらの制御に関するオペレーションを生成して、これらの少なくとも１つの演算処理（統計値の参照や更新処理）を行う。また、演算処理結果は、ＡＴＭ制御装置１００に接続する保守端末２００に送信され、保守者に通知される。
【００７９】
次にＡＴＭ制御装置１００の動作として、ＯＡＭ性能管理の統計処理の１つであるITU-T I.610 で定められているパフォーマンスモニタ（Performance Monitor）処理を対象に以降説明する（以下、パフォーマンスモニタをＰＭと略す）。
【００８０】
図２１はＰＭ処理の概要を示す図である。ＡＴＭセルの流れに対して、ＰＭセルが一定間隔毎に送信側で挿入される。そして、受信側では、ＰＭセル間に流れたユーザセルを監視して、ＰＭセル間（１ブロックという）のユーザセルのセル廃棄数やセル誤挿入等をコネクション単位で算出して統計をとる。
【００８１】
図２２、図２３、図２４は１ブロック内のＰＭ処理の動作を示すシーケンス図である。なお、ＰＭ処理すべき統計項目として、ここでは一例として、送出ＣＬＰ（Cell Loss Priority）０ユーザセル数（項目Ａとする）、送出ＣＬＰ０＋１ユーザセル数（項目Ｂとする）、Total CLP0+1ユーザセル数（項目Ｃとする）、ＳＥＣＢ（Severely Errored Cell Blocks）Ｅｒｒｏｒｅｄ（項目Ｄとする）の４つの統計値の更新を行うものとする。
【００８２】
ＣＬＰとは、ネットワーク輻輳時に廃棄されるべきセルを表示するための１ビットフィールドの情報のことである。ＣＬＰ＝１のセルは廃棄される。そして、送出ＣＬＰ０ユーザセル数とは、送信側が送信した１ブロック間での優先度の高いセル数のことである。送出ＣＬＰ０＋１ユーザセル数とは、送信側が送信した１ブロック間での優先度の高いセル数と優先度の低いセル数の加算値のことである。Total CLP0+1ユーザセル数とは、受信側でカウントした優先度の高いセル数と優先度の低いセル数の加算値のことである。
【００８３】
ＳＥＣＢとは、廃棄セル数が、あらかじめ設定されたしきい値よりも大きい値の時に、そのブロック間に多くのエラーが生じたことを示す、１ビットフィールドの情報のことである。なお、１ブロック間はＴ時間とし、図中の括弧内の文字は項目Ａ〜Ｄを表す。
〔Ｓ８０〕プロセッサ・ユニット１０は、項目Ａによるイベントが発生すると、項目Ａに関するオペレーションを生成し、メモリインタフェース・ユニット２０へ送信する。
〔Ｓ８１〕メモリインタフェース・ユニット２０は、受信した項目Ａのオペレーションにもとづいて、メモリ３０へリードアクセスする。
〔Ｓ８２〕メモリインタフェース・ユニット２０は、項目Ａに関するデータの演算処理を行う。
〔Ｓ８３〕プロセッサ・ユニット１０は、項目Ｂによるイベントが発生すると、項目Ｂに関するオペレーションを生成し、メモリインタフェース・ユニット２０へ送信する。
〔Ｓ８４〕メモリインタフェース・ユニット２０は、項目Ａの演算結果をメモリ３０へライトし、メモリ３０からＡＣＫリターンを受信する。
〔Ｓ８５〕プロセッサ・ユニット１０は、項目Ｃによるイベントが発生すると、項目Ｃに関するオペレーションを生成し、メモリインタフェース・ユニット２０へ送信する。
〔Ｓ８６〕メモリインタフェース・ユニット２０は、受信した項目Ｂのオペレーションにもとづいて、メモリ３０へリードアクセスする。
〔Ｓ８７〕メモリインタフェース・ユニット２０は、項目Ｂに関するデータの演算処理を行う。
〔Ｓ８８〕プロセッサ・ユニット１０は、項目Ｄによるイベントが発生すると、項目Ｄに関するオペレーションを生成し、メモリインタフェース・ユニット２０へ送信する。
〔Ｓ８９〕メモリインタフェース・ユニット２０は、項目Ｂの演算結果をメモリ３０へライトし、メモリ３０からＡＣＫリターンを受信する。
〔Ｓ９０〕メモリインタフェース・ユニット２０は、受信した項目Ｃのオペレーションにもとづいて、メモリ３０へリードアクセスする。
〔Ｓ９１〕メモリインタフェース・ユニット２０は、項目Ｃに関するデータの演算処理を行う。
〔Ｓ９２〕メモリインタフェース・ユニット２０は、項目Ｃの演算結果をメモリ３０へライトし、メモリ３０からＡＣＫリターンを受信する。
〔Ｓ９３〕メモリインタフェース・ユニット２０は、受信した項目Ｄのオペレーションにもとづいて、メモリ３０へリードアクセスする。
〔Ｓ９４〕メモリインタフェース・ユニット２０は、項目Ｄに関するデータの演算処理を行う。
〔Ｓ９５〕メモリインタフェース・ユニット２０は、項目Ｄの演算結果をメモリ３０へライトし、メモリ３０からＡＣＫリターンを受信する。
【００８４】
以上説明したように、ＡＴＭ制御装置１００は、プロセッサ・ユニット１０で更新すべき統計項目のオペレーションを生成し、メモリインタフェース・ユニット２０へ送信する。そして、メモリインタフェース・ユニット２０では、オペレーションにもとづいて、メモリリード→データ演算処理（更新処理）→メモリライトを行うことによって、統計値を更新する。
【００８５】
ここで、プロセッサ・ユニット１０は、メモリアドレスＮビットと、統計値の加算指示１ビット（更新処理であるため、演算指示は加算である）と、被加算データ（１６ビットとする）をメモリインタフェース・ユニット２０に送信しているだけである。
【００８６】
したがって、処理の許容時間をＴとすると、プロセッサ・ユニット１０は、
【００８７】
【数１】
（１６＋１）ビット×４／Ｔ＝６８ビット／Ｔ                  …（１）
のバンド幅を必要とする。ただし、メモリ３０へのアドレスＮビットは考慮しない。式（１）の４は項目Ａ〜Ｄの項目数である。
【００８８】
一方、これらの処理を従来技術で行った場合を考える。上記の項目Ａ〜Ｄは、各々３２ビットで表示されるとする。すると、従来では、ＰＭセル受信時にＣＰＵが統計値を更新する場合、ＣＰＵが更新する統計データを判断し、各項目に対応するデータ（３２ビット）をメモリ３０からリードし、＋ｎ等の演算を行い、メモリ３０にライトしていた。
【００８９】
したがって、処理の許容時間をＴとすると、ＣＰＵは、
【００９０】
【数２】
３２ビット×２×４／Ｔ＝２５６ビット／Ｔ          …（２）
のバンド幅を必要とする。ただし、メモリへのアドレスｎビットは考慮していない。なお、式（２）中の２はリード／ライトのアクセス数、４は項目Ａ〜Ｄの項目数である。
【００９１】
したがって、式（１）、式（２）より、バンド幅が約４分の１に削減されることがわかる。
次に統計値を参照する場合の例を説明する。統計値がALL 1 か否かを知りたいとき、従来ではＣＰＵは、３２ビットの統計値をメモリ３０からリードし、ALL 1 か否かを判断していた。
【００９２】
一方、メモリ３０からリードしたデータがALL 1 であるか否かを判断したい場合は、その旨を示すコード（１ビット）をオペレーションに付加してメモリインタフェース・ユニット２０へ送信する。
【００９３】
そして、メモリインタフェース・ユニット２０では、そのオペレーションにもとづいて、メモリ３０へアクセスし、ALL 1 であるか否かの結果のみをプロセッサ・ユニット１０へ送信する。したがって、この場合のバンド幅は、従来では３２ビット／Ｔ、本技術では１オペレーション＋１オペレーション結果＝２ビット／Ｔとなり、必要バンド幅は１６分の１に削減できる。
【００９４】
以上説明したように、メモリアクセス制御装置１及びＡＴＭ制御装置１００は、プロセッサ・ユニット１０で、データに対するオペレーションの生成を行い、メモリインタフェース・ユニット２０で、オペレーションの生成動作とは独立して、オペレーションにもとづく、メモリアクセス及びデータの演算処理を行う構成とした。
【００９５】
これにより、プロセッサ・ユニット１０とメモリ３０間のバンド幅を削減して、高品質で効率のよいメモリアクセス制御を行うことができ、システムのスループットを向上させることが可能になる。
【００９６】
なお、上記の説明では、メモリアクセス制御装置１を、ＡＴＭのシステムに適用したが、ＡＴＭ以外のデータ通信システムに対しても適用可能である。特に大容量のメモリを必要とするデータ通信システムに対して効果が高く、システムの信頼性向上に寄与することが可能である。
【００９７】
【発明の効果】
プロセッサ・ユニットとメモリ間のバンド幅を削減して、高品質で効率のよいメモリアクセス制御を行うことができ、システムのスループットを向上させることが可能になる。
【図面の簡単な説明】
【図１】  メモリアクセス制御装置の原理図である。
【図２】  プロセッサ・ユニットの動作手順を示すフローチャートである。
【図３】  メモリインタフェース・ユニットの動作手順を示すフローチャートである。
【図４】  メモリアクセス制御装置の動作タイムチャートを示す図である。
【図５】  メモリアクセス制御装置の動作タイムチャートを示す図である。
【図６】  オペレーションの構成を示す図である。
【図７】  オペレーションの構成の変形例を示す図である。
【図８】  オペレーションの構成の変形例を示す図である。
【図９】  オペレーションの構成の変形例を示す図である。
【図１０】  オペレーションの構成の変形例を示す図である。
【図１１】  コード化演算オペランドのコード表の一例である。
【図１２】  メモリの１アドレスに２つのデータが格納される様子を示す図である。
【図１３】  データオペランドを分割して、複数データの演算指示を行うオペレーションの構成を示す図である。
【図１４】  アドレス連続情報を含むオペレーションの構成を示す図である。
【図１５】  ランダムアクセスキューの状態を示す図である。
【図１６】  ランダムアクセスキューの状態を示す図である。
【図１７】  ランダムアクセスキューの状態を示す図である。
【図１８】  ランダムアクセスキューがＦＵＬＬになった際の動作手順を示すフローチャートである。
【図１９】  オペレーション格納手段の構成を示す図である。
【図２０】  ＡＴＭ制御装置の構成を示す図である。
【図２１】  ＰＭ処理の概要を示す図である。
【図２２】  １ブロック内のＰＭ処理の動作を示すシーケンス図である。
【図２３】  １ブロック内のＰＭ処理の動作を示すシーケンス図である。
【図２４】  １ブロック内のＰＭ処理の動作を示すシーケンス図である。
【図２５】  ＣＰＵの演算処理の動作の流れを示す図である。
【図２６】  複数データの演算処理の動作の流れを示す図である。
【図２７】  パイプラインによる演算処理の動作の流れを示す図である。
【符号の説明】
１  メモリアクセス制御装置
１０  プロセッサ・ユニット
１１  オペレーション生成手段
１２  オペレーション送信手段
２０  メモリインタフェース・ユニット
２１  オペレーション格納手段
２１ａ  ランダムアクセスキュー
２１ｂ  オペレーション制御手段
２２  演算処理手段
２３  演算結果送信手段
３０  メモリ
【図１】
0004614500.tif 000002
【図２】
0004614500.tif 000003
【図３】
0004614500.tif 000004
【図４】
0004614500.tif 000005
【図５】
0004614500.tif 000006
【図６】
0004614500.tif 000007
【図７】
0004614500.tif 000008
【図８】
0004614500.tif 000009
【図９】
0004614500.tif 000010
【図１０】
0004614500.tif 000011
【図１１】
0004614500.tif 000012
【図１２】
0004614500.tif 000013
【図１３】
0004614500.tif 000014
【図１４】
0004614500.tif 000015
【図１５】
0004614500.tif 000016
【図１６】
0004614500.tif 000017
【図１７】
0004614500.tif 000018
【図１８】
0004614500.tif 000019
【図１９】
0004614500.tif 000020
【図２０】
0004614500.tif 000021
【図２１】
0004614500.tif 000022
【図２２】
0004614500.tif 000023
【図２３】
0004614500.tif 000024
【図２４】
0004614500.tif 000025
【図２５】
0004614500.tif 000026
【図２６】
0004614500.tif 000027
【図２７】
0004614500.tif 000028