(57)【要約】【課題】多数のプロセッサ上で適切なタスク・スケジューリングを用いることにより節電を図る。【解決手段】移動機（１０）はスケジューラ（２０）を用いたタスク（１８）を管理し、多数のプロセッサ（１２）上でタスクをスケジューリングする。エネルギー節約のため、スケジューリング対象のタスク集合を２つ以上の部分集合に分割し、異なるプロシージャによってスケジューリングする。特定の実施形態では、第１部分集合はタスクを実行するプロセッサに基づきエネルギー消費偏差が最も高いタスクを含み、電力重視のプロシージャによって、またタスクは主にエネルギー消費基準に基づいてスケジューリングされる。エラーがない場合第２部分集合は、リアルタイム拘束プロシージャによりスケジューリングされる。エラーがあった場合、エネルギー消費偏差が最も低い１つ以上のタスクを第１部分集合から第２部分集合に移動し、スケジューリングを繰り返す。【選択図】      図１
2004252937.tif 000002
【特許請求の範囲】
【請求項１】
モバイル機器であって、
多数のプロセッサと、
前記プロセッサ上でタスクをスケジューリングするスケジューラと、
を備え、前記スケジューラは、
前記タスクの２つの部分集合への分割と、
主として第１集合の重視すべき事項の上でタスクをスケジューリングする第１プロシージャによる前記第１部分集合のスケジューリングと、
主として第２集合の重視すべき事項の上でタスクをスケジューリングする第２プロシージャによる前記第２部分集合のスケジューリングと、
によってスケジューリングを行うモバイル機器。
【請求項２】
多数のプロセッサを備えたモバイル機器上で多数のタスクをスケジューリングする方法であって、
前記タスクを２つの部分集合に分割するステップと、
主として第１集合の重視すべき事項の上でタスクをスケジューリングする第１プロシージャによって前記第１部分集合をスケジューリングするステップと、
主として第２集合の重視すべき事項の上でタスクをスケジューリングする第２プロシージャによって前記第２部分集合をスケジューリングするステップと、
から成る方法。
【請求項３】
請求項１記載のモバイル機器又は請求項２記載の方法において、前記第１集合の重視すべき事項がエネルギー節約に基づいている、モバイル機器又は方法。
【請求項４】
請求項３記載のモバイル機器又は方法において、前記第１プロシージャが前記プロセッサの異なるもの上での各タスクのスケジューリングに基づいてエネルギー消費量の変化を規定するタスクのそれぞれに関係付けられたエネルギー偏差基準の順序でタスクをスケジューリングする、モバイル機器又は方法。
【請求項５】
請求項１ないし３のいずれか１項に記載のモバイル機器又は方法において、前記第２集合の重視すべき事項が前記タスクに関係付けられたデッドラインに基づいた、モバイル機器又は方法。
【請求項６】
請求項５記載のモバイル機器又は方法において、前記第２プロシージャが前記タスクに関係付けられたデッドラインの順序でタスクをスケジューリングする、モバイル機器又は方法。
【請求項７】
前記１ないし５のいずれか１項に記載のモバイル機器又は方法において、タスクがスケジューリング・エラーに応答して前記第２部分集合から前記第２部分集合に移動する、モバイル機器又は方法。
【請求項８】
請求項６記載のモバイル機器又は方法において、前記第１部分集合が最も高いエネルギー偏差のタスクを含む、モバイル機器又は方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般的に処理装置に関し、更に特定すれば、エネルギーを重視したアプリケーション・スケジューリングに関する。
【０００２】
【関連技術の説明】
コンピュータ処理および通信の技術の世界において、進化の速度が最も早い技術には、通信機能とコンピューティング機能とを結合したモバイル機器がある。新たな機器は極めて速い速度で進化を遂げ、独占的環境からオープン・プラットフォーム適合に移行しつつあり、更に、第３世代（３Ｇ）のワイヤレス・ネットワークが出現して、マルティメディア・プレーヤといった新たなアプリケーションに対応している。しかしながらこの新たな柔軟性および新たなアプリケーションに対応する処理要件は、現行機器が備えることができる性能よりはるかに高い。したがって、一層強力なプロセッサを備えた新たなハードウエア・プラットフォームが導入されている。しかしながら、これらの機器は主に電力消費量という組み込まれたシステム拘束に対処しなければならない。何故なら、強力なプロセッサは、一般に、電力消費型の装置であるからである。
【０００３】
エネルギー消費量は、消費者にとって非常に重要である。何故なら、コンピュータ内臓電話、携帯電話、ＰＤＡ（個人用携帯型情報端末）、および手持ち式コンピュータといったモバイル機器は、有線電話接続に加えて機能すれば割り増し価格で販売される。更に、大きさは消費者がモバイル機器を選択する際の重要な要因となるため、バッテリの大きさは制約される。したがって、製造業者にとってバッテリの大きさを大きくしないで長寿命バッテリの機器を生産することは優先事項である。
【０００４】
低消費電力と高性能演算との間でのトレードオフを実現する方法は、ＯＭＡＰのような異種のマイクロプロセッサ・プラットフォームを使用することである。いくつかの並列プロセッサは、単一のプロセッサに比して、低い方のクロック周波数を用いながら同一の性能を備えるため、電力供給を低下し、結局は電力消費量を低減することができる。
【０００５】
しかしながら、ハードウエア・プラットフォームが電力消費量問題を解決するためには、強力なソフトウエアの支援が必要である。殆どのアプリケーションは、マルチプロセッサ・プラットフォーム用にはなされていないため、プラットフォームの並行性を活用することができない。アプリケーションの内部が並列であったとしても、ソフトウエア機構はプロセッサ上で演算分散を行う必要がある。更に、ワイヤレス・アプリケーションのオープン環境方向への進化は、知られていないアプリケーションを動的にダウンロードすることを可能としているが、これにより事前に計算した配置の使用はできなくする。
【０００６】
したがって、モバイル通信機器においてアプリケーションの実行を制御しエネルギー消費量を低減する方法および装置が求められている。
【０００７】
【課題を解決するための手段】
本発明において、モバイル機器は多数のプロセッサと、プロセッサ上でタスクをスケジューリングするスケジューラとを備えている。スケジューラはタスクを２つの部分集合に分割することによってタスクをスケジューリングする。第１の部分集合は、主として第１集合の重視すべき事項に基づいてタスクをスケジューリングする第１のプロシージャによってスケジューリングされる。第２部分集合は、主として第２集合の重視すべき事項に基づいてタスクをスケジューリングする第２プロシージャによってスケジューリングされる。
【０００８】
本発明によって従来技術に優る重要な利点が得られる。多数のプロセッサ上で適切なタスク・スケジューリングを用いることによって節電が図られる。その結果、モバイル通信機器のバッテリ寿命を大幅にのばすことができ、またはバッテリ容量を削減し機器の小型化を図ることができる。タスクのスケジューリングを素早く行ってリアルタイムのオンライン・タスクに対応することができる。
【０００９】
【実施例】
本発明は図面の図１−図６に関連させると最もよく理解できよう。種々の図面の同様の要素に対しては同様の番号が用いられている。
【００１０】
図１はマルチプロセシング・モバイル機器１０の全体ブロック図を示す。Ｐ０からＰｎ−１までとして表示された多数のプロセッサ１２は、トラフィック・コントローラとメモリ・インターフェース１６とを介して共有メモリ１４に結合されている。プロセッサ１２は、例えば、１つ以上の汎用性プロセッサ、ディジタル信号プロセッサ、またはコプロセッサを含むことができる。プロセッサ１２は、Ｔ０からＴｍ−１までとして表示されるタスク１８を実行する。スケジューラ２０は、どのプロセッサがどのタスクを実行するかを判定する。スケジューラ２０は、全体的動作システムの一部であるプロセッサ１２の１つの上で実行される場合もある。その他のプロセッサ１２の一部または全ては自己の処理システムの元で動作する場合もある。
【００１１】
図１の機器１０を以下に論ずるについて、タスク集合（Ｔｉ，０≦ｉ≦ｍ−１）は公知であり、以下の情報は、タスク毎に知らされ又は近似することができるものとする。即ち、タスク（Ｄ）のデッドライン、各プロセッサ（Ｃｊ，０≦ｊ≦ｎ−１）上でのタスク実行時間、および各プロセッサ（Ｅｊ）上でのタスク毎のエネルギー消費量といった情報である。更に、タスクはいずれもいつでも実行でき、タスクの実行は相互依存しない（即ち、Ｔ２の実行はＴ１の完了に依存しない）が、タスク間の依存性は必要に応じスケジューリングに組み込むことが可能であるものとする。
【００１２】
表１はスケジューリングされ、２つのプロセッサ１２を有する機器上で実行される６個のタスク（Ｔ０からＴ５まで）の一例を示す。各タスクはいずれのプロセッサ上でも実行可能であるが、タスク実行時に消費されるエネルギー、およびタスク実行に要する時間はプロセッサ間で同じではない。
表１−例１のタスク特性
2004252937.tif 000003
【００１３】
各タスクはデッドライン（Ｄ）を有し、この係数はどのプロセッサがタスクを実行するかによって変動することはない。タスクごとの実行時間は、プロセッサによって左右され、Ｃ０は、プロセッサＰ０上でのタスク処理時間、Ｃ１は、プロセッサＰ１上でのタスクの処理時間である。同様に、各タスクに伴うエネルギー消費量はプロセッサによって左右され、Ｅ０はプロセッサＰ０上でのタスクのエネルギー消費量、Ｅ１はプロセッサＰ１上でのタスクのエネルギー消費量である。
【００１４】
図２は、第１にリアルタイム拘束に基づいて、第２にパワー消費量に基づいてタスクをスケジューリングするリアルタイム拘束プロシージャのフロー・チャートを示す。リアルタイム拘束プロシージャは、全てのタスクに関連する情報を（表１に示すように）デッドラインが大きくなる順序でソートして、単一リストに格納する。ステップ３０では、タスク・インデックスｉ（最初に“０”に設定する）を用いてタスク集合の所与のタスクを識別する。ステップ３０では、プロセッサ・インデックス（最初に“０”に設定する）を用いて所与のプロセッサを識別する。ステップ３４で、プロセッサＰｊは、現在のタスクＴｉを実行のための消費量の増加の順序でソートされる。ブロック３６、３８および４０では、タスクを実行するプロセッサが選択される。このループは、タスク用のエネルギー消費の最も少ないプロセッサであって、タスクがデッドライン（Ｄ）前に終了されるようにタスク・スケジューリングするために現在使用可能なプロセッサを選択する。従って、電力状況は考慮される。何故なら、プロシージャはこのタスク用の電力効率の高い方のプロセッサから電力効率の低い方のプロセッサにいたるまで各プロセッサを検討し、デッドライン前にタスクを終了することを可能にする第１プロセッサを選択するからである。プロセッサが使用不能の場合（ｊ＝ｎ）、プロシージャはブロック４２でエラーとなる。
決定ブロック３６に戻って、プロセッサが得られた場合、ブロック４４において、タスクはスケジューリングされ当該プロセッサ上で実行される。その次のタスクはブロック４６において識別され、プロシージャは３２に戻り、最終的にブロック４８において全てのタスクが実行（ｉ＝ｍ）される。
【００１５】
このプロシ−ジャの擬似コードを以下に示す。
１．デッドラインの大きくなる順序で選択されたタスクＴ毎に行う、
２．Ｔを実行するための消費量の増加順序で選択されたプロセッサＰ毎に行う、
３．Ｐ上で実行されたＴがそのデッドライン前に終了すれば、
４．ＴをそのデッドラインによりＰ上に置き、次のタスクに進む、
５．であれば終了
６．終了
７．アボート（現タスク用に容認可能な配置が得られなかった）
８．終了
このリアルタイム拘束プロシージャは、電力を重視しないプロシージャに比して電力削減を行うことができるが、いくつかの重要な最適化は行わない。図３は、表１からのデータを用いた時間拘束プロシージャの効果を示し、エネルギーはカッコ内の各タスクによって消費される。リアルタイム拘束プロシージャによって演算されたスケジュールは、全部で１３７単位の消費量を発生する。
【００１６】
図３ｂは、電力消費量が僅か１２８である同じタスク集合用の異なるスケジュールを示す。これら２つのスケジュールの主たる差異は、タスクＴ３の配置が原因である。Ｐ２上でＴ３を実行することによって、Ｐ１上でＴ４およびＴ５を更に効率よく実行するための充分な時間が生ずる。この結果、全体的な消費量への寄与はＴ３をＰ１上で実行することによるエネルギー節約よりも強力である。
【００１７】
全体的最適化を高めるために、全体的な消費量に最も大きな影響を及ぼす可能性のあるタスクを識別するための基準が導入されている。パワー最適化に大きな影響を与えるそれらのタスクは、必ずしも電力消費量が大きいタスクではなく、むしろプラットフォームの異なるプロセッサ上で消費量間の差が大きくなるタスクである。したがって、δ（Ｔ）基準は、２つの（又はそれよりも多い）異なるプロセッサ上で実行されるタスクＴの２つの消費量間の差と定義する。数値的に、ｎがプラットフォーム上のプロセッサの数であるとすれば、δ（Ｔ）の定義は以下のとおり。
ｍａｘ（｜Ｅｘ−Ｅｙ｜，０≦ｘ≦ｎ−１，０≦ｙ≦ｎ−１）
【００１８】
タスクＴのδ（Ｔ）基準が高まるほど、このタスクは、他のタスクを最適にスケジューリングするためにより重要になると考える必要がある。
【００１９】
図４に示すように、電力を重視することを主体としたプロシージャはδ（Ｔ）の活用に基づいている。このプロシージャの主たる関心事はδ（Ｔ）が高いタスクをうまく配置することである。ブロック５０では、プロシージャはタスク・カウンターｉを初期化する。ブロック５２では、タスクは消費量δ（Ｔ）の減少変化の順でソートされる。即ち、プロセッサがそのエネルギー消費量に最も影響を及ぼすタスクを最も早くスケジューリングする。ブロック５４では、プロセッサ・カウンタｊを初期化する。ブロック５６では、プロセッサは、現在のタスクＴ１を実行するための消費量の増加順にソートされる。ブロック５８、６０および６２ではループが形成される。このループにおいては、既にスケジューリングされたタスクが終了するのを妨げずに、（現在のタスク用のエネルギー消費量の増加順に選択された）プロセッサが、タスクにそのデッドライン（Ｄ）によって対応できるか否かをプロシージャが判定する。形成できなかった場合、プロシージャは、ブロック６４においてエラーとなる。
【００２０】
ブロック５８においてプロセッサが得られた場合、タスクは最も早いものから最も遅いもの迄のそのデッドラインに基づいてスケジューリングされる。次のタスクがブロック６８において識別され、ブロック５４において次のタスク用のプロシージャが始まり、最終的にタスクは全てブロック７０においてスケジューリングされる。
【００２１】
従って、電力を重視することをベースにしたプロシージャは、タスクをδ（Ｔ）基準が一番高いタスクからδ（Ｔ）基準が一番低いタスクまでタスクを分散させる。電力を重視することをベースにしたプロシージャは、タスクごとに、エネルギー消費量の増加順に各配置を考慮し、このプロセッサに既に割り当てられた他のタスクを考慮して、デッドラインの前にタスク完了を可能とする第１配置を選択する。一時的拘束に対処するため、プロセッサに割り当てられたタスクは全て、最も早いものから最も遅いものまでのそのデッドラインに基づいて実行される。従って、スケジューラは、タスクをプロセッサに割り当てる前に、タスクが、デッドラインの遅い他のタスクがそのデッドラインの前に完了するのを妨げないことを確認する。妨げる場合、プロシージャはこの配置を拒絶しなければならない。
【００２２】
このプロシージャの擬似コードを以下に示す。
１．δ（Ｔ）減少順にタスク毎に行う
２．Ｔ実行のための消費量増加順のプロセッサＰごとに行う
３．ＴをＰ上に配置することによってＴ又は既に配置されたタスクにデッドライン・エラーが生じなかった場合、
４．そのデッドラインに基づいてＴをＰ上に置き、次のタスクに進む、
５．であれば終了、
６．終了
７．アボート（現在のタスクに対して容認可能な配置が得られなかった）
８．終了
【００２３】
電力を重視したプロシージャは電力削減の性能は良好であるが、多くの場合スケジュールを得ることはできない。表２は、表１に表示のタスクをδ（Ｔ）でソートしたものである。説明のため、タスク・インデックスは表１に表示のものと同一である。図５ａに表示されているように、電力を重視したプロシージャはタスクＴ３を配置しようとするとアボートする。この問題はプロシージャがＴ３をスケジューリングしようとすると発生する。即ち、Ｔ３がプロセッサＰ０上に配置されると（既にスケジューリングされた）Ｔ５はデッドライン前に終了することができないのに対して、Ｔ３がプロセッサＰ１上に配置された時は、タスクＴ４はそのスケジュール前に完了することはできない。
表２−例２のタスク特性
2004252937.tif 000004
【００２４】
しかしながら、図５ｂに表示されるように、このタスク集合の実行可能なスケジュールが存在する。明らかなように、場合によっては消費電力を重視したプロシージャは電力消費量を重視し過ぎ、増加デッドラインによるタスク・リストの順序付けはシステムの行動を一時的に良好とするには不充分である。
【００２５】
この点において、主要関心事が反する２つのプロシージャについては、リアルタイム拘束プロシージャのリアルタイム性能は容認可能であるが、実行可能な電力最適化は行わない恐れがあり、電力重視プロシージャは電力最適化の実行は充分であるが、実行可能なスケジュールが存在する場合にはアボートする恐れがある。
【００２６】
図６は、２つのプロシージャを結合しそれらの長所を生かし弱点を補償する全体を重視するプロシージャを示す。本発明は所望の基準に基づきタスクをスケジューリングする２つ（又はそれよりも多くの）プロシージャいずれも使用可能であるが、ここでは上述の電力を重視するプロシージャと時間拘束プロシージャとを用いた発明を示す。これら２つのプロシージャの結合はタスク集合を二つの部分集合に分割することによって実現される。その際、第１部分集合はδ（Ｔ）基準の最も高いタスクを含み、第２部分集合はデッドラインに基づいてソートされた残りのタスクを含む。第１部分集合は電力を重視するプロシージャによってスケジューリングされるが、第２部分集合はリアルタイム拘束プロシージャによってスケジューリングされる。
【００２７】
図６において、状態８０でタスク集合を２つの部分集合に分割する。タスク分割の基準については以下で論ずる。状態８２では、タスクの第１部分集合が電力を重視したプロシージャによってスケジューリングされ、かかるスケジューリングから最も利益を得るタスク、即ちδ（Ｔ）基準が高いタスク用エネルギー消費量に対し最良のスケジューリングを行う。第１部分集合をスケジューリングする際デッドラインに遅れなければ、タスクの第２部分集合は状態８４においてリアルタイム拘束プロシージャによってスケジューリングされる。いずれかの部分集合スケジューリングがデッドラインに遅れる結果になると、状態８６において分割が変更され、１つ以上のタスクが第１部分集合から第２部分集合に切替えられる。デッドラインに遅れることなく双方の部分集合のスケジューリングが一旦完了すると、スケジューリングは状態８８において完了する。
【００２８】
電力重視のプロシージャは、スケジューラが負荷の軽いプロセッサ上で作用する時にはかなりの電力削減が可能となる。そのため、全体を重視するプロシージャは電力を重視するプロシージャを利用し始める。この方策によれば、全体を重視するプロシージャは、タスクをδ（Ｔ）の最も高いタスクを考慮し始める。しかし、リアルタイム拘束プロシージャの方策と共に起こるリアルタイム性能の問題を防止するため、タスクの部分集合だけを電力を重視したプロシージャと一緒に配置する。この部分集合が一旦スケジューリングされると、全体を重視するプロシージャはリアルタイム拘束プロシージャの方策に切り替わり、残りのタスクをそのデッドラインに基づいて考慮し、増加デッドラインの順序でそれらを配置する。全体を重視するプロシージャの擬似コードを以下に示す。
１：終了＜‐‐誤り
２．最初のタスク分割を選択して２つの部分集合へ
３．繰り返す
４．電力基準プロシージャを第１部分集合に用いる
５．デッドラインに遅れない場合
６．リアルタイム拘束プロシージャを第２部分集合に用いる
７．デッドラインに遅れない場合、
８．終了＜‐‐正しい
９：その他：
１０．新たなタスク分割を計算する
１１：であれば終了
１２：その他
１３：新たなタスク分割を計算する
１４：であれば終了
１５：終了するまで＝正しい
【００２９】
電力を大幅に削減し、リアルタイムを良好とするためには、２つの部分集合を生成する必要がある。何故なら、所与のｍタスク集合に対し、２ｍの異なった組み合わせが可能であり、プロシージャはリアルタイム・イベントをスケジューリングするために使用されることを目指すために、そのタスクのスケジューリングを素早く行わなければならない。実行可能な分割を全て考慮し、電力削減と性能との間の最善のトレードオフを判定することは不可能であるため、好適な実施形態では、サーチとテストの方策が用いられている。計算のスケジューリングによって生じるオーバーヘッドは、システム性能にとって常に重要な問題であり、特にそれがオンラインのリアルタイムのスケジューリング時は重要であることから、プロシージャが考慮しなければならない分割の数は限定される。
【００３０】
初期のタスク分割の選択、およびタスクを第１部分集合から第２部分集合への移動の仕方はプロシージャの複雑さに影響する。プロシージャの一実施態様では、最初の分割で全てのタスクを第１部分集合に入れ、第２部分集合は空とする。タスクを第１部分集合から第２部分集合へ１つずつ移動する場合、プロシージャのこの実施態様は０（ｍ３）の複雑さを有し、ここでｍはタスクの数である。スケジューラのエラー時に第１部分集合のタスクの半分を第２部分集合に移動させることに方策を変更した場合、複雑さは０（ｍ２．ｌｏｇ（ｍ））に減少する。
【００３１】
本発明は、ここではタスクをエネルギー節約およびリアルタイム拘束という目標に基づいたタスク分割として論じてきたが、タスクの分割は、またオペレーティング・システム設計者によるその他の拘束とバランスを取るためにも用いられる。
【００３２】
リアル・システムにおいて全体を重視したプロシージャを実現するためには一定の適応が求められる。主たる修正は定期的なタスクの対応である。定期的なタスクは、新たなタスクの定期的な出現と看做される。１つのタスクが完了すると、それはタスク集合から除去される。従って、スケジューラが処理するタスク集合は時間と共に変化する。新たなタスクがタスク集合に加えられる毎に、新たなスケジュールが以下の方法で算出される。
１．実行が既に開始されたタスクは全てその実行を開始したプロセッサの上に配置される。
２．その他のタスクは全て、既に配置されたタスクを考慮しながら、全体を重視するスケジュール・プロシージャを用いて配置される。
【００３３】
本発明によって従来技術に優る重要な利点が得られる。多数のプロセッサ上で適切なタスク・スケジューリングを用いることによって節電が図られる。その結果、モバイル通信機器のバッテリ寿命を大幅にのばすことができ、またはバッテリ容量を削減し機器の小型化を図ることができる。タスクのスケジューリングを素早く行ってリアルタイムのオンライン・タスクに対応することができる。
【００３４】
本発明の詳細な説明は実施形態のいくつかの例を対象としたが、これらの実施形態の種々の修正物および代替実施形態が当業者に提示されよう。本発明は特許請求の範囲に収まるあらゆる修正物又は代替実施形態を含む。
【図面の簡単な説明】
本発明およびその利点を一層完璧に理解するため、添付図面と一緒に行った以下の説明を参照する。
【図１】スケジューラを用いて多数のプロセッサ上でタスクをスケジューリングしエネルギー消費量を削減するモバイル通信機器のブロック図。
【図２】主として一時的基準に基づいてタスクをスケジューリングするリアルタイム拘束プロシージャの操作を説明するフロー・チャート。
【図３】ａはデータの一例の上でリアルタイム拘束プロシージャを使用したスケジューリング結果。
ｂはリアルタイム拘束プロシージャによるのではないエネルギー節約最適化を有するスケジュール。
【図４】主としてエネルギー消費量基準に基づいてタスクをスケジューリングする電力を重視したプロシージャの操作を説明するフロー・チャート。
【図５】ａはエラー結果となった図３ａのデータ例の上で電力を重視したプロシージャを用いたスケジューリング結果。ｂは電力を重視したプロシージャによるのではないエラーなしスケジューリング。
【図６】図４の電力を重視したプロシージャと図２のリアルタイム拘束のプロシージャとを組み込みエネルギー節約を最適化し、且つスケジューリング・エラーを低減させる全体重視のプロシージャの状態図。
【図１】
2004252937.tif 000005
【図２】
2004252937.tif 000006
【図３】
2004252937.tif 000007
【図４】
2004252937.tif 000008
【図５】
2004252937.tif 000009
【図６】
2004252937.tif 000010
【外国語明細書】
2004252937.tif 000011
2004252937.tif 000012
2004252937.tif 000013
2004252937.tif 000014
2004252937.tif 000015
2004252937.tif 000016
2004252937.tif 000017
2004252937.tif 000018
2004252937.tif 000019
2004252937.tif 000020
2004252937.tif 000021
2004252937.tif 000022
2004252937.tif 000023
2004252937.tif 000024
2004252937.tif 000025
2004252937.tif 000026
2004252937.tif 000027
2004252937.tif 000028