説明

電子機器及びパワーマネージメント方法

【課題】シリアルATAインタフェースのパワーマネージメント制御において、ホストとデバイスとの間の通信がデッドロック状態に陥ることを回避すること。
【解決手段】デバイス10のシリアルATAインタフェース制御部12は、ホスト20にパワーマネージメント要求(PMREQ402)を送信し、ホストから返された応答に応じてシリアルATAバス30をパワーセーブモードへ切り替える。そして、ホストにPMREQ402を送信後、所定時間T0を経過してもホストから応答がなく、ホストからのパワーマネージメント要求(PMREQ401)を受信し続ける場合、ホストへのPMREQ402の送信を止めるとともに、ホストからのPMREQ401を否定する応答(PMNAK403)を返す。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、シリアルATA(AT Atachment)インタフェースを持つ電子機器におけるパワーマネージメント方法に関するものである。
【背景技術】
【0002】
従来のパラレル伝送方式に代えて、シリアル伝送方式によるATAインタフェースの規格が制定され、ハードディスク装置や光ディスク装置などの電子機器(以下、デバイス)に採用されている。シリアルATA方式によれば、ホストとデバイスの間のデータ通信速度を向上させ、デバイスを好適に制御することができる。
【0003】
シリアルATAのフロー制御はプリミティブと呼ばれるデータで実行するが、ホストとデバイスの間でプリミティブが常に送受信されている。シリアルATAの規格には、このプリミティブの送受信(通信)を一時的に止めるパワーマネージメントの機能が存在し、これによりシリアルATAバスを対象にパワーセーブすることができる。
【0004】
パワーマネージメントのエントリー方法は2種類有り、ホスト側からパワーマネージメント要求を出す方法(HIPM:Host initiated power management)と、デバイス側からパワーマネージメント要求を出す方法(DIPM:Device initiated power management)が存在する。その際、パワーマネージメントの要求側はPMREQ_P、またはPMREQ_Sと呼ばれるプリミティブを送信する。ここにシリアルATAの規格では、通常の通信可能な非パワーセーブモード(通常の消費電力)としてのアイドル(IDLE)状態と、通信を停止して消費電力を抑えるパワーセーブモードがある。パワーセーブモードには、消費電流と通信復帰時間の違いによりパーシャル(PARTIAL)とスランバ(SLUMBER)の2種類の状態が定義されている。IDLEからPARTIALへの移行を要求する場合はPMREQ_Pプリミティブを、IDLEからSLUMBERへの移行を要求する場合はPMREQ_Sプリミティブを使用する。以下、簡単のために、これらの要求をまとめてPMREQとして説明する。PMREQを受信した相手は、パワーマネージメントの準備が出来たことを意味するPMACKプリミティブ(肯定応答)、または、パワーマネージメントの準備が出来ていないことを意味するPMNAKプリミティブ(否定応答)を返す。要求側は、相手からPMACKが返ってきた場合は通信を停止しパワーセーブモードへ移行し、PMNAKが返ってきた場合は通信を継続する。
【0005】
シリアルATAを対象としたパワーセーブ技術に関して、次のような提案がなされている。
特許文献1には、シリアルATAバスを持つ電子機器において、送信すべきデータを直ちに送信することが不可能であると判定し、且つそのデータを予め定められた時間内に準備できないことが予想される場合、シリアルATAバスをパワーセーブモードに切り替えることが開示される。これにより、データ送信時に、データの送信順部が整うまでの間、シリアルATAバスをパワーセーブモードに設定することで、消費電力を効果的に低減できると述べられている。
【0006】
また特許文献2には、シリアルATAバスによる伝送にて、ホストからのシステム・クロック停止を含むパワーセーブモードへの移行要求に対して、ドライブ側はクロックに拠らない制御信号によりホストがモード移行要求を行うことへの承認要求を送信することが開示される。そして、ホストから承認を受信した場合、ドライブ側はシステム・クロック停止を含むパワーセーブモードに移行することが開示される。これにより、クロック停止した場合であっても、ホストからドライブにシリアルデータ通信によるモード移行要求を送信することができると述べられている。
【0007】
【特許文献1】特開2005−190202号公報
【特許文献2】特開2006−99666号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
前記したように、シリアルATA方式におけるパワーマネージメントのエントリー方法として、ホスト側から要求を送信する場合(HIPM)と、デバイス側から要求を送信する場合(DIPM)とが存在する。そして、HIPMとDIPMの両方を使用する場合、ホストとデバイスからのそれぞれの要求(PMREQ)の送信が重なる状態(コンフリクト状態)が考えられる。規格では、ホストとデバイスのPMREQが重なった場合は、ホストがPMREQの送信を止めてデバイスへ応答(PMACKかPMNAK)を返すことでこれを回避することになっている。
【0009】
しかしながら、ホストがパワーマネージメントの規格に沿った機能を備えていない場合や、機能を備えていても何らかの不具合(タイミングずれなどの要因を含む)があって回避処理が正常になされない場合、ホストとデバイスは互いにPMREQを出し続けて互いに応答(PMACKかPMNAK)を待ち続けることになる。その結果、シリアルATAのプロトコルがデッドロック状態に陥ってしまい、ホストがハングアップしその後の動作が不能になる。
【0010】
前記特許文献1や特許文献2には、ホストとデバイスのパワーマネージメント要求が重なり、デッドロック状態に陥る場合については何ら考慮されていない。
【0011】
本発明の目的は、シリアルATAインタフェースのパワーマネージメント制御において、ホストとデバイスとの間の通信がデッドロック状態に陥ることを回避し、快適にパワーマネージメント制御を行う電子機器及びパワーマネージメント方法を提供することにある。
【課題を解決するための手段】
【0012】
本発明の電子機器は、シリアルATAインタフェースを持ち、シリアルATAバスを介してホストと通信可能な電子機器であって、シリアルATAバスに対しパワーセーブモードへの切り替えを制御するシリアルATAインタフェース制御部と、時間を計測するタイマと、制御プログラムに従い当該電子機器の各部を制御するCPUとを備える。
【0013】
シリアルATAインタフェース制御部は、シリアルATAバスを介してホストにパワーマネージメント要求(PMREQ1)を送信し、ホストから返された応答(PMACKまたはPMNAK)に応じてシリアルATAバスをパワーセーブモードへ切り替えるものである。そして、シリアルATAバスを介してホストにパワーマネージメント要求(PMREQ1)を送信後、タイマにより計測した時間が所定時間を経過してもホストから応答がなく、ホストからのパワーマネージメント要求(PMREQ2)を受信し続ける場合、ホストへの要求(PMREQ1)の送信を止めるとともに、ホストからの要求(PMREQ2)を否定する応答(PMNAK)を返し、シリアルATAバスをパワーセーブモードへ切り替えずに通信を継続させる。
【0014】
また本発明の電子機器は、シリアルATAインタフェース制御部とCPUとを備える。シリアルATAインタフェース制御部は、ホストから、当該電子機器からのパワーマネージメント要求機能(DIPM)を有効にさせるためのSET_FEATURESコマンドを受信すると、当該電子機器のパワーマネージメント要求機能(DIPM)を有効にするともに、ホストからのパワーマネージメント要求機能(HIPM)を無効に設定する。そして、ホストからのパワーマネージメント要求(PMREQ2)に対し常に否定する応答(PMNAK)を返し、シリアルATAバスをパワーセーブモードへ切り替えずに通信を継続させる。
【0015】
本発明は、シリアルATAインタフェースを持つ電子機器とホストを接続するシリアルATAバスのパワーマネージメント方法であって、電子機器は、シリアルATAバスを介してホストにパワーマネージメント要求(PMREQ1)を送信し、ホストから返された応答(PMACKまたはPMNAK)に応じてシリアルATAバスをパワーセーブモードへ切り替えるステップと、電子機器が上記要求(PMREQ1)を送信後、所定時間を経過してもホストから応答がなく、ホストからのパワーマネージメント要求(PMREQ2)を受信し続ける場合、当該電子機器は、ホストへの要求(PMREQ1)の送信を止めるとともに、ホストからの要求(PMREQ2)を否定する応答(PMNAK)を返し、シリアルATAバスをパワーセーブモードへ切り替えずに通信を継続させるステップとを備える。
【0016】
また本発明のパワーマネージメント方法は、ホストは電子機器に対して、該電子機器からのパワーマネージメント要求機能(DIPM)を有効にさせるためのSET_FEATURESコマンドを送信するステップと、電子機器は受信したコマンドに従い、当該電子機器のパワーマネージメント要求機能(DIPM)を有効にするともに、ホストからのパワーマネージメント要求機能(HIPM)を無効に設定するステップと、電子機器は、ホストからのパワーマネージメント要求(PMREQ2)に対し常に否定する応答(PMNAK)を返し、シリアルATAバスをパワーセーブモードへ切り替えずに通信を継続させるステップとを備える。
【発明の効果】
【0017】
本発明によれば、ホストに何らかの不具合がある場合でも、ホストとデバイスとの間の通信がデッドロック状態に陥ることを回避し、快適にパワーマネージメント制御を行うことができる。
【発明を実施するための最良の形態】
【0018】
以下、本発明の実施の形態を図面に基づいて説明する。
【実施例1】
【0019】
図1は、本発明の一実施例にかかる電子機器を備えたシステムの構成を示す図である。本実施例のシステムは、デバイス側の電子機器が光ディスク装置10、ホスト側の電子機器がパソコン20の場合であり、両者をシリアルATAバス30を介して接続している。光ディスク装置10とパソコン20はシリアルATAインタフェースを持つとともに、シリアルATAバス30上のデータの送受信を一時的に止めてパワーセーブするパワーマネージメントの機能を持つ。
【0020】
デバイス側の光ディスク装置10は、装置全体の制御を行うCPU11、制御プログラムなどを格納するフラッシュROM13、光ディスクに対して情報を記録または再生するディスク記録再生部14、時間を計測するタイマ15、およびシリアルATAバス30に接続しホスト20との間で通信を行うためのシリアルATAインタフェース制御回路12を有する。なお、記録再生用の光ヘッドや光ディスクを駆動するモータなどの機構系は省略している。ここで、フラッシュROM13が格納するプログラムには、パワーマネージメント制御の際にデッドロック状態を回避するための制御プログラムが含まれ、タイマ15はデッドロック状態などの継続時間を計測する。
【0021】
ホスト側のパソコン20は、光ディスク装置10の動作を制御するCPU21と、シリアルATAバス30に接続し光ディスク装置10との間で通信を行うためのシリアルATAインタフェース制御回路22を有する。ここにCPU21においても、シリアルATAのパワーマネージメント制御の機能を有することは言うまでもない。光ディスク装置10とパソコン20を接続するシリアルATAバス30には、コマンドやデータなどのプリミティブ(送信信号Tx、受信信号Rx)が流れる。
【0022】
図2は、シリアルATAのパワーマネージメント動作の基本的なシーケンスを説明する図である。(a)はホスト(パソコン)20からパワーマネージメント要求を送る場合(HIPM)で、(b)はデバイス(光ディスク装置)10からパワーマネージメント要求を送る場合(DIPM)である。
【0023】
例えば(a)のHIPMの場合、ホスト20とデバイス10はアイドル状態でプリミティブ(データ)を通信中である。そして、ホストからデバイスに対してパワーマネージメント要求PMREQ(PMREQ_PまたはPMREQ_S)201を送信したとする。送信後のホストは、デバイスからの応答(PMACKまたはPMNAK)待ちの状態に入る。一方デバイスは、ホストからPMREQ201を受信すると、デバイスのパワーマネージメントの準備状況に応じて応答を送信する。ここでは、PMACK(肯定応答)202を送信したとする。デバイスはPMACK202を送信するとパワーセーブ状態に切り替え通信を停止する。一方ホストも、PMACK202を受信するとパワーセーブ状態に切り替え通信を停止する。このようにして、ホストとデバイスの両方は、ホストが要求したパワーセーブモードに移行する。もし、デバイスの応答がPMNAK(否定応答)であれば、パワーセーブモードに切り替えずにそのまま通信を継続する。なお、パワーセーブモードからアイドル状態に復帰するときは、復帰要求の信号(COMWAKE)を送信する。
【0024】
(b)のDIPMの場合も同様で、デバイスからパワーマネージメント要求PMREQ203を送信し、ホストからPMACK204の応答を返すことで、両者はデバイスの要求したパワーセーブモードに移行し、通信を停止する。
【0025】
図3は、従来のパワーマネージメント動作で生じるデッドロック状態を説明する図である。これは、ホスト(パソコン)20からのパワーマネージメント要求とデバイス(光ディスク装置)10からのパワーマネージメント要求とが重なった場合(コンフリクト状態)に生じる。
【0026】
ホスト20はパワーマネージメント要求PMREQ301を送信し、相手(デバイス)からの応答待ち状態に入る。一方デバイス10もパワーマネージメント要求PMREQ302を送信し、相手(ホスト)からの応答待ち状態に入る。これらが同じタイミングで実行されると、両者は互いに相手からの応答を待ち続ける状態、すなわちデッドロック状態に陥ることになる。このような場合、規格では、ホスト側がPMREQ301の送信を止めてデバイスへPMACKまたはPMNAKの応答303を返すことで、デッドロック状態を回避することになっている。
【0027】
しかしながら、ホストがパワーマネージメントの規格に沿った機能を備えていない場合や、機能を備えていても何らかの不具合(応答タイミングずれなどの要因を含む)があって正常な応答303を返すことができない場合には、デッドロック状態から脱出することができない。
【0028】
図4は、本実施例におけるデッドロック状態からの回避方法を説明する図である。前記図3のように、ホスト20とデバイス10からのパワーマネージメント要求が重なり、かつホスト20がこれを回避するための応答を返さない場合には、デッドロック状態が継続する。このような場合には、デバイス10側においてホスト20に対するPMREQの送信を止めてPMNAKの応答を返し、デッドロック状態から脱出させるようにした。
【0029】
図4において、ホスト20からのパワーマネージメント要求PMREQ401とデバイス10からのパワーマネージメント要求PMREQ402とが重なり、両者は互いに相手からの応答を待ち続けるデッドロック状態に入っている。このときホストには何らかの不具合が発生して、これを回避するための応答303(図3)を返すことができず、PMREQ401を送信し続けている。
【0030】
このデッドロック状態が所定時間T0継続した場合、デバイスはPMREQ402の送信を止めてホストへPMNAK(否定応答)403を返す。ここで、デバイスがPMREQ402を送信した場合、ホストからの応答の待ち時間は正常な場合約0.4μsec程度である。よって、上記所定時間T0をこれよりも大きい例えば1sec程度に設定すれば、ホストの異常を判別することができる。ホストはPMNAK403を受信すると、パワーセーブモードへの切り替えを止めてアイドル状態にて通信を継続する。またデバイスもアイドル状態にて通信を継続する。
このようにホストに何らかの不具合であっても、デバイス側の応答処理によりデッドロック状態から脱出することができる。
【0031】
図5は、デバイスにおけるデッドロック状態の回避方法を示すフローチャートである。
S501で、デバイス10はタイマ15をスタートさせる。S502で、ホスト20に対してパワーマネージメント要求PMREQ402を送信する。送信後、ホスト20からの応答を待ちながら、次の項目についてチェックする。S503では、ホスト20からPMACK(肯定応答)を受信したかどうかを判定し、これを受信していればS504に進み通信を止める(パワーセーブ状態に移行する)。S505では、ホスト20からPMNAK(否定応答)を受信したかどうかを判定し、これを受信していればS506に進み通信をそのまま継続する(非パワーセーブ状態)。
【0032】
S507では、ホスト20からパワーマネージメント要求PMREQ401を受信したかどうかを判定する。これを受信していればS508に進み、タイマ15が所定時間T0経過したかどうか判定する。所定時間T0が経過していればデッドロック状態と判断し、S509に進み、ホストに対してPMREQ402の送信を止めてPMNAK(否定応答)403を送信する。これにより、デッドロック状態から脱出してホストとデバイスの通信を継続する。上記判定(S503,S505,S507)においていずれも受信せず、またS508にて所定時間T0未満の場合は、S503に戻りホストからの受信チェックを繰り返す。
【0033】
このように、デバイスがPMREQを送信してから所定時間T0が経過してもホストからPMREQを受信し続ける場合は、ホストの不具合と判定し、デバイスはPMREQの送信を止めてPMNAKを返し、デッドロック状態から脱出することができる。
【実施例2】
【0034】
次に、前記実施例1の処理をより簡単に実行するための実施例2を述べる。
本実施例は、デバイスからのパワーマネージメント要求機能(DIPM)が有効にされた場合は、ホストからの要求機能(HIPM)を無効にするように設定することで、PMREQが重なった場合の処理を簡略化するものである。
【0035】
図6は、従来のパワーマネージメント要求の設定とデッドロック状態を説明する図である。ホスト20はデバイス10にSET_FEATURES601というコマンドを送り、デバイス10からホスト20へ向けたパワーマネージメント要求機能DIPMを有効にさせる。すると、ホスト20とデバイス10のいずれからもパワーマネージメント要求PMREQを送信することができる。そして、これらの要求PMREQ602,603が重なると、両者は互いに相手からの応答を待ち続ける状態、すなわちデッドロック状態に陥ることになる。この場合、ホスト20が規格に従って回避処理を行わないと、デッドロック状態が継続してしまう。
【0036】
図7は、本実施例におけるデッドロック状態からの回避方法を説明する図である。
ホスト20からデバイス10にSET_FEATURES701というコマンドを送ると、デバイス10からホスト20へ向けたパワーマネージメント要求機能DIPMが有効になる。そのときデバイス10は、ホストからのパワーマネージメント要求機能HIPMを無効にするように設定する。ここでHIPMを無効にするとは、ホストからパワーマネージメント要求PMREQを受けた場合に、常にPMNAK(否定応答)を返すように設定することである。
【0037】
ホスト20とデバイス10の両者からのパワーマネージメント要求PMREQ702,703が重なると、両者は一旦互いに相手からの応答を待ち続ける状態に移行する。そのときデバイス10は、ホスト20からPMREQ702を受けているので、設定に従い直ちにPMNAK(否定応答)704を返す。ホスト20はPMNAK704を受けると、応答待ちを止めてアイドル状態に戻し通信を継続する。
【0038】
このようにホストに不具合があっても、デバイス側の回避処理によりデッドロック状態から脱出することができる。そしてこの回避処理は、ホストからの応答を待たずに実行するので、デッドロック状態からの回避を迅速に実行することができる。
【0039】
図8は、デバイスにおけるデッドロック状態の回避方法を示すフローチャートである。
S801で、デバイス10はホスト20からATAコマンドを受信する。S802で、受信したコマンドが「SET_FEATURES」であるかどうかを判定する。Yesの場合は、S803で、そのコマンドがDIPMを有効(Enable)にするものであるかどうかを判定する。Yesの場合は、S804でデバイスのDIPM機能を有効にする。
【0040】
さらにS805で、デバイスのHIPM機能を無効にする。すなわち、ホストからPMREQを受けても常にPMNAKを返すように設定する。S802,S803でのコマンド判定が他のコマンドであれば、S806,S807にてそれらに対する処理を行う。
【0041】
この処理により、デバイス側において、デバイスからホストへの要求機能DIPMを有効に設定するとともに、ホストからデバイスへの要求機能HIPMを無効に設定することができる。この設定により、両者からのパワーマネージメント要求PMREQが重なった場合でも排他的な処理が実現し、デッドロック状態を迅速に回避することができる。
【0042】
本実施例の処理は、ホストからデバイスへの要求機能HIPMを無効に設定するものであるが、無効にするかどうかをユーザが選択できることが望ましい。また、前記実施例1の処理と組合わせて、ホストの機能に不具合があると判定した場合に、それ以後の処理において、ホストからの要求機能HIPMを無効とするように設定することもできる。
【0043】
上記実施例では、ホストとしてパソコン、デバイスとして光ディスク装置を例にあげて説明したが、シリアルATAを適用できる電子機器であれば、本発明はどの機器にも適用できることは言うまでもない。
【図面の簡単な説明】
【0044】
【図1】本発明の一実施例にかかる電子機器を備えたシステムの構成を示す図。
【図2】パワーマネージメント動作の基本的なシーケンスを説明する図。
【図3】従来のパワーマネージメント動作で生じるデッドロック状態を説明する図。
【図4】実施例1におけるデッドロック状態からの回避方法を説明する図。
【図5】デバイスにおけるデッドロック状態の回避方法を示すフローチャート。
【図6】従来のパワーマネージメント要求の設定とデッドロック状態を説明する図。
【図7】実施例2におけるデッドロック状態からの回避方法を説明する図。
【図8】デバイスにおけるデッドロック状態の回避方法を示すフローチャート。
【符号の説明】
【0045】
10…光ディスク装置(デバイス)
11…CPU
12…シリアルATAインタフェース制御回路
13…フラッシュROM
14…ディスク記録再生部
15…タイマ
20…パソコン(ホスト)
21…CPU
22…シリアルATAインタフェース制御回路
30…シリアルATAバス。

【特許請求の範囲】
【請求項1】
シリアルATAインタフェースを持ち、シリアルATAバスを介してホストと通信可能な電子機器であって、
上記シリアルATAバスに対しパワーセーブモードへの切り替えを制御するシリアルATAインタフェース制御部と、
時間を計測するタイマと、
制御プログラムに従い当該電子機器の各部を制御するCPUとを備え、
上記シリアルATAインタフェース制御部は、上記シリアルATAバスを介して上記ホストにパワーマネージメント要求(PMREQ1)を送信し、該ホストから返された応答(PMACKまたはPMNAK)に応じて上記シリアルATAバスをパワーセーブモードへ切り替えるものであって、
上記シリアルATAバスを介して上記ホストにパワーマネージメント要求(PMREQ1)を送信後、上記タイマにより計測した時間が所定時間を経過しても上記ホストから応答がなく、該ホストからのパワーマネージメント要求(PMREQ2)を受信し続ける場合、上記ホストへの要求(PMREQ1)の送信を止めるとともに、上記ホストからの要求(PMREQ2)を否定する応答(PMNAK)を返し、上記シリアルATAバスをパワーセーブモードへ切り替えずに通信を継続させることを特徴とする電子機器。
【請求項2】
シリアルATAインタフェースを持ち、シリアルATAバスを介してホストと通信可能な電子機器であって、
上記シリアルATAバスに対しパワーセーブモードへの切り替えを制御するシリアルATAインタフェース制御部と、
制御プログラムに従い当該電子機器の各部を制御するCPUとを備え、
上記シリアルATAインタフェース制御部は、上記ホストから、当該電子機器からのパワーマネージメント要求機能(DIPM)を有効にさせるためのSET_FEATURESコマンドを受信すると、当該電子機器のパワーマネージメント要求機能(DIPM)を有効にするともに、上記ホストからのパワーマネージメント要求機能(HIPM)を無効に設定し、上記ホストからのパワーマネージメント要求(PMREQ2)に対し常に否定する応答(PMNAK)を返し、上記シリアルATAバスをパワーセーブモードへ切り替えずに通信を継続させることを特徴とする電子機器。
【請求項3】
シリアルATAインタフェースを持つ電子機器とホストを接続するシリアルATAバスのパワーマネージメント方法であって、
上記電子機器は、上記シリアルATAバスを介して上記ホストにパワーマネージメント要求(PMREQ1)を送信し、該ホストから返された応答(PMACKまたはPMNAK)に応じて上記シリアルATAバスをパワーセーブモードへ切り替えるステップと、
上記電子機器が上記要求(PMREQ1)を送信後、所定時間を経過しても上記ホストから応答がなく、該ホストからのパワーマネージメント要求(PMREQ2)を受信し続ける場合、当該電子機器は、上記ホストへの要求(PMREQ1)の送信を止めるとともに、上記ホストからの要求(PMREQ2)を否定する応答(PMNAK)を返し、上記シリアルATAバスをパワーセーブモードへ切り替えずに通信を継続させるステップと、
を備えることを特徴とするシリアルATAバスのパワーマネージメント方法。
【請求項4】
シリアルATAインタフェースを持つ電子機器とホストを接続するシリアルATAバスのパワーマネージメント方法であって、
上記ホストは上記電子機器に対して、該電子機器からのパワーマネージメント要求機能(DIPM)を有効にさせるためのSET_FEATURESコマンドを送信するステップと、
上記電子機器は受信したコマンドに従い、当該電子機器のパワーマネージメント要求機能(DIPM)を有効にするともに、上記ホストからのパワーマネージメント要求機能(HIPM)を無効に設定するステップと、
上記電子機器は、上記ホストからのパワーマネージメント要求(PMREQ2)に対し常に否定する応答(PMNAK)を返し、上記シリアルATAバスをパワーセーブモードへ切り替えずに通信を継続させるステップと、
を備えることを特徴とするシリアルATAバスのパワーマネージメント方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate