(57)【要約】【課題】そのハードウェアリソースを効率的に用いてより高いデータ処理スループットを達成するＳＭＩＤプロセッサを提供すること。【解決手段】ＳＩＭＤプロセッサの有効幅は、データ処理側の速度の何分の１かの速度でＳＩＭＤ処理装置の命令処理側をクロッキングし、各々が複数のデータ経路を有する複数の実行パイプラインを提供することにより、拡張される。そのため、より高いデータ処理スループットが達成されると同時に、命令はフェッチされ、クロックごとに一度発行される。この構成はまた、１つの大きなスレッドグループがＳＩＭＤプロセッサを介してクラスタされ、一緒に実行されることも可能にし、その結果、グラフィックス処理に関して実行されるテクスチャメモリアクセスのようなあるタイプの動作に関してより大きなメモリ効率が達成されることが可能である。【選択図】  図６
2007157154.tif 000002
【特許請求の範囲】
【請求項１】
複数の実行パイプラインを介して複数のコンピュータプログラム命令を処理する方法であって、
複数のスレッドの１つのグループに関して１つの命令を発行するステップと、
第１のクロック速度で、前記命令に関連する複数組のオペランドを収集するステップと、
第２のクロック速度で、前記実行パイプラインのうち１つに前記収集されたオペランドを供給するステップと
を含み、
前記グループ内の複数のスレッドの数は、前記複数の実行パイプライン内で提供されるデータ経路の総数を前記第１のクロック速度に対する前記第２のクロック速度の比率で乗算した数である
方法。
【請求項２】
命令のストリームが前記第１のクロック速度で連続して発行され、前記命令の各々に関して、前記第１のクロック速度で複数組のオペランドが収集される、請求項１に記載の方法。
【請求項３】
前記命令を少なくとも２つのタイプのうち１つに分類するステップをさらに含み、第１タイプの命令に関連するオペランドは前記第１の実行パイプラインに供給され、第２タイプの命令に関連するオペランドは前記第２の実行パイプラインに供給される、請求項２に記載の方法。
【請求項４】
第３タイプの命令は前記第１の実行パイプラインおよび前記第２の実行パイプラインのうち１つに供給される、請求項３に記載の方法。
【請求項５】
前記第２のクロック速度は少なくとも前記第１のクロック速度の２倍である、請求項１に記載の方法。
【請求項６】
前記命令は前記スレッドグループに関して実行されることになる一続きの命令中の１つの命令を含み、前記複数組のオペランドの各々は前記グループ内の前記スレッドのうち１つに対応する、請求項１に記載の方法。
【請求項７】
前記発行するステップは、複数の命令を含む命令バッファから１つの命令を選択するステップを含む、請求項６に記載の方法。
【発明の詳細な説明】
【発明の分野】
【０００１】
[0001]本発明の実施形態は、一般に単一命令複数データ（ｓｉｎｇｌｅ−ｉｎｓｔｒｕｃｔｉｏｎ，ｍｕｌｔｉｐｌｅ−ｄａｔａ（ＳＩＭＤ））処理に関し、より具体的には、ＳＩＭＤプロセッサ内でスレッドグループを処理するためのシステムおよび方法に関する。
【関連技術の説明】
【０００２】
[0002]ＳＩＭＤプロセッサは、単一命令と複数のデータ経路を結び付け、ハードウェアが効率的にデータ並列アルゴリズム（ｄａｔａ−ｐａｒａｌｌｅｌ  ａｌｇｏｒｉｔｈｍｓ）を実行することを可能にする。ＳＩＭＤプロセッサ実施態様の通常の利点は、パイプライン制御ハードウェアの削減と、ロックステップで複数のデータ経路を実行することから生じる命令処理とによってもたらされる。
【０００３】
[0003]一般に、ＳＩＭＤプロセッサ内のデータ経路の数を増やすことは、より多くのデータが並列に処理されることを可能し、パフォーマンス向上をもたらすことになる。しかし、プロセッサのサイズ制限は一定の数を超えるデータ経路の数を制限する。また、データ経路の数が大きすぎる場合、ハードウェアリソースの利用不足が存在する可能性がある。
【発明の概要】
【０００４】
[0004]本発明は、効果的にそのハードウェアリソースを活用して、より高いデータ処理スループットを実現する、改善されたＳＩＭＤアーキテクチャをプロセッサに提供する。本発明の一実施形態によれば、ＳＩＭＤ処理装置の有効幅は、データ処理側の速度の何分の１かの速度でＳＩＭＤ処理装置の命令処理側をクロッキングすることによって、実際のハードウェア幅の倍数に拡張される。本発明の別の実施形態によれば、ＳＩＭＤ処理装置の有効幅は、複数の実行パイプラインを提供することによって拡張される。異なるクロック速度を使用し、複数の実行パイプラインを提供することにより、大量のスレッドは、次の方程式に従ってスレッド集団に分類されることが可能である：集団＿サイズ＝（実行パイプラインの数）×（各実行パイプライン内のデータ経路の数）×（命令処理側のクロック速度に対するデータ処理側のクロック速度の比率）。
【０００５】
[0005]本発明の一実施形態によるＳＩＭＤ処理装置は、第１のクロック速度で動作する命令処理セクションと、第１のクロック速度とは異なる第２のクロック速度で動作するデータ処理セクションとを含む。第２のクロック速度は第１のクロック速度の少なくとも２倍であることが望ましい。命令処理セクションはデータ処理セクション内で実行されることになる命令を発行し、発行された命令の実行に用いられることになるオペランド（ｏｐｅｒａｎｄ）を収集する。複数の組のそのようなオペランドが収集される。
【０００６】
[0006]データ処理セクションは少なくとも第１の実行パイプラインと第２の実行パイプラインとを含む。第１の実行パイプラインは第１タイプの命令（例えば、乗算と加算（ＭＡＤ））を実行するように構成され、第２の実行パイプラインは第２タイプの命令（例えば、逆数、指数関数、対数などの特殊関数命令（ＳＦＵ））を実行するように構成される。各実行パイプラインは、発行された命令に従って同じく構成された複数のデータ経路を有する。
【０００７】
[0007]命令処理セクション内で収集されたオペランドの各組はデータ経路のうち１つに供給される。ＭＡＤ命令に関連する１組のオペランドは、第１の実行パイプライン内の複数のデータ経路のうち１つに供給される。ＳＦＵ命令に関連する１組のオペランドは、第２の実行パイプライン内のデータ経路のうち１つに供給される。
【０００８】
[0008]発行された命令に関して収集されたオペランドの組数は、第１および第２の実行パイプライン内の実際のデータ経路の数を第１のクロック速度に対する第２のクロック速度の比率で乗算した数に等しいことが好ましい。例えば、第１のクロック速度に対する第２のクロック速度の比率が２の場合、発行された命令に関して収集されたオペランドの組数は、２×（第１および第２の実行パイプライン内のデータ経路の数）となるべきである。
【０００９】
[0009]本発明の実施形態によれば、データ処理セクションを十分に使用し続けるためにデータ処理速度のサイクルごとに新たな命令が発行される必要はない。これは、命令処理セクションが命令処理により適した減少されたクロック速度で動作することを可能にし、そのため、命令処理セクションに関するハードウェア必要条件を削減する。
【００１０】
[0010]本発明の前述の特徴が詳細に理解できるように、そのいくつかが添付の図面に例示される実施形態を参照することによって、上に短くまとめられた本発明のより具体的な説明が得られよう。しかし、添付の図面は本発明の典型的な実施形態のみを例示しており、したがって、本発明はその他の等しく効果的な実施形態を認める可能性があるため、その範囲を限定するものとみなされない点に留意されたい。
【詳細な説明】
【００１１】
[0017]図１は、複数のＳＩＭＤプロセッサ１２４−１、１２４−２、・・・、１２４−Ｎに結合されたインターフェースユニット１２２を有するグラフィックス処理装置（ＧＰＵ）１２０を実施するコンピュータシステム１００のブロック略図である。ＳＩＭＤプロセッサ１２４は、メモリ制御装置１２６を介してローカルグラフィックスメモリ１３０にアクセスする。ＧＰＵ１２０およびローカルグラフィックスメモリ１３０は、システムメモリ１１２内に記憶されたドライバを用いてコンピュータシステム１００の中央演算処理装置（ＣＰＵ）１１０によってアクセスされるグラフィックスサブシステムを表す。
【００１２】
[0018]本発明は１つまたは複数のＳＩＭＤプロセッサ１２４を有する任意の処理装置に適用可能である。したがって、Ｎは１以上の任意の整数であってよい。また、ＳＩＭＤプロセッサ１２４を含む処理装置はＣＰＵ、ＧＰＵまたは任意のその他の種類の処理装置であってよい。
【００１３】
[0019]図２は、本発明の一実施形態によるＳＩＭＤプロセッサをさらに詳しく例示する。示すように、図１に示されたＳＩＭＤプロセッサ１２４のいずれか１つであってよいＳＩＭＤプロセッサ２００は、命令処理セクション２１０とデータ処理セクション２２０とを含む。命令処理セクション２１０は、データ処理セクション２２０のクロック速度の半分のクロック速度で動作する。便宜上、命令処理セクション２１０に関するクロックは以下でＴクロックと呼ばれることになり、データ処理セクション２２０に関するクロックは以下でＨクロックと呼ばれることになる。
【００１４】
[0020]命令処理セクション２１０は、ＳＩＭＤプロセッサ２００によって実行されることになる命令を発行するための命令ディスパッチユニット２１２、命令の実行に用いられるオペランドを記憶するレジスタファイル２１４、および１対のオペランド収集ユニット２１６、２１８を含む。オペランド収集ユニット２１６は第１の実行パイプライン２２２に結合され、第１の実行パイプライン２２２に供給されることになるオペランドを収集する。オペランド収集ユニット２１８は第２の実行パイプライン２２４に結合され、第２の実行パイプライン２２４に供給されることになるオペランドを収集する。本明細書に例示されている本発明の実施形態では、第１の実行パイプラインは第１タイプの命令（例えば、乗算と加算（ＭＡＤ））を実行するように構成され、第２の実行パイプラインは第２タイプの命令（例えば、逆数、指数関数、対数などの特殊関数命令（ＳＦＵ））を実行するように構成される。ある特定の命令は実行パイプライン２２２、２２４のどちらかで実行されてよい。例えば、命令ＭＯＶおよびＦＭＵＬは実行パイプライン２２２、２２４のどちらかで実行されてよい。実行パイプライン２２２、２２４の各々は８つの並列かつ同じく構成されたデータ経路を有する。
【００１５】
[0021]命令ディスパッチユニット２１２が命令を発行すると、命令ディスパッチユニット２１２は２つの実行パイプライン２２２、２２４のうち１つにパイプライン構成信号を送る。その命令がＭＡＤタイプである場合、パイプライン構成信号は第１の実行パイプライン２２２に送られる。その命令がＳＦＵタイプである場合、パイプライン構成信号は第２の実行パイプライン２２４に送られる。
【００１６】
[0022]命令を発行すると、命令ディスパッチユニット２１２はまた、発行された命令に関連する（本明細書で例示された実施形態では、１グループ３２個の）スレッドの集団に対応するマスクも伝送する。発行された命令がＭＡＤタイプである場合、オペランド収集ユニット２１６は、そのスレッド集団に関連するレジスタファイル２１４内のレジスタを読み取り、その集団内の各スレッドに関して、発行された命令を実行するために必要とされる１組のオペランドを収集する。１組のオペランドは１つまたは複数のオペランドを含んでよい。典型的には、ＭＡＤタイプの命令に関連する１組のオペランドは２つまたは３つのオペランドを含み、ＳＦＵタイプの命令に関連する１組のオペランドは１つのオペランドを含む。
【００１７】
[0023]発行された命令がＳＦＵタイプである場合、オペランド収集ユニット２１８はそのスレッド集団に関連するレジスタファイル１２４内のレジスタを読み取り、その集団内の各スレッドに関して、発行された命令を実行するために必要とされる１組のオペランドを収集する。Ｔクロックの各サイクルの間、オペランド収集ユニット２１６、２１８の各々は１６組のオペランドを収集することが可能である。これらの組は、Ｈクロックサイクル当たり８組の割合で実行パイプライン２２２、２２４に供給される。したがって、スレッド集団に関連する３２組のオペランドは２Ｔクロックサイクルまたは４Ｈクロックサイクルで処理される。
【００１８】
[0024]実行パイプライン２２２、２２４の実行結果は１対の累算器２２６、２２８内に収集される。累算器２２６は実行パイプライン２２２からの実行結果を収集し、累算器２２８は実行パイプライン２２４からの実行結果を収集する。実行パイプライン２２２、２２４および累算器２２６、２２８は、データ処理セクション２２０の一部であり、命令処理セクション２１０のクロック速度の２倍のクロック速度で動作する。レジスタファイル２１４はＴクロック速度で動作するため、累算器２２６、２２８は２Ｈクロックサイクルごとに、または１Ｔクロックサイクルごとに実行結果をレジスタファイル２１４にライドバックする。したがって、累算器２２６、２２８の各々は、１６組の実行結果を収集した後で、レジスタファイル２１４にライトバックする。
【００１９】
[0025]動作の種類、すなわち主な算術演算（ｍａｔｈ  ｏｐｅｒａｔｉｏｎｓ）は実行パイプライン２２２、２２４内で行われることから、Ｈクロックは高速クロックになるよう構成される。しかし、算術演算の有効動作速度は、一般に命令処理およびレジスタファイル２１４に関する有効動作速度とは異なる。命令処理およびレジスタファイル２１４は、より遅いクロックでより効率的に動作する。したがって、ＳＩＭＤプロセッサ２００は２つのクロックドメインで構成され、命令処理はＴクロック速度で実行され、データ処理はＴクロック速度の２倍に等しいＨクロック速度で実行される。
【００２０】
[0026]図３は、命令処理セクション２１０の命令ディスパッチユニット２１２の機能ブロック図である。命令ディスパッチユニット２１２は、複数のスロット（スレッド集団当たり１個のスロット）を有する命令バッファ３１０を含む。この実施形態でのスロット数は２４個であり、各スロットは対応するスレッド集団から最高で２つまでの命令を保持することが可能である。スロットのうちいずれか１つが別の命令のための空き領域を有する場合、メモリから命令キャッシュ３１４にフェッチ３１２が行われる。命令がデコード３１６を受けた後で、命令キャッシュ３１４内に記憶された命令は経過中（ｉｎ  ｆｌｉｇｈｔ）の命令（例えば、発行されているが、達成されていない命令）を追跡するスコアボード３２２に加えられ、命令バッファ３１０の空き領域内に納められる。命令を復号すると、その命令はＭＡＤタイプであるかまたはＳＦＵタイプであるかが決定され得る。
【００２１】
[0027]命令ディスパッチユニット２１２は発行論理（ｉｓｓｕｅ  ｌｏｇｉｃ）３２０をさらに含む。発行論理３２０はスコアボード３２２を検査し、経過中の任意の命令に依存しない命令を命令バッファ３１０から発行する。命令バッファ３１０からの発行と共に、発行論理３２０はパイプライン構成信号を適切な実行パイプラインに送り、発行された命令に関連するスレッド集団に対応するマスクを伝送する。マスクは、集団の中のスレッドのうち活性状態にあるスレッド、すなわち、発行された命令に影響されるスレッドを示す。
【００２２】
[0028]図４は、命令バッファ３１０をさらに詳しく例示する。示するように、命令バッファ３１０は２４個のスロットを有する。命令バッファ内の各スロットは（１グループ３２個の）スレッドの集団から最高で２つまでの命令を保持することが可能である。示された例では、１０２および１１０のプログラムカウンタを有するスレッド集団（Ｔ０からＴ３１）からの２つの命令は、命令バッファ３１０のスロット０内に記憶される。これら命令はＭＡＤタイプまたはＳＦＵタイプのどちらかになる。命令がＭＡＤタイプであり、かつ命令バッファ３１０から発行される場合、スレッド集団（Ｔ０からＴ３１）に関連する３２組のオペランドはオペランド収集ユニット２１６内に収集され、実行パイプライン２２２に供給されることになる。他方で、命令がＳＦＵタイプであり、かつ命令バッファ３１０から発行される場合、スレッド集団（Ｔ０からＴ３１）に関連する３２組のオペランドはオペランド収集ユニット２１８内に収集され、実行パイプライン２２４に供給されることになる。
【００２３】
[0029]図５の（Ａ）〜（Ｄ）は、命令バッファ３１０から発行されたＭＡＤ命令（例えば、命令Ａ）を実行するように構成された実行パイプライン２２２を介した、スレッド集団（Ｔ０からＴ３１）の選択された処理状態を例示する。図５の（Ａ）は、１Ｈクロックサイクルが経過した後の実行パイプライン２２２の状態を示す。示すように、１Ｈクロックサイクル後、それぞれスレッドＴ０，Ｔ１，Ｔ２，Ｔ３，Ｔ４，Ｔ５，Ｔ６，Ｔ７に関連する０，１，２，３，４，５，６，７として識別される８組のオペランドは実行パイプライン２２２に入り、命令Ａの第１のパイプ段階で動作される。まさに次のＨクロックサイクルで、新たな８組のオペランドグループは実行パイプライン２２２に入ることになり、命令Ａの第１のパイプ段階で動作されることになり、かつ最初の８組のオペランドグループは１つ下のパイプ段階を進んだことになり、命令Ａの第２のパイプ段階でさらに動作されることになる。４Ｈクロックサイクル後、スレッド集団に関連するすべての組のオペランドは実行パイプライン２２２に入ったことになる。したがって、命令Ａの各パイプ段階は４Ｈクロックサイクルの間、活動状態にあることになる。第５のＨクロックサイクルで、実行パイプライン２２２は新たに発行されたＭＡＤタイプの命令に従って構成されることになる。
【００２４】
[0030]図５の（Ｂ）は、スレッド集団に関連するすべての組のオペランドが実行パイプライン２２２に入り、命令Ａの少数のパイプ段階で動作された後の、実行パイプライン２２２の状態を示す。図５の（Ｃ）は、任意の組のオペランドが実行パイプライン２２２を出る間際の実行パイプライン２２２の状態を示す。図５の（Ｄ）は、図５の（Ｃ）に示された状態から３Ｈクロックサイクル後の実行パイプライン２２２の状態を示す。もう１Ｈクロックサイクルが経過すると、スレッド集団に関連するすべての組のオペランドが実行パイプライン２２２を出たことになる。
【００２５】
[0031]好ましい実施形態では、命令バッファ３１０から命令を発行する場合、発行論理３２０はＭＡＤタイプの命令とＳＦＵタイプの命令との間でこれを交互に行う。このように、実行パイプライン２２２、２２４の両方は完全に使用され続けることが可能である。命令バッファ３１０が単一タイプの命令のみを含む場合、ＭＡＤタイプ命令またはＳＦＵタイプ命令の連続的な発行が認められてよい。しかし、３２個のスレッドの集団は実行するために２Ｔクロックまたは４Ｈクロックを必要とし、したがって、同じタイプの命令の連続的な発行（例えば、ＭＡＤ−ＭＡＤまたはＳＦＵ−ＳＦＵ）は多くてもＴクロックおきに起こってよい。２つのパイプラインに交互に異なるタイプの命令を発行することは、他方で、命令がＴクロックごとに発行されることを可能にし、より高いパフォーマンスを提供する。コンパイラは、異なるタイプの命令が命令バッファ３１０内に記憶されることを確実にするための命令のスケジューリングに役立つ可能性がある。異なる集団をプログラム内でわずかに離すことを可能にすることもパフォーマンスを改善する可能性がある。
【００２６】
[0032]図６は、本発明の一実施形態による、スレッド集団に関する１つの命令を実行する際にＳＩＭＤプロセッサ２００によって実行されるプロセスステップを例示する流れ図である。ステップ６１０で、１つの命令が命令バッファ３１０から発行される。次いで、複数組のオペランドがレジスタファイル２１４から読み取られ、発行された命令のタイプに対応するオペランド収集ユニット２１６または２１８内に収集される（ステップ６１２）。ステップ６１４で、発行された命令のタイプに対応する実行パイプライン２２２または２２４は、発行された命令を実行するように構成される。ステップ６１６で、収集されたオペランドは実行パイプラインを下に進み、発行された命令の複数のパイプ段階で動作される。ステップ６１４および６１６はステップ６１２内で収集されたオペランドのすべてが実行パイプラインを出るまで継続的に実行される。ステップ６１４と６１６とが実行される間、累算器２２６、２２８は実行パイプライン２２２、２２４を出るオペランドを収集し、Ｈクロックおきに（すなわち、一度に半集団）レジスタファイル２１４にライトバックする。ステップ６１２で収集されたオペランドのすべてが実行パイプラインを出ると（ステップ６２０）、ステップ６１０で発行された命令に関するＳＩＭＤ処理は終了する。図５の（Ａ）〜（Ｄ）に示された例では、レジスタファイル２１４への最初のライトバックは、図５の（Ｃ）に示された実行パイプラインの状態から２Ｈクロック後に起こり、レジスタファイル２１４への最終のライトバックは、図５の（Ｃ）に示された実行パイプラインの状態から４Ｈクロック後に起こる。
【００２７】
[0033]前述の本発明の実施形態では、ＳＩＭＤプロセッサを介して処理されるデータの量は実行パイプラインの実際のデータ幅を増やすことなく増加される。そのため、ＳＩＭＤプロセッサの有効命令処理速度は高められる。
【００２８】
[0034]さらに、本発明はグループスレッドに柔軟な方法を提供する。前述の本発明の実施形態では、集団は次の方程式に従って、３２個のスレッドのグループとして構成される：集団＿サイズ＝（実行パイプラインの数）×（各実行パイプライン内のデータ経路の数）×（Ｔクロック速度に対するＨクロック速度の比率）＝２×８×２＝３２。本発明により提供される柔軟性は、集団サイズは調整されることが可能であるという点である。例えば、実行パイプラインの間で交互に行う場合、集団サイズは第４のＴクロックごとに、またはＴクロックおきに各実行パイプラインに命令を発行することによって６４個に増加されることが可能である。
【００２９】
[0035]より大きな集団サイズを有することの利点は、グラフィック処理では、実行される多くの命令はメモリアクセスのようなテクスチャであるという点である。複数の小さなメモリアクセスグループの代わりに、１つの大きな関連メモリアクセスグループが存在する場合、これらの命令はメモリシステムによってはるかに効果的に実行される。スレッドをクラスタすること（ｃｌｕｓｔｅｒｉｎｇ）または集団にまとめること（ｃｏｎｖｏｙｉｎｇ）によって、本発明はより大きなメモリ効率を提供する。大きすぎる集団を用いることの不利な点は、分岐などが、集団内のいくつかのスレッドに同じ集団の他のスレッドとは異なる命令を実行させる原因になることである。そのような場合、同じ集団内のすべてのスレッドは一度に１つの命令しか実行できないため、パフォーマンスは低下することになる。
【００３０】
[0036]前述は本発明の実施形態に関するが、本発明の基本的範囲を逸脱することなく、本発明のその他の実施形態およびさらなる実施形態が考案されることが可能である。本発明の範囲は添付の特許請求の範囲によって決定される。
【図面の簡単な説明】
【００３１】
【図１】複数のＳＩＭＤプロセッサを有するＧＰＵを実施するコンピュータシステムのブロック略図である。
【図２】本発明の一実施形態によるＳＩＭＤプロセッサのブロック図である。
【図３】図２に示されたＳＩＭＤプロセッサの命令ディスパッチユニットのブロック図である。
【図４】命令バッファのコンテンツを示す概念図である。
【図５】（Ａ）〜（Ｄ）はＳＩＭＤ実行パイプラインを介したスレッドグループの処理を示す図である。
【図６】スレッドグループに関する命令を実行する場合、ＳＩＭＤプロセッサによって実行されるプロセスステップを例示する流れ図である。
【符号の説明】
【００３２】
１００  コンピュータシステム
１１０  中央演算処理装置（ＣＰＵ）
１１２  システムメモリ
１２０  グラフィックス処理装置（ＧＰＵ）
１２２  インターフェースユニット
１２４  ＳＩＭＤプロセッサ
１２６  メモリ制御装置
１３０  ローカルグラフィックスメモリ
２００  ＳＩＭＤプロセッサ
２１０  命令処理セクション
２１２  命令ディスパッチユニット
２１４  レジスタファイル
２１６、２１８  オペランド収集ユニット
２２０  データ処理セクション
２２２  第１の実行パイプライン
２２４  第２の実行パイプライン
２２６、２２８  累算器
３１０  命令バッファ
３１２  フェッチ
３１４  命令キャッシュ
３１６  デコード
３２０  発行論理
３２２  スコアボード
【図１】
2007157154.tif 000003
【図２】
2007157154.tif 000004
【図３】
2007157154.tif 000005
【図４】
2007157154.tif 000006
【図５】
2007157154.tif 000007
【図６】
2007157154.tif 000008
【外国語明細書】
2007157154000001.pdf