(57)【要約】      （修正有）【課題】アライメント距離の整数倍でないアドレス距離によりメモリに格納されているオペランドを利用して、ＳＩＭＤ処理を実行するため必要とされる命令数の低減をサポートする命令セットを有するプログラマブルプロセッサを提供する。【解決手段】データ処理回路は、ＳＩＭＤ命令を有する命令セットを有する命令実行回路を有し、ＳＩＭＤ命令に応答して、Ｎ個の各自の同一の処理を実行するよう構成される複数の算術回路を有する。ＳＩＭＤ命令は、第１レジスタと第２レジスタとの選択を規定し、アドレス指定されたレジスタからのＳＩＭＤ命令のＮ個の各自のＳＩＭＤ命令オペランドの第１及び第２系列を規定する。各算術回路は、ＳＩＭＤ命令の実行時、第１及び第２系列からそれぞれ各自の第１オペランドと各自の第２オペランドとを受け付ける。命令実行回路は、部分的に重複するように、第１及び第２系列を選択するよう構成される。【選択図】図１
2015133132.tif 000002
【特許請求の範囲】
【請求項１】
命令選択可能なレジスタを有するレジスタのセットであって、各レジスタは各ＳＩＭＤ命令オペランド及び／又は結果を格納するのに適した複数のＮ個のパーツを有する、レジスタのセットと、
ＳＩＭＤ命令を有する命令セットを有する命令実行回路であって、前記命令実行回路は前記ＳＩＭＤ命令に応答してＮ個の各自の同一の処理をパラレルに実行するよう構成される複数の算術回路を有し、前記ＳＩＭＤ命令は、前記ＳＩＭＤ命令によって選択される前記レジスタのセットからの第１レジスタ及び第２レジスタからの前記ＳＩＭＤ命令のＮ個の各自のＳＩＭＤ命令オペランドの第１及び第２系列を規定し、各算術回路は、前記ＳＩＭ命令を実行するとき、前記第１及び第２系列からそれぞれ各自の第１オペランド及び各自の第２オペランドを受信するよう構成される、命令実行回路と、
を有するデータ処理回路であって、
前記命令実行回路は、前記第１及び第２系列が部分的に重複するように前記第１及び第２系列を選択するよう構成され、
前記複数の算術回路の少なくとも第１及び第２算術回路は、前記第１及び／又は第２系列からのオペランドを通常利用し、
前記第２系列は、前記複数の算術回路のオペランドレジスタ内に前記第１系列に関する所定の相対ポジションを有し、
前記複数の算術回路のオペランドレジスタからの少なくとも２つの異なるオペランドは前記第１及び第２オペランド系列において重複するデータ処理回路。
【請求項２】
前記命令実行回路は、前記レジスタのセットからの第１レジスタ及び第２レジスタの双方の各パーツから少なくとも第２オペランド系列を抽出するよう構成される、請求項１記載のデータ処理回路。
【請求項３】
前記命令実行回路は、プログラム制御の下で前記レジスタのセットからの第１レジスタ及び第２レジスタ内の前記第１系列のポジションを少なくとも選択するよう構成される、請求項１記載のデータ処理回路。
【請求項４】
前記命令実行回路及び前記レジスタのセットに接続され、前記ＳＩＭＤ命令を選択し、前記レジスタのセットから前記第１レジスタ及び第２レジスタをそれぞれ選択するため命令データを供給する命令発行回路と、
前記レジスタのセットと前記算術回路との間に接続され、前記命令データ及び／又はオペランドデータによって制御され、少なくとも１つのポジションを含む前記第１系列の選択可能なポジションを選択するオペランド配信回路と、
を有し、
前記第１系列は、前記レジスタのセットからの第１レジスタ及び第２レジスタの双方のパーツに拡張する、請求項３記載のデータ処理回路。
【請求項５】
前記ＳＩＭＤ命令は、更なるレジスタを選択し、
前記命令実行回路は、前記選択された更なるレジスタからの情報の制御の下で前記第１系列のポジションを制御するよう構成される、請求項３記載のデータ処理回路。
【請求項６】
前記命令実行回路は、前記第１系列に関する所定の相対ポジションから前記第２系列を選択するよう構成される、請求項３記載のデータ処理回路。
【請求項７】
前記ＳＩＭＤ命令は、各自のＳＩＭＤ命令オペランドを格納するための複数のパーツを有する更なるレジスタを選択し、
前記命令実行回路は、前記更なるレジスタ内の所定のポジションからのパーツと、更なるオペランドを供給するための前記算術回路の各自の所定の算術回路とを接続する、請求項１記載のデータ処理回路。
【請求項８】
前記命令実行回路は、前記所定のポジションがプログラム制御の下で選択された前記第１系列のポジションによって影響を受けないように、プログラム制御の下で前記レジスタのセットからの前記第１レジスタ及び第２レジスタ内の前記第１系列のポジションを少なくとも選択するよう構成される、請求項７記載のデータ処理回路。
【請求項９】
前記算術回路のそれぞれは、前記更なるレジスタからのオペランドと、前記算術回路の全てに共通の係数と前記第１及び第２系列からのオペランドとの各自の積との和を計算するよう構成される、請求項７記載のデータ処理回路。
【請求項１０】
前記ＳＩＭＤ命令は、追加的なレジスタを選択し、
前記係数は、前記追加的なレジスタから前記算術回路に供給される、請求項９記載のデータ処理回路。
【請求項１１】
前記命令実行回路は、前記ＳＩＭＤ命令により選択される前記追加的なレジスタからのデータの制御の下で、前記レジスタのセットからの前記第１レジスタ及び第２レジスタ内の前記第１系列のポジションを少なくとも選択するよう構成される、請求項１０記載のデータ処理回路。
【請求項１２】
ピクセルのグループに対してピクセル補間をパラレルに実行するためのＳＩＭＤ命令を含むプログラムによりプログラムされる、請求項９記載のデータ処理回路。
【請求項１３】
前記命令セットは、更なるＳＩＭＤ命令を有し、
前記命令実行回路は、前記更なるＳＩＭＤ命令に応答して、前記算術回路にＮ個の同一の更なる処理をパラレルに実行させるよう構成され、
各算術回路は、前記更なるＳＩＭＤ命令によって選択された前記レジスタのセットからの第１レジスタからの各自の第１オペランドと、前記更なるＳＩＭＤ命令によって選択された前記レジスタのセットからの第２レジスタからの各自の第２オペランドとを利用する、請求項１記載のデータ処理回路。
【請求項１４】
ＳＩＭＤ命令を有する命令セットを有するプログラマブル命令処理回路上でコンピュータプログラムを実行する方法であって、前記コンピュータプログラムは前記ＳＩＭＤ命令の少なくとも１つのインスタンスを有し、
当該方法は、
前記ＳＩＭＤ命令に応答して、前記ＳＩＭＤ命令により選択される第１及び第２レジスタのコンテンツを抽出するステップであって、各レジスタは複数のＮ個の各自のＳＩＭＤオペランドを格納し、前記ＳＩＭＤ命令は前記第１及び第２レジスタからのオペランドのＮ個の各自のオペランドの第１系列及び第２系列を規定し、前記第１及び第２系列は重複を有する、抽出するステップと、
前記ＳＩＭＤ命令に応答して、Ｎ個の各自の同一の処理をパラレルに実行するステップであって、各処理は前記第１及び第２系列のそれぞれからの各自の第１オペランド及び各自の第２オペランドを利用する、実行するステップと、
を有し、
前記Ｎ個の各自の同一の処理の少なくとも第１及び第２処理は、前記第１系列及び／又は前記第２系列からの共通のオペランドを利用し、
前記第２系列は、前記複数の算術回路のオペランドレジスタ内の前記第１系列に関する所定の相対ポジションを有し、
前記複数の算術ユニットのオペランドレジスタからの少なくとも２つの異なるオペランドは、前記第１及び第２オペランド系列において重複する方法。
【請求項１５】
イメージデータ値の２次元アレイを受信するステップと、
前記ＳＩＭＤ命令を利用して補間されたイメージデータを計算するステップと、
を更に有する、請求項１４記載の方法。
【請求項１６】
実行時に請求項１４記載の方法をプログラマブル命令処理回路に実行させるコンピュータ実行可能な命令を有する物理的なコンピュータ可読媒体であって、
前記コンピュータ実行可能な命令は前記ＳＩＭＤ命令を含むコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）を含む命令セットを有するプログラマブルデータ処理回路に関する。本発明はまた、画像データの補間を実行する方法に関する。
【背景技術】
【０００２】
Ｉｎｔｅｌ  Ｐｅｎｔｉｕｍ（登録商標）ＩＩＩプロセッサの命令セットのＳＩＭＤ命令の使用が、Ｉｎｔｅｌ  Ｔｅｃｈｎｏｌｏｇｙ  Ｊｏｕｒｎａｌ  Ｑ２，１９９９に刊行され、“ｗｗｗ．ｉｎｔｅｌ．ｃｏｍ／ｔｅｃｈｎｏｌｏｇｙ／ｉｔｊ／ｑ２１９９９／ａｒｔｉｃｌｅｓ／ａｒｔ＿５．ｈｔｍ”を介しインターネット上で公衆に利用可能なＪａｍｅｓ  Ａｂｅｌ、Ｋｕｍａｒ  Ｂａｌａｓｕｂｒａｍａｎｉａｎ、Ｍｉｋｅ  Ｂａｒｇｅｒｏｎ、Ｔｏｍ  Ｃｒａｖｅｒ及びＭｉｋｅ  Ｐｈｉｌｐｏｔによる“Ａｐｐｌｉｃａｔｉｏｎｓ  Ｔｕｎｉｎｇ  ｆｏｒ  Ｓｔｒｅａｍｉｎｇ  ＳＩＭＤ  Ｅｘｔｅｎｓｉｏｎｓ”という論文に記載されている。当該論文は、Ａｂｅｌ等として参照される。ＳＩＭＤ命令に応答して、プロセッサは、複数の数列として（例えば、３２ビットレジスタの４つの８ビット数など）オペランド及び結果レジスタのコンテンツを処理する。プロセッサは、ＳＩＭＤ命令により規定された処理をパラレルに数回実行し、各回毎にオペランドとして各入力レジスタからの異なる数のペアを利用する。プロセッサは、これらパラレルに実行される処理から得られる各数を含む合成された結果を命令により規定された結果レジスタに書き込む。
【０００３】
プロセッサの命令セットにおけるこのタイプのＳＩＭＤ命令の利用性は、タスクを実行するため実行される必要がある命令の合計数を低減する。ここでは、同一の関数が、コンピュータグラフィックス処理、画像圧縮又は解凍などの画像処理タスクなど、大量のデータに適用される必要がある。合計の命令数の低減は、このようなタスクが実行可能なスピードを増大させ、このようなタスクの実行に伴う電力消費を低減する。
【０００４】
あるタスクがＳＩＭＤ命令を用いて実行されるとき、アライメント（ａｌｉｇｎｍｅｎｔ）が問題を生じさせるかもしれない。アライメント問題は、オペランドデータがメモリからオペランドデータをＳＩＭＤ命令に供給するのに利用されるレジスタにロード可能な方法の結果である。典型的には、オペランドデータは、ベーシックアドレス距離のある整数倍であるアドレスからスタートすることによってのみロード可能である。大部分のケースでは、すべてのデータが連続的なロード命令を利用することによってロード可能となるように、処理される必要があるデータ（連続するピクセルのデータなど）はアラインされたアドレス（ａｌｉｇｎｅｄ  ａｄｄｒｅｓｓ）からスタートして連続的に格納されるため、これは問題とならない。Ａｂｅｌ等は、キャッシュライン分割に関するアライメント問題について述べている。特殊なケースについて、Ａｂｅｌ等は、アラインされていないアドレス（ｕｎａｌｉｇｎｅｄ  ａｄｄｒｅｓｓ）からのロードをサポートするため、“ｍｏｖｅｕｐｓ”命令の利用を記載している。さらに、Ａｂｅｌ等は、レジスタからの数を再構成するのに利用可能な“ｓｈｕｆｆｌｉｎｇ”命令を記載している。このタイプの命令を利用する必要性は、実行される必要がある命令数を増大させる。
【０００５】
アライメント問題の一例は、隣接ピクセルの情報の組み合わせに関する画像データの補間中に発生する。Ａｂｅｌ等は、ＳＩＭＤ命令のパラレル化が同一のピクセルの異なるカラーコンポーネントを補間するのに利用される補間アプローチについて記載している。このケースでは、連続するピクセルのカラーコンポーネントセットが連続的に格納されるメモリが利用される。
【０００６】
あるいは、隣接ピクセルの１つのカラーコンポーネントのピクセルデータが、連続する隣接したメモリ位置に格納されてもよい。好ましくは、ＳＩＭＤ命令を用いて、複数のピクセル位置の補間データをパラレルに生成することが可能であるべきである。この場合、従来はＳＩＭＤ命令の第１オペランドが複数の第１隣接ピクセルのピクセルデータを含むべきであり、第２オペランドが複数の第２ピクセルのピクセルデータを含むべきであり、そのピクセル位置は、固定されたオフセット（典型的には、１ピクセルポジション）だけ複数の第１ピクセルの位置にオフセットされる。しかしながら、この場合、オペランドの少なくとも１つは、アラインされていない位置からロードされる必要があり、このことは必要とされる命令数を増大させる。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の課題は、特にアライメント距離の整数倍でないアドレス距離によりメモリに格納されているオペランドを利用して、ＳＩＭＤ処理を実行するため必要とされる命令数の低減をサポートする命令セットを有するプログラマブルプロセッサを提供することである。
【０００８】
本発明の課題は、特に選択可能なアラインされていないアドレス距離によりメモリに格納されているオペランドを利用してＳＩＭＤ処理を実行するため必要とされる命令数の低減をサポートする命令セットを有するプログラマブルプロセッサを提供する。
【課題を解決するための手段】
【０００９】
本発明は、請求項１記載のデータ処理回路を提供する。本発明によると、データ処理回路は、新たなタイプのＳＩＭＤ命令を有する命令セットを有する。このＳＩＭＤ命令に応答して、Ｎ個の算術回路（Ｎ＝４又は８など）が、Ｎ個の同一の処理をパラレルに実行する。ＳＩＭＤ命令は、当該ＳＩＭＤ命令によって選択される第１及び第２レジスタからのＳＩＭＤ命令のＮ個の各ＳＩＭＤ命令オペランドの第１及び第２系列を規定する。各算術回路は、ＳＩＭＤ命令を実行する際、それぞれ第１及び第２系列から各自の第１オペランドと各自の第２オペランドを受け付けるよう構成される。命令実行ユニットは、第１及び第２系列が部分的に重複部分を有することを可能にするよう構成される。すなわち、第１及び第２レジスタからのオペランドのすべてではないが、少なくとも１つが、２つの算術ユニットにより利用される。典型的には、第１及び第２系列の少なくとも１つは、第１レジスタから取得される部分と、第２レジスタから取得される部分とを有するＮ個のオペランドを含む。
【００１０】
一実施例では、ＳＩＭＤ命令が信号サンプルの補間又はフィルタリングに適用される。連続する出力サンプルポジションに対して補間された値は、入力サンプルポジションの各自のオペランドペアから計算されるＮ個のＳＩＭＤ結果である。本実施例では、連続する各ペアに対して１つのオペランドが、先行するペアの他のオペランドと重複する。
【００１１】
好ましくは、第１及び第２レジスタ内の第１系列のポジションは、プログラムにより選択可能である。従って、補間又はフィルタリングアプリケーションでは、最初のＳＩＭＤ結果が計算される最初の入力サンプルポジションは、オペランドレジスタのコンテンツがアラインされたロード処理によりロードされたとしても、各サンプルポジションにプログラムにより調整することが可能である。これは、フィルタリング又は補間が、任意のポジションのウィンドウなど、任意の位置からスタートして格納されるアレイについて実行される必要がある場合に有用である。第２系列は、好ましくは、オペランドレジスタ内の１つのオペランドポジションによるオフセットなど、第１系列に関して所定の相対ポジションを有する。
【００１２】
一実施例では、ポジションの選択は、ＳＩＭＤ命令のオペレーションコードによって制御される。他の実施例では、ポジションは、ＳＩＭＤ命令によって選択されるさらなるレジスタからのオペランドデータにより制御される。このように、異なる命令タイプの最小限しか必要でない。好ましくは、さらなるレジスタがまた、すべての算術回路に共通に供給されるフィルタリング又は補間に対する係数を供給する。
【００１３】
さらなる実施例では、データ処理回路は、レジスタセット（典型的には、レジスタファイル）と算術回路との間に接続されるオペランド分配回路を有する。本実施例では、オペランド分配回路は、少なくとも第１オペランド系列のポジションを選択するため、命令データ及び／又はオペランドデータにより制御される。
【００１４】
さらなる実施例では、ＳＩＭＤ命令は、第１及び第２オペランドに対して選択されたポジションと関係なく、さらなるオペランドレジスタの所定のポジションから提供されるさらなるオペランドを有する。フィルタリング又は補間アプリケーションでは、例えば、ＳＩＭＤ命令は、好ましくは、Ｎ個の積の和を計算する。この場合、Ｎ個の和がさらなるオペランドレジスタから提供されてもよい。あるいは、このような和は、算術回路により包含されるアキュミュレータレジスタから提供可能であるが、これは、ＳＩＭＤ命令が利用可能なフレキシビリティを制限する。
【００１５】
このタイプのＳＩＭＤ命令によると、例えば、いくつかのポジションに対するオペランド値ａ［］のアレイから、
【００１６】
【数１】
2015133132.tif 000003
などの結果ｒ［ｉ］のアレイをパラレル計算することが可能となる。他のオペランド又はオフセットが利用されるこのタイプの命令の他の実行に対する入力値ｓとして結果ｒを利用することによって、より大きなサポート領域（結果に影響を与える位置の領域）を有する補間又はフィルタリング処理が、最小数の命令により処理回路に対してプログラムにより実現可能である。
【００１７】
さらに、命令セットはまた、好ましくは、従来のＳＩＭＤ命令を有するようにしてもよく、これに応答して、算術回路はＮ個の同一の処理をパラレルに実行する。各算術回路は、さらなるＳＩＭＤ命令によって選択されるレジスタの第１のレジスタからの各自の第１オペランドと、さらなるＳＩＭＤ命令によって選択されるレジスタの第２レジスタからの各自の第２オペランドとを利用する。
【発明の効果】
【００１８】
本発明によると、アライメント距離の整数倍でないアドレス距離によりメモリに格納されているオペランドを利用して、ＳＩＭＤ処理を実行するため必要とされる命令数の低減をサポートする命令セットを有するプログラマブルプロセッサを提供することができる。
【００１９】
本発明によると、特に選択可能なアラインされていないアドレス距離によりメモリに格納されているオペランドを利用してＳＩＭＤ処理を実行するため必要とされる命令数の低減をサポートする命令セットを有するプログラマブルプロセッサを提供することができる。
【００２０】
本発明の上記及び他の課題及び効果的特徴が、以下の図面に示される非限定的な具体例を用いてより詳細に説明される。
【図面の簡単な説明】
【００２１】
【図１】図１は、データ処理回路を示す。
【図２】図２は、機能ユニットの一部を示す。
【図３】図３は、従来のＳＩＭＤ命令のデータフローを示す。
【図４ａ】図４ａは、新規なＳＩＭＤ命令のデータフローを示す。
【図４ｂ】図４ｂは、新規なＳＩＭＤ命令のデータフローを示す。
【図４ｃ】図４ｃは、新規なＳＩＭＤ命令のデータフローを示す。
【図５】図５は、簡単化されたデータフローによる機能ユニットを示す。
【図６】図６は、さらなるオペランド入力による機能ユニットを示す。
【図７】図７は、共通のオペランドのオペランド入力による機能ユニットを示す。
【図８】図８は、加数入力により機能ユニットを示す。
【図９】図９は、算術回路を示す。
【発明を実施するための形態】
【００２２】
図１は、本発明が実現可能なデータ処理回路の一例を示す。データ処理回路は、命令発行回路１０と、複数の機能ユニット１２ａ及び１２ｂと、レジスタファイル１４と、データメモリ１６とを有する。命令発行回路１０は、レジスタファイル１４のアドレスポートと機能ユニット１２ａ及び１２ｂとに接続される発行スロット出力１１ａ及び１１ｂを有する。機能ユニット１２ａ及び１２ｂは、レジスタファイルに接続されるオペランド／結果通信ライン１３ａ及び１３ｂを有する。第１機能ユニット１２ａは、データメモリ１６に接続されるアドレス／データインタフェース１５を有する。
【００２３】
動作について、命令発行回路１０は、発行スロット１１ａ及び１１ｂを介し命令を発行する。各命令は、機能ユニット１２ａ及び１２ｂに供給されるオペレーションコードと、レジスタファイル１４に供給される少なくとも１つのオペランドレジスタアドレスと、レジスタファイル１４に供給される少なくとも１つの結果レジスタアドレスとを有する。オペランドレジスタアドレスに応答して、レジスタファイル１４は、アドレス指定されたレジスタからオペランドデータを読み込み、当該オペランドデータを命令を実行する機能ユニット１２ａ及び１２ｂに供給する。オペレーションコードに応答して、機能ユニット１２ａ及び１２ｂは、オペランドデータを入力として利用して選択された処理を実行する。機能ユニット１２ａ及び１２ｂは、結果レジスタアドレスによってアドレス指定されたレジスタに結果データを格納するレジスタファイル１４に、処理の結果を結果データとして書き込む。
【００２４】
図のデータ処理回路の構成は単なる一例であり、他の多数の構成が利用可能であるということが強調されるべきである。あるアーキテクチャの処理回路が本発明を説明するのに利用されたが、処理回路は本発明を実現するのに利用可能な処理回路の単なる一例であり、何れかのケースでは、最小限の詳細のみが示されることが理解されるべきである。例えば、２つの発行スロット１１ａ及び１１ｂと２つの機能ユニット１２ａ及び１２ｂとを有する処理回路が示されているが、より多く又はより少ない発行スロット及び／又は機能ユニットが利用可能であるということが理解されるべきである。他の例として、簡単化のためパイプライン処理については記載しないが、各命令の各処理部分が重複し、命令の各部分が異なる時点に発行されるように、典型的には、パイプライン処理が利用されるということが理解されるべきである。さらに、独立した機能ユニットが独立した発行スロットに接続されるよう示されているが、これらの機能ユニットの１以上が適切な命令を受け付けると、アクティブ状態となるように、これらの機能ユニットの機能は単一の機能ユニットに合成され、又は各機能ユニットは同一の発行ユニットに接続可能であることが理解されるべきである。さらに、簡単化のため、１つのレジスタファイル１４しか示されていないが、実際には、レジスタファイルは、おそらく互いの異なるビット幅のレジスタを有する複数のレジスタファイルなどを有する何れかのレジスタセットを表すかもしれないということが理解されるべきである。発行スロットの各フィールドは、これらのレジスタファイルの異なるレジスタファイルをアドレス指定するかもしれない。さらに、各部分の間の接続を示すのに１つのラインが示されているが、各ラインは、一般には複数のビットをパラレルに供給する複数のコンダクタを表していることが理解されるべきである。
【００２５】
第１機能ユニット１２ａは、データメモリ１６へのアクセス処理を実行することによって、オペレーションコードに応答するメモリアクセスユニットである。例えば、リードオペレーションコードに応答して、機能ユニット１２ａは、アドレスとリードコントロール信号をメモリに供給し、当該アドレスからメモリが読み込んだデータを受け取り、当該データをレジスタファイル１４に書き込むかもしれない。ライトオペレーションコードに応答する他の例として、機能ユニット１２ａは、アドレスを供給し、データとライトコントロール信号をメモリに書き込み、ライトデータはレジスタファイル１４から受け付けされるオペランドデータであってもよい。この結果、データメモリ１６は、当該アドレスによってアドレス指定された位置にライトデータを格納する。典型的には、メモリアクセスユニットは、連続するアラインしたアドレスの間の距離が、１つのレジスタに一緒にロード可能なメモリ位置の個数に対応するように、アラインしたアドレスと呼ばれる選択されたアドレスから始まるレジスタにデータをロード可能な高速ロード及び／又はストア命令をサポートする。
【００２６】
第２機能ユニット１２ｂは、各種ＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）命令を実行可能な算術プロセッサを有する。
【００２７】
図２は、このような算術プロセッサの実施例を示す。この実施例では、機能ユニット１２ｂは、２つのオペランド入力２０ａ及び２０ｂの入力接続２２ａ及び２２ｂと、オペランド分配回路２４と、複数の算術回路２６ａ〜２６ｄと、出力接続２８と、結果出力２９とを有する。典型的には、入力２０ａ及び２０ｂはそれぞれ、レジスタファイル１４（図示せず）に機能的にパラレルに接続される複数のコンダクタを有する。３２又は６４個のコンダクタが、各入力２０ａ及び２０ｂなどに対してパラレルに利用されるかもしれない。入力接続２２ａ及び２２ｂは、実際の回路に対応している必要はなく、入力２０ａ及び２０ｂが複数のオペランドに分割されるものとして処理可能であることを示すため単に示されている。３２ビット入力２０ａ及び２０ｂは、例えば、各８ビットの４つのオペランドに分割されてもよく、又は６４ビット入力２０ａ及び２０ｂは、例えば、各８ビットの８つのオペランド又は各１６ビットの４つのオペランドに分割されてもよい。典型的には、各入力２０ａ及び２０ｂは、オペランド分配回路２４の入力に提供される各オペランドのグループに分割可能な複数のコンダクタをパラレルに表す。
【００２８】
オペランド分配回路２４は、算術回路２６ａ〜２６ｄの各入力に接続される出力を有する。算術回路２６ａ〜２６ｄは、出力接続２８に接続される出力を有し、さらに、出力接続２８は、結果出力２９に接続される出力を有する。出力接続２８はまた、出力２９が複数の結果に分割されるものとして処理可能であることを示すため単に示される。典型的には、各算術回路２６ａ〜２６ｄの出力は、出力２９に合成可能な複数のコンダクタをパラレルに表す。３２又は６４個のコンダクタは、出力２９などについてパラレルに利用可能である。３２ビット出力２９は、例えば、各算術回路２６ａ〜２６ｄからの各８ビットの４つの結果に分割されてもよく、又は６４ビット出力２９は、例えば、各算術回路２６ａ〜２６ｄからの各８ビットの８つのオペランド（図示せず）又は各算術回路２６ａ〜２６ｄからの各１６ビットの４つの結果に分割されてもよい。
【００２９】
命令発行回路１０（図示せず）からオペレーションコードを受け付ける入力２７は、各算術回路２６ａ〜２６ｄとオペランド分配回路２４とに接続される。ＳＩＭＤ処理について、各算術回路２６ａ〜２６ｄは、それの入力オペランドに対して同一の処理を実行することによって応答する。従来のＳＩＭＤ命令の実行については、オペランド分配回路２４は、第１入力２０ａの各ポジションから算術回路２６ａ〜２６ｄの第１入力にオペランドを提供することによって、そして、第２入力２０ｂの各ポジションから算術回路２６ａ〜２６ｄの第１入力に対応するオペランドを提供することによって、このような従来のＳＩＭＤ命令を選択するオペレーションコードに応答するよう構成される。
【００３０】
図３は、このような従来のＳＩＭＤ命令に対するデータフローを示す。ここでは、各レジスタからの入力３０ａ及び３０ｂは、各オペランドに対応するフィールドに分割されるよう示されている。丸印３２は処理を表し、フィールドと処理の間の矢印はデータフローを表す。このＳＩＭＤ命令は、例えば、
【００３１】
【数２】
2015133132.tif 000004
などのアセンブリ言語表現によるベクトルＡＤＤ命令とすることが可能である。
【００３２】
ここでは、“ＡＤＤＶＥＣＴＯＲ”は、実行される必要がある処理を特定するオペレーションコードを表し、Ｒ１及びＲ２は、各レジスタが複数のオペランドとして処理されるコンテンツを有するレジスタのアドレスを表す。命令は複数の加算を実行することによって実行され、第１加算は、Ｒ１及びＲ２によりアドレス指定されるレジスタの第１ポジションからのオペランドを加算し、第２加算は、Ｒ１及びＲ２などによってアドレス指定されるレジスタの第２ポジションからのオペランドを加算する。Ｒ３は、複数の結果の和が命令に応答して格納されるレジスタのアドレスを表す。もちろん、減算、乗算などの他の処理に対して、同様の従来のＳＩＭＤ命令が可能である。
【００３３】
【数３】
2015133132.tif 000005
図４ａは、本発明によるＳＩＭＤ命令の一例に対するデータフローを示す。この例では、第１入力３０ａの第１及び第２フィールドからのオペランドを利用して、処理が実行され、同一の処理が第１入力３０ａの第２及び第３フィールドからのオペランドを利用して実行し、同一の処理が、第１入力３０ａの第３及び第４フィールドからのオペランドを利用して実行され、同一の処理が、第１入力３０ａの第４フィールドと第２入力３０ｂの第１フィールドからのオペランドを利用して実行される。ＳＩＭＤ命令は、
【００３４】
【数４】
2015133132.tif 000006
などの加算命令であってもよい。
【００３５】
ここでは、Ｒ１によりアドレス指定されるレジスタの隣接ポジションのペアからのオペランドが加算され、Ｒ２によりアドレス指定されるレジスタは、Ｒ１によりアドレス指定されるレジスタの拡張として処理される。これらの加算の結果は、Ｒ３によりアドレス指定されるレジスタに格納される。もちろん、減算、乗算、ＭＡＣ（Ｍｕｌｔｉｐｌｙ  Ａｃｃｕｍｕｌａｔｅ）処理などの他の処理の対する他の命令が、レジスタの隣接位置のペアからのオペランドについて可能である。
【００３６】
【数５】
2015133132.tif 000007
オペランド分配回路２４は、オペランドの分配を実現する。従来タイプのＳＩＭＤ命令を選択した入力２７からのオペレーションコードに応答して、オペランド分配回路２４は、図３のデータフローに従って当該オペランドを算術回路２６ａ〜２６ｄに転送する。新しいタイプのＳＩＭＤ命令を選択した入力２７からのオペレーションコードに応答して、オペランド分配回路２４は、図４ａのデータフローに従って算術回路２６ａ〜２６ｄに当該オペランドを転送する。
【００３７】
本発明は図４ａに示されるタイプのデータフローに限定されるものでないということが、理解されるべきである。他の命令に応答して、オペランド分配回路２４は、図４ｂまたｈ４ｃに示されるデータフローを提供するようにしてもよい。図４ｂは、ＳＩＭＤ命令のオペレーションコードに対する応答を示し、そこでは、算術回路２６ａ及び２６ｂが、第１入力の第１、第２、第３及び第４フィールドからそれらの第１オペランドをそれぞれ受け取り、第１入力の第４フィールドと、第２入力の第１、第２及び第３フィールドから第２オペランドをそれぞれ受け取る。このような命令は、
【００３８】
【数６】
2015133132.tif 000008
などのアセンブリ言語表現を有することが可能である。
【００３９】
ここでは、オペレーションコードＡＤＤ１４又はＭＡＣ１４は、処理とＲ１によりアドレス指定されるレジスタの第１オペランドのポジションとを示す。
【００４０】
図４ｃは、ＳＩＭＤ命令のオペレーションコードに対する応答を示し、ここでは、算術回路２６ａ及び２６ｂは、第１入力の第２、第３及び第４フィールドと、第２入力の第１フィールドからそれぞれそれらの第１オペランドを受け取り、また第１入力の第３及び第４フィールドと、第２入力の第１及び第２フィールドとからそれぞれ第２オペランドを受け取る。
【００４１】
このような命令は、
【００４２】
【数７】
2015133132.tif 000009
などのアセンブリ言語表現を有することが可能である。
【００４３】
もちろん、同一の処理のすべてのポジションの組み合わせに対してオペレーションコードが必要となるわけでない。プログラムにおいて頻繁に必要とされる組み合わせのみを提供すれば十分であるかもしれない。
【００４４】
ここまで与えられた例では、オペランド分配回路２４は、命令発行回路１０からのオペレーションコードの制御の下、フィールドからオペランドを選択する。あるいは、当該選択は、レジスタファイル１４から受け付けたさらなるオペランドからのオペレーションコードの制御の下、又は命令発行回路１０からのオペレーションコードとそのようなオペランドの組み合わせの制御の下、実行されてもよい。
【００４５】
図５は、レジスタファイル１４（図示せず）に接続されるさらなるオペランド入力５０を有する機能ユニット１２ｂの実施例を示す。本実施例では、命令発行回路１０により発行される命令は、命令発行回路１０がレジスタファイル１４に供給するさらなるオペランドレジスタ選択アドレスを有する。このような命令の具体例のアセンブリ言語表現は、例えば、
【００４６】
【数８】
2015133132.tif 000010
である。
【００４７】
ここで、レジスタアドレスＲｐは、さらなるオペランドを提供するレジスタのアドレスを指定する。
【００４８】
本実施例では、オペランド分配回路２４は、さらなるオペランド入力５０からのさらなるオペランドと、命令発行回路１０からのオペレーションコードとの組み合わせの制御の下、オペランドの選択を実行する。本実施例では、オペレーションコードは、従来のフロー（図３に示されるような）が必要であるか、またさらなるオペランド入力５０からのさらなるオペランドがどのオペランド選択を利用するか制御しないか示すのに利用されてもよい。
【００４９】
一例では、さらなるオペランドは、第１入力３０ａからのオペランドに対して第１フィールドを選択し、オペランド分配回路２４は、当該フィールドからスタートして、第１入力３０ａのフィールドに続き、第２入力３０ｂの第１フィールドから継続する各算術回路２６ａ〜２６ｄに対して４つの第１フィールドを選択する。この場合、オペランド分配回路２４は、第１入力３０ａの選択されたフィールドに続く次のフィールドからスタートし、存在する場合には、第１入力３０ａのフィールドに続き、第２入力３０ｂの第１フィールドから継続する各算術回路２６ａ〜２６ｄに対して４つの第２オペランドを選択するよう構成されてもよい。このようにして、例えば、図４ｃのデータフローが選択されるかもしれない。この場合、さらなるオペランドは、例えば、０，１，２，３などの４つの値の１つを有し、各値は異なるポジションを示す。この場合、このためには、さらなるオペランドの２ビットで十分である。
【００５０】
他の例では、オペランド分配回路２４は、２つのさらなるオペランドから、又は上記さらなるオペランドの制御の下、２つのスタートオペランドのポジションの独立した選択を行うよう構成されてもよい。従って、例えば、さらなるオペランドは、第１フィールドが第１又は第２入力の第１フィールドを選択するためのものであり、第２フィールドが第１又は第２入力の第２フィールドを選択するためのものである２つのフィールドを有するかもしれない。この場合、オペランド分配回路２４は、存在する場合には、第１入力３０ａの第１フィールドからスタートし、第２入力３０ｂの第１フィールドから継続する各算術回路２６ａ〜２６ｄに対して４つの第１オペランドを選択するよう構成されてもよい。同様に、オペランド分配回路２４は、存在する場合には、第１入力３０ａの第２フィールドからスタートし、第２入力３０ｂの第１フィールドから継続する各算術回路２６ａ〜２６ｄに対して４つの第２オペランドを選択するよう構成されてもよい。このようにして、図４ｂのデータフローは、さらなるオペランドの第１フィールドが第１入力の第１フィールドを選択し、さらなるオペランドの第２フィールドが第１入力の第４フィールドを選択する場合に実現されるかもしれない。この場合、このためには、各フィールドについてさらなるオペランドの２ビットが２回あれば十分である。
【００５１】
さらなる実施例では、さらなるオペランドは、各オペランドの独立した選択のための選択フィールドを有するかもしれない。従って、各レジスタがＮ個のオペランドを有するものとして処理される場合、さらなるレジスタは、オペランドを選択するため、各２ｌｏｇＮビットの２Ｎフィールドを有するようにしてもよい。しかしながら、実際のプログラムについては、第１処理の第１オペランドについて１つのオフセットのみを選択し（残りのオペランドは、連続するポジションから選択される）、又は第１処理の第１及び第２オペランドに対して２つのオフセットのみを選択し（残りのオペランドは、連続するポジションから選択される）、より少ない選択で十分であるということが判明した。
【００５２】
図６は、制限されたオペランド選択のみが使用されるときに利用可能な簡単化された機能ユニットの一部を示す。そこでは、最後の算術回路２６ｄ以外の各算術回路の第２オペランドが、次の算術回路の第１オペランドとして供される。このようにして、オペランド分配回路２４をかなり簡単化することができる。オペランド分配回路２４は、例えば、各マルチプレクサが算術回路２６ｄの各オペランド入力と選択可能な入力とを選択可能に接続するマルチプレクサセットとして実現されてもよい。しかしながら、本発明の他の実現形態が可能である。例えば、複数の算術回路２６ａ〜２６ｄが、このタイプの命令によりアドレス指定されるレジスタからの所定のフィールドからのオペランドデータを利用する１つのタイプの命令のみを実行するため設けられてもよい。この場合、算術回路の入力は、アドレス指定されたレジスタのコンテンツの所定部分を受け付けるよう配線されてもよく、算術回路は、当該命令がこのタイプのものであることを示すオペレーションコードに応答して、当該結果を結果レジスタに書き込むよう起動される。この場合、オペランド分配回路２４は、関連する配線接続より多く有する必要はない。
【００５３】
図７は、すべての算術回路２６ａ〜２６ｄに共通に提供されるさらなるオペランドデータが提供可能なさらなる入力６０が提供されるさらなる実施例を示す。この場合、機能ユニットの命令は、
【００５４】
【数９】
2015133132.tif 000011
などのアセンブリ言語表現を有するようにしてもよい。
【００５５】
ここでは、Ｒｃは、算術回路２６ａ〜２６ｄについて共通のさらなるオペランドによるレジスタのアドレスを示す。このさらなるオペランドデータは、例えば、フィルタ係数を表すものであるかもしれない。一実施例では、このような命令は、
【００５６】
【数１０】
2015133132.tif 000012
の計算を実現するのに利用可能である。
【００５７】
ここでは、ａ［０］，ａ［１］，ａ［２］，ａ［３］，ａ［４］などは、Ｒ１及びＲ２によりアドレス指定されるレジスタの各フィールドに格納されているオペランドデータを表す。（Ｒ２によりアドレス指定されるレジスタは、Ｒ１によりアドレス指定されるレジスタも拡張として扱われる。）オペランド“ｏｆｆｓｅｔ”は、Ｒｐによりアドレス指定されるレジスタから取得され、Ｒ１及びＲ２によりアドレス指定されるレジスタのスタートフィールドポジションを示す。各算術回路２６ａ〜２６ｄは、ｂ［０］，ｂ［１］，ｂ［２］，ｂ［３］のそれぞれを計算し、これらの結果は、Ｒ３によりアドレス指定されるレジスタの各フィールド（部分）に書き込まれる。
【００５８】
本実施例では、Ｒｃによりアドレス指定されるレジスタは、各算術回路２６ａ〜２６ｄに供給される係数ｗ０及びｗ１を有する。他の実施例では、オペランド分配回路２４を制御するオペランドと、算術回路２６ａ〜２６ｄに共通に提供されるオペランドとは、１つのさらなるオペランドから取得されるかもしれない。例えば、３２ビットのレジスタの場合、２つの８ビット係数と２ビットオフセット選択とが、
【００５９】
【数１１】
2015133132.tif 000013
の１つのオペランドの各フィールドから提供されるかもしれない。
【００６０】
ここでは、ポジション及び係数情報は、Ｒｐｃによりアドレス指定されるレジスタからの１オペランドにより合成されて供給されると仮定される。当該フィールドは、Ｒｓのコンテンツによって選択される。
【００６１】
図８は、機能ユニットのさらなる実施例を示す。ここでは、追加的なオペランド接続７０が加えられ、当該追加的オペランド接続７０から各算術回路２６ａ〜２６ｄに各オペランドを提供する入力７２に接続される。さらに、追加的な結果接続７４が出力接続２８に加えられた。この機能ユニットは、例えば、命令に応答して、
【００６２】
【数１２】
2015133132.tif 000014
の計算を実行するのに利用可能である。
【００６３】
これは、レジスタの連続する隣接フィールドからのオペランドを利用した乗算加算命令である。
【００６４】
図９は、積ｗ０＊ａ［．．］及びｗ１＊ａ［．．］を計算する乗算器９０ａ及び９０ｂと加算回路９２とを有する上記目的に利用可能な算術回路２６を示す。
【００６５】
本例では、機能ユニットは、加数（ｓｕｍｍａｎｄ）ｓ［．．］と積ｗ０＊ａ［．．］及びｗ１＊ａ［．．］の各和を出力する。各算術回路２６ａ〜２６ｄの加数ｓ［．．］は、Ｒｓによりアドレス指定されるレジスタの所定のフィールドから取得され、共通の係数は、Ｒ１及びＲ２によりアドレス指定されるレジスタの各フィールドから取得される。これらのオペランドが求められるポジションは、Ｒｐｃによりアドレス指定されるレジスタからのオフセット情報により制御される。各算術回路２６ａ〜２６ｄからの結果は合成され、Ｒ３によりアドレス指定されるレジスタに書き込まれる。
【００６６】
好ましくは、結果が格納されるレジスタ（Ｒ３）は、オペランドａ［．．］を提供するのに利用されるレジスタ（Ｒ１，Ｒ２）のものの少なくとも２倍の長さを有する。これは、精度のロスなく２Ｍビットが２つのＭビット数の積を表すのに必要とされる事実を考慮するため利用される。累積が利用される場合（ある数の積への加算）、さらに多くのビット、例えば、２Ｍ＋２ビットなどが必要とされるかもしれない。この幅は、結果の関連する幅に従って選択されてもよい。従って、例えば、４つの８ビットオペランドａ［．．］（Ｍ＝８）が３２ビット入力レジスタ（Ｒ１，Ｒ２）から供給される場合、好ましくは、６４ビット出力レジスタ（Ｒ３）が、４つの１６ビット結果（Ｍ＝１６）を格納するのに利用される。さらに、命令に応答して、当該結果はまた、好ましくは、入力レジスタ（Ｒ１，Ｒ２）と同じ幅を有するさらなる結果レジスタＲ４の丸められた精度により格納される。このさらなる結果レジスタでは、各結果ｂ［．．］の一部のみが、例えば、ビットの上位１／２のみ、ビットの上位関連する１／２のみ、ビット４〜１２など各結果からのいくつかの所定のポジションからのビットなどが格納される。好ましくは、和ｓ［．．］を提供するのに利用されるレジスタ（Ｒｓ）はまた、オペランドａ［．．］を供給するのに用いられるレジスタ（Ｒ１，Ｒ２）のものの２倍の幅（ビット数）を有する。このことは、
【００６７】
【数１３】
2015133132.tif 000015
の命令を利用して、多次元補間（２次元画像補間など）を実現するため利用されてもよい。
【００６８】
ここでは、Ｒ１によりアドレス指定されるレジスタが、画像ラインに沿った隣接ピクセルポジションのＮ個（Ｎ＝４など）のピクセル値（ピクセル値ｐ［ｉ，ｊ］，ｐ［ｉ＋１，ｊ］，ｐ［ｉ＋２，ｊ］，ｐ［ｉ＋３，ｊ］など（ｊはラインを表し、ｉはスタートピクセルポジションを表す））を有し、Ｒ２によりアドレス指定されるレジスタは、Ｒ１のものに続くポジションのピクセル値（ピクセル値ｐ［ｉ＋４，ｊ］，ｐ［ｉ＋５，ｊ］，ｐ［ｉ＋６，ｊ］，ｐ［ｉ＋７，ｊ］など）を有すると仮定される。Ｒｐｃ１によりアドレス指定されるレジスタは、２つの係数ｗ００及びｗ０１を有する。同様に、Ｒ１’及びＲ２’はそれぞれ、Ｒ１及びＲ２の画像ラインに隣接する次の画像ラインに沿った隣接するピクセルポジションのＮ個（Ｎ＝４など）のピクセル値（それぞれピクセル値ｐ［ｉ，ｊ＋１］，ｐ［ｉ＋１，ｊ＋１］，ｐ［ｉ＋２，ｊ＋１］，ｐ［ｉ＋３，ｊ＋１］及びｐ［ｉ＋４，ｊ＋１］，ｐ［ｉ＋５，ｊ＋１］，ｐ［ｉ＋６，ｊ＋１］，ｐ［ｉ＋７，ｊ＋１］など）を有する。Ｒｐｃ２によりアドレス指定されるレジスタは、２つの係数ｗ１０及びｗ１１を有する。Ｒｓによりアドレス指定されるレジスタは、ゼロの値を有する。この場合、上記２つの処理の後に、Ｒ３によりアドレス指定されるレジスタの結果は、
【００６９】
【数１４】
2015133132.tif 000016
を含むであろう。
【００７０】
このため、４つの４ピクセル補間が２つの命令を実行することによって実行された。完全な画像を補間するため、これは連続するピクセルグループのロードと共に繰り返されてもよい。
【００７１】
好ましくは、機能ユニットはさらに、例えば、Ｒｐｃ１及びＲｐｃ２によりアドレス指定されるレジスタのオペランドの一部として、オフセットを規定する少なくとも１つのオペランドをサポートする。このようにして、Ｒ１，Ｒ２，Ｒ１’，Ｒ２’によりアドレス指定されるレジスタのスタートピクセル値ｐ［ｉ＋０，ｊ］及びｐ［ｉ＋０，ｊ＋１］のポジションは、プログラムの制御の下で選択可能である。このことは、アラインされたアドレスを利用したロード処理と共にさらなる再アライメントなしに、データメモリの任意のアドレスからスタートして格納されているピクセル値に対する結果を生成することを可能にする。従って、例えば、あるラインに沿ったピクセル系列が、
【００７２】
【数１５】
2015133132.tif 000017
の命令を利用して処理することが可能である。
【００７３】
ここでは、隣接するメモリ位置のグループからのピクセル値が、Ｒ１，Ｒ２，Ｒ１’，Ｒ２’によりアドレス指定されるレジスタにロードされ、（ＭＡＣ命令により）４つの補間された結果のグループを生成するのに利用される。ここで、第１補間結果を生成するのに利用されるレジスタＲ１及びＲ２から利用される第１ピクセルのオフセットは、Ｒｐｃ１によりアドレス指定されるレジスタにより制御される。隣接メモリ位置の次のグループからの次のピクセル値がＲ１（及びＲ１’）にロードされ、Ｒ１及びＲ２の役割が補間命令（ＭＡＣ）において交換される。この後、ループが繰り返される。
【００７４】
このプログラムのメモリアクセス命令（ＬＯＡＤ及びＳＴＯＲＥ）はすべてアラインされたアドレスを利用することが理解されるべきである。従って、アラインされていないスタートアドレスからスタートして格納されているピクセルデータの補間が容易になる。このことは、特に画像の任意に選択可能なポジションからスタートする相対的に小さなウィンドウにおいて補間が要求される場合、スピードを増大させる。
【００７５】
本発明のアプリケーションが２次元画像処理について説明されたが、本発明が当該アプリケーションに限定されないということが理解されるべきである。本発明はまた、１次元アレイ処理又は３次以上のアレイ処理にも適用可能である。さらに、係数とピクセルの積の和に関するＳＩＭＤ命令へのアプリケーションが説明されたが、他の命令も利用可能であるということが理解されるべきである。
【００７６】
本発明によると、処理回路は、それの命令セットに新規な命令を含むよう構成される。周知なように、プロセッサの命令セットの仕様は、一般には何れの実現形態がプロセッサを実現するのに利用可能であるか当業者に通知すれば十分である。命令セットは、プロセッサに対するマシーンプログラムに含めることが可能な各種命令タイプを規定する。（ここで使用される「命令」とは、最終的に命令でない部分とならず、プログラムが分割可能な最小ユニットであるマシーンプログラムの“アトム”を表す。）本発明による処理回路の命令セットは、各々が複数の潜在的なオペランドを有するレジスタからのオペランドを利用して、同一タイプの処理をパラレルに実行することによって複数の結果が生成されるという意味において、処理回路にＳＩＭＤ処理を実行させる命令を有する。パラレルに実行される処理は、オペランド系列の重複を利用する。好ましくは、命令は、オペランドが取得する必要があるレジスタのポジションを示すさらなるオペランドを有する。あるいは、異なるオペレーションコードが、異なるポジションを示す。
【符号の説明】
【００７７】
１０  命令発行回路
１２  機能ユニット
１４  レジスタファイル
１５  アドレス／データインタフェース
１６  データメモリ
【図１】
2015133132.tif 000018
【図２】
2015133132.tif 000019
【図３】
2015133132.tif 000020
【図４ａ】
2015133132.tif 000021
【図４ｂ】
2015133132.tif 000022
【図４ｃ】
2015133132.tif 000023
【図５】
2015133132.tif 000024
【図６】
2015133132.tif 000025
【図７】
2015133132.tif 000026
【図８】
2015133132.tif 000027
【図９】
2015133132.tif 000028
【外国語明細書】
2015133132000001.pdf