(57)【要約】  カウント動作を実施するための装置及び装置を動作させるための方法が提供される。命令デコーダ回路が、入力データ項目を指定するカウント命令に応答して、カウント動作を実施するよう、データ処理回路を制御するための制御信号を生成する。カウント動作は、基準データ項目における基準要素内の基準値に合致する値を有する、指定された入力データ項目内の要素のサブセットのうちの入力要素の数を示すカウント値を決定する。入力データ項目に対応するカウント・データ項目を決定するために、複数のカウント動作が実施されてもよい。また、レジスタ分散記憶命令、収集インデックス生成命令、及び、それらに応答する各装置、並びにシミュレータ実装が提供される。
2020529658.tif 000002
【特許請求の範囲】
【請求項１】
命令をデコードするための命令デコーダ回路と、
前記命令によって指定されたベクトル処理動作を、入力データ・ベクトル内の各位置に複数の入力データ項目を含む前記入力データ・ベクトルに選択的に適用するためのデータ処理回路とを含み、
前記命令デコーダ回路が、入力データ項目を指定するカウント命令に応答して、
基準データ項目における基準要素内の基準値に合致する値を有する、前記指定された入力データ項目内の要素のサブセットのうちの入力要素の数を示すカウント値を決定するためのカウント動作を実施するよう、データ処理回路を制御するための制御信号を生成する、装置。
【請求項２】
前記データ処理回路が、前記制御信号にさらに応答して、複数のカウント動作を実施し、
前記複数のカウント動作のそれぞれにおいて、使用される前記基準値が、前記基準データ項目における複数の基準要素の各基準要素内の各基準値である、請求項１に記載の装置。
【請求項３】
前記データ処理回路が、前記複数のカウント動作のそれぞれに対する前記制御信号に応答して、前記カウント動作によって決定された前記カウント値を示すよう、カウント・データ項目の各カウント要素内の前記カウント値を設定する、請求項２に記載の装置。
【請求項４】
前記指定された入力データ項目内の要素の前記サブセットが、前記入力データ項目内の要素位置の範囲内にある、前記入力データ項目内の要素位置を有する、前記入力データ項目の各入力要素を含み、
要素位置の前記範囲が、前記複数のカウント動作のそれぞれにおいて使用される前記各基準要素によって制限される、請求項２又は３に記載の装置。
【請求項５】
要素位置の前記範囲が、前記複数のカウント動作の各先行カウント動作において使用される各基準要素を含む、請求項４に記載の装置。
【請求項６】
前記データ処理回路が、前記制御信号に応答して、最下位の要素位置から最上位の要素位置に向かって、要素位置の昇順に前記複数のカウント動作を実施する、請求項２から５までのいずれか一項に記載の装置。
【請求項７】
前記基準データ項目の各基準要素内の前記基準値が、前記入力データ項目のそれぞれ対応する入力要素内の入力値によって与えられる、請求項１から６までのいずれか一項に記載の装置。
【請求項８】
前記入力データ項目が、１つ又は複数のセグメントを含み、各セグメントが、所定のサイズを有し、前記サブセットが、前記１つ又は複数のセグメントのうちの選択されたセグメントである、請求項１から７までのいずれか一項に記載の装置。
【請求項９】
前記入力データ項目が１つ又は複数のセグメントを含み、各セグメントが所定のサイズを有し、前記サブセットが前記１つ又は複数のセグメントのうちの選択されたセグメントであり、
前記サブセットが、前記複数のカウント動作の各カウント動作に対する、前記選択されたセグメントである、請求項２に記載の装置又は、請求項２に従属する場合の請求項３から８までのいずれか一項に記載の装置。
【請求項１０】
前記データ処理回路が、前記制御信号にさらに応答して、複数のカウント動作を実施し、
前記複数のカウント動作のそれぞれにおいて、使用される前記基準値が前記基準データ項目における複数の基準要素の各基準要素内の各基準値であり、
前記データ処理回路が、前記入力データ項目の前記選択されたセグメントのコピーを生成するための入力データ項目コピー回路をさらに含み、
前記データ処理回路が前記制御信号に応答して、前記入力データ項目の前記選択されたセグメントに関する前記複数のカウント動作の第１のグループを実施し、且つ、前記入力データ項目の前記選択されたセグメントの前記コピーに関する前記複数のカウント動作の第２のグループを実施する、請求項８に記載の装置又は、請求項８に従属する場合の請求項９に記載の装置。
【請求項１１】
前記基準データ項目内の前記複数の基準要素が、連続的なロードによってメモリから取得される、請求項８に記載の装置又は、請求項８に従属する場合の請求項９若しくは１０に記載の装置。
【請求項１２】
前記データ処理回路が、加算動作を実施するための加算回路をさらに含み、前記命令デコーダ回路が、現在の加算ベクトルを指定する加算命令に応答して、前記カウント・データ項目内の各カウント要素の前記値を、前記現在の加算ベクトルの対応する要素内の前記値に加算し、その結果のデータ項目を出力するための、現在の加算ベクトルを用いた加算動作を実施するよう、前記加算回路を制御する、請求項３に記載の装置又は、請求項３に従属する場合の請求項４から１１までのいずれか一項に記載の装置。
【請求項１３】
前記加算動作が、前記複数のカウント動作の完了に際して実施される、請求項１２に記載の装置。
【請求項１４】
前記データ処理回路が、レジスタ分散記憶回路をさらに含み、前記命令デコーダ回路が、分散先レジスタ、分散インデックス・ベクトル、及び分散データ項目を指定するレジスタ分散記憶命令に応答して、前記分散インデックス・ベクトルによって前記分散データ項目の対応する要素の値を含むと識別された前記分散先レジスタ内の複数のレジスタ要素配置のそれぞれを設定するための、レジスタ分散記憶処理を実施するよう、前記レジスタ分散記憶回路を制御する、請求項３に記載の装置又は、請求項３に従属する場合の請求項４から１３までのいずれか一項に記載の装置。
【請求項１５】
前記レジスタ分散記憶命令が、２つ以上の分散先レジスタを指定し、前記分散インデックス・ベクトルによって識別された複数のレジスタ要素配置が前記２つ以上の分散先レジスタ内に含まれる、請求項１４に記載の装置。
【請求項１６】
命令をデコードするための命令デコーダ回路と、
レジスタ分散記憶回路を含むデータ処理回路とを含み、
前記命令デコーダ回路が、分散先レジスタ、分散インデックス・ベクトル、及び分散データ項目を指定するレジスタ分散記憶命令に応答して、前記分散インデックス・ベクトルによって前記分散データ項目の対応する要素の値を含むと識別された前記分散先レジスタ内の複数のレジスタ要素配置のそれぞれを設定するための、レジスタ分散記憶処理を実施するよう、前記レジスタ分散記憶回路を制御する、装置。
【請求項１７】
収集インデックス生成回路をさらに含み、前記命令デコーダ回路が、複数の分散インデックス値を含む分散インデックス・ベクトルを指定する収集インデックス生成命令に応答して、各収集インデックス要素が各インデックスによって参照され、且つ、各レジスタ要素インデックス値を含む、複数の収集インデックス要素から成る収集インデックス・ベクトルを生成するための収集インデックス生成動作を実施するよう前記収集インデックス生成回路を制御し、
前記生成動作が、複数の収集インデックス要素のそれぞれについて、前記各インデックスを前記複数の分散インデックス値のそれぞれと比較するための比較動作を実施し、
前記比較動作が、合致条件の結果に基づいて、前記各収集インデックス要素のレジスタ要素インデックス値を条件的に設定し、
前記合致条件が、前記複数の分散インデックス値のうちの１つが前記各インデックスに合致することを要求し、
前記各収集インデックス要素の前記各レジスタ要素インデックス値が、前記合致条件を満たす最上位の分散インデックス要素の前記インデックスに設定される、請求項１から１６までのいずれか一項に記載の装置。
【請求項１８】
命令をデコードするための命令デコーダ回路と、
収集インデックス生成回路を含むデータ処理回路とを含み、
前記命令デコーダ回路が、複数の分散インデックス値を含む分散インデックス・ベクトルを指定する生成命令に応答して、各収集インデックス要素が各インデックスによって参照され、且つ、各レジスタ要素インデックス値を含む、複数の収集インデックス要素から成る収集インデックス・ベクトルを生成するための収集インデックス生成動作を実施するよう、前記収集インデックス生成回路を制御し、
前記生成動作が、前記複数の収集インデックス要素のそれぞれについて、前記各インデックスを前記複数の分散インデックス値のそれぞれと比較するための比較動作を実施し、
前記比較動作が、合致条件の前記結果に基づいて、前記各収集インデックス要素のレジスタ要素インデックス値を条件的に設定し、
前記合致条件が、前記複数の分散インデックス値のうちの１つが前記各インデックスに合致することを要求し、
前記各収集インデックス要素の前記各レジスタ要素インデックス値が、前記合致条件を満たす最上位の分散インデックス要素の前記インデックスに設定される、装置。
【請求項１９】
命令をデコードするステップと、
前記命令によって指定されたベクトル処理動作を、入力データ・ベクトル内の各位置に複数の入力データ項目を含む入力データ・ベクトルに選択的に適用するステップと、
入力データ項目を指定するカウント命令に応答して、
基準データ項目における基準要素内の基準値に合致する値を有する、前記指定された入力データ項目内の要素のサブセットのうちの入力要素の数を示すカウント値を決定するためのカウント動作を実施するよう、データ処理回路を制御するための制御信号を生成するステップとを含む、データ処理装置を動作させる方法。
【請求項２０】
命令をデコードするための手段と、
前記命令によって指定されたベクトル処理動作を、入力データ・ベクトル内の各位置に複数の入力データ項目を含む入力データ・ベクトルに選択的に適用するための手段と、
入力データ項目を指定するカウント命令に応答して、基準データ項目における基準要素内の基準値に合致する値を有する、前記指定された入力データ項目内の要素のサブセットのうちの入力要素の数を示すカウント値を決定するためのカウント動作を実施するための手段を制御するための、制御信号を生成するための手段とを含む、装置。
【請求項２１】
命令をデコードするための命令デコード・プログラム・ロジックと、
前記命令によって指定されたベクトル処理動作を、入力データ・ベクトル構造内の各位置に複数の入力データ項目構造を含む入力データ・ベクトル構造に選択的に適用するためのデータ処理プログラム・ロジックとを含み、
前記命令デコード・プログラム・ロジックが、入力データ項目構造を指定するカウント命令に応答して、
基準データ項目構造における基準要素内の基準値に合致する値を有する、前記指定された入力データ項目構造内の要素のサブセットのうちの入力要素の数を示すカウント値を決定するためのカウント動作を実施するよう、前記データ処理プログラム・ロジックを制御するための制御信号を生成する、命令実行環境を提供するよう、ホスト・データ処理装置を制御するためのコンピュータ・プログラム。
【請求項２２】
請求項２１によるコンピュータ・プログラムを非一時的な方法で記憶するコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、データ処理装置に関する。より詳細には、本開示は、データ処理装置によってデータ項目内の要素をカウントすることに関する。
【背景技術】
【０００２】
データ処理装置は、多種多様なデータ処理動作を実施することができ、その幾つかは、データ処理装置が処理するデータ項目内の要素をカウントすることを要求することがある。例えば、このようなカウントは、ヒストグラム・データの操作の一部を形成することができ、入力データ項目の要素はこのようなヒストグラム・データを構築するために、それぞれ所与のヒストグラム・ビンに割り当てられ得る。所与の入力データ項目の要素をその対応するヒストグラム・ビンに正確に割り当てるために要求される処理の観点から、若しくは、既存のヒストグラム・データを取得し、変更されたヒストグラム・データを書き戻すために要求されるメモリ・アクセスの数によって、又は、その両方によって、このような処理は、構築されるヒストグラムのサイズ次第で比較的厄介なものとなり得る。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】「Ｓｏｍｅ  Ｅｆｆｉｃｉｅｎｔ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｓｉｍｕｌａｔｉｏｎ  Ｔｅｃｈｎｉｑｕｅｓ」、Ｒｏｂｅｒｔ  Ｂｅｄｉｃｈｅｋ、Ｗｉｎｔｅｒ  １９９０  ＵＳＥＮＩＸ  Ｃｏｎｆｅｒｅｎｃｅ、５３〜６３頁
【発明の概要】
【課題を解決するための手段】
【０００４】
１つの実例では、命令をデコードするための命令デコーダ回路と、前記命令によって指定されたベクトル処理動作を、入力データ・ベクトル内の各位置に複数の入力データ項目を含む入力データ・ベクトルに選択的に適用するためのデータ処理回路とを含み、前記命令デコーダ回路が、入力データ項目を指定するカウント命令に応答して、基準データ項目における基準要素内の基準値に合致する値を有する、前記指定された入力データ項目内の要素のサブセットのうちの入力要素の数を示すカウント値を決定するためのカウント動作を実施するよう、データ処理回路を制御するための制御信号を生成する、装置を提供する。
【０００５】
別の実例では、命令をデコードするための命令デコーダ回路と、レジスタ分散記憶回路を含むデータ処理回路とを含み、前記命令デコーダ回路が、分散先レジスタ、分散インデックス・ベクトル、及び分散データ項目を指定するレジスタ分散記憶命令に応答して、前記分散インデックス・ベクトルによって前記分散データ項目の対応する要素の値を含むと識別された前記分散先レジスタ内の複数のレジスタ要素配置のそれぞれを設定するためのレジスタ分散記憶処理を実施するよう、前記レジスタ分散記憶回路を制御する、装置を提供する。
【０００６】
別の実例では、命令をデコードするための命令デコーダ回路と、収集インデックス生成回路を含むデータ処理回路とを含み、命令デコーダ回路が、複数の分散インデックス値を含む分散インデックス・ベクトルを指定する生成命令に応答して、各収集インデックス要素が各インデックスによって参照され、且つ、各レジスタ要素インデックス値を含む、複数の収集インデックス要素から成る収集インデックス・ベクトルを生成するための収集インデックス生成動作を実施するよう、前記収集インデックス生成回路を制御し、前記生成動作が、前記複数の収集インデックス要素のそれぞれについて、前記各インデックスを前記複数の分散インデックス値のそれぞれと比較するための比較動作を実施し、前記比較動作が、合致条件の前記結果に基づいて、前記各収集インデックス要素のレジスタ要素インデックス値を条件的に設定し、前記合致条件が、前記複数の分散インデックス値のうちの１つが前記各インデックス値に合致することを要求し、前記各収集インデックス要素の前記各レジスタ要素インデックス値が前記合致条件を満たす最大の分散インデックス要素の前記インデックスに設定される、装置を提供する。
【０００７】
別の実例では、命令をデコードするステップと、前記命令によって指定されたベクトル処理動作を、入力データ・ベクトル内の各位置に複数の入力データ項目を含む入力データ・ベクトルに選択的に適用するステップと、入力データ項目を指定するカウント命令に応答して、基準データ項目における基準要素内の基準値に合致する値を有する、前記指定された入力データ項目内の要素のサブセットのうちの入力要素の数を示すカウント値を決定するためのカウント動作を実施するよう、データ処理回路を制御するための制御信号を生成するステップとを含む、データ処理装置を動作させる方法を提供する。
【０００８】
別の実例では、命令をデコードするための手段と、前記命令によって指定されたベクトル処理動作を、入力データ・ベクトル内の各位置に複数の入力データ項目を含む入力データ・ベクトルに選択的に適用するための手段と、入力データ項目を指定するカウント命令に応答して、基準データ項目における基準要素内の基準値に合致する値を有する、前記指定された入力データ項目内の要素のサブセットのうちの入力要素の数を示すカウント値を決定するためのカウント動作を実施するための手段を制御するための、制御信号を生成するための手段とを含む、装置を提供する。
【０００９】
別の実例では、命令をデコードするための命令デコード・プログラム・ロジックと、前記命令によって指定されたベクトル処理動作を、入力データ・ベクトル構造内の各位置に複数の入力データ項目構造を含む入力データ・ベクトル構造に選択的に適用するためのデータ処理プログラム・ロジックとを含み、前記命令デコード・プログラム・ロジックが、入力データ項目構造を指定するカウント命令に応答して、基準データ項目構造における基準要素内の基準値に合致する値を有する、前記指定された入力データ項目構造内の要素のサブセットのうちの入力要素の数を示すカウント値を決定するためのカウント動作を実施するよう、前記データ処理プログラム・ロジックを制御するための制御信号を生成する、命令実行環境を提供するよう、ホスト・データ処理装置を制御するためのコンピュータ・プログラムを提供する。
【００１０】
一例として添付図面に示す実施例を参照しながら、本技術をさらに説明する。
【図面の簡単な説明】
【００１１】
【図１】１つの実例による装置を模式的に示す図である。
【図２】１つの実例による装置を模式的に示す図である。
【図３】１つの実例における、複数の入力要素を含む入力データ・ベクトルを示す図である。
【図４】１つの実例における、入力データ項目内における基準値の発生に対応するカウント値を決定するためのカウント動作を示す図である。
【図５】１つの実例による、カウント・データ項目を決定するための複数のカウント動作を示す図であり、カウント・データ項目の要素は、入力データ項目の指定されたサブセットにおける基準データ項目の要素の発生数を表す。
【図６】１つの実例による、カウント・データ項目を決定するための複数のカウント動作を示す図であり、カウント・データ項目の要素は、入力データ項目の各サブセットにおける基準データ項目の要素の発生数を表す。
【図７】１つの実例における、メモリから取得された入力データ項目、対応するヒストグラム・ビン・カウントをロードするためのメモリからのロード収集、ビン・カウントを伴う入力データ項目の蓄積、及び、更新されたビン・カウントについてのメモリへの分散記憶を、模式的に示す図である。
【図８】１つの実例における、メモリから取得された入力データ項目、対応するヒストグラム・ビン・カウントをロードするためのメモリからのロード収集、本技術の第１のカウント命令を使用したビン・カウントを伴う入力データ項目の蓄積、及び、更新されたビン・カウントについてのメモリへの分散記憶を、模式的に示す図である。
【図９】１つの実例における、メモリから取得された入力データ項目、ヒストグラム・ビン・カウントのセットをロードするためのメモリからの連続的なロードのシーケンス、本技術の第２のカウント命令を使用した関連するビン・カウントを伴う入力データ項目の蓄積、及び、更新されたビン・カウントについてのメモリへの連続的な記憶のシーケンスを、模式的に示す図である。
【図１０】１つの実例における、入力データ・インデックス、対応するヒストグラム・ビン・カウントのセットを集めるためのレジスタ収集アクセス、本技術の第１のカウント命令を使用したビン・カウントを伴う入力データ項目の蓄積、及び、更新されたビン・カウントについての本技術の分散レジスタ・アクセスを、模式的に示す図である。
【図１１】１つの実例における、入力データ・インデックス、対応するヒストグラム・ビン・カウント部分への連続的なレジスタ・アクセスのシーケンス、本技術の第２のカウント命令を使用したビン・カウントを伴う入力データ項目の蓄積、及び、更新されたビン・カウントを用いた連続的なレジスタ・アクセス、を模式的に示す図である。
【図１２】１つの実例における、分散インデックスから収集インデックスを生成するための収集インデックス生成命令の挙動を模式的に示す図である。
【図１３】１つの実例における、収集インデックス生成命令を実行する際に行われるステップのシーケンスを示すフロー図である。
【図１４】１つの実例による、装置を動作させる方法において行われるステップのシーケンスを示すフロー図である。
【図１５】１つの実施例における、シミュレータ実装を提供するシステムの構成要素を模式的に示す図である。
【発明を実施するための形態】
【００１２】
少なくとも幾つかの実例は、命令をデコードするための命令デコーダ回路と、前記命令によって指定されたベクトル処理動作を、入力データ・ベクトル内の各位置に複数の入力データ項目を含む入力データ・ベクトルに選択的に適用するためのデータ処理回路とを含み、前記命令デコーダ回路が、入力データ項目を指定するカウント命令に応答して、基準データ項目における基準要素内の基準値に合致する値を有する、前記指定された入力データ項目内の要素のサブセットのうちの入力要素の数を示すカウント値を決定するためのカウント動作を実施するよう、データ処理回路を制御するための制御信号を生成する、装置を提供する。
【００１３】
データ処理装置は、入力ベクトル、即ち、要素の配列の中で特定の値を有する要素の数をカウントすることを要求されることがある。複数の入力要素を含み、そのそれぞれが特定の値を含む、入力データ・ベクトルは、例えば、ヒストグラム動作を実施する際にデータ処理装置によって操作されることがある。例えば、入力データ・ベクトルが、データ処理装置がアクセス可能な（例えば、データ処理装置のメモリに記憶された）値の既存ヒストグラムに追加されるべきデータを表す場合には、典型的には、入力データ・ベクトルの要素がヒストグラムの対応するビンに正しく蓄積され得るよう、入力データ・ベクトルの要素に関するカウント動作が実行される必要がある。このような動作をサポートするため、本技術は、カウント命令（命令デコーダ回路からの制御信号によって伝達される）に応答して、基準データ項目の基準要素内に保持された基準値に合致する入力データ項目内の入力要素をカウントする、データ処理回路を提供する。
【００１４】
基準データ項目は様々な方法で提供されてよく、本技術が実装される方法によって、実に様々な比較項目を表すことができる。例えば、幾つかの実例では、基準データ項目は入力データ項目と全く異なってよい一方、他の実例では、基準データ項目の要素は、反対に入力データ項目自体によって提供されてもよい。基準データ項目は、特定の要素数を含むよう限定されるものではなく、幾つかの実施例では、複数の基準要素を含む一方、他の実施例では、反対に１つの基準要素のみを含むことができる。
【００１５】
本技術は、このようなデータ処理装置を提供する上で、入力データ項目が大きいほど、特に、入力データ項目と基準データ項目の要素間で実施可能でなければならない比較の順列数が増加することによって、要求される回路の提供が非現実的になり得る程に、要求されるカウント動作の実施に関わる回路が複雑化してしまうという、実用上の課題に直面することを念頭に置いている。このことを背景に、本技術は、基準データ項目内の特定の基準要素に合致する、指定された入力データ項目内の要素のサブセットにおける入力要素の数を示すカウント値を決定するための（命令デコーダ回路によって生成された制御信号によって制御される）データ処理回路を提供することによって、この問題が解決され得ると解する。以下にさらに詳述するように、このサブセットは様々に定義されてよく、一般的にも、このアプローチは、要求される回路が実用的に提供され、要求されるカウント動作が実行されることを供与する。これは、例えば、入力データ項目、サブセット、及び基準データ項目が適切に選択された場合に、ヒストグラム処理が効率的に実施されることを可能とすることができる。
【００１６】
幾つかの実例では、複数のカウント動作のそれぞれにおいて、使用される基準値が、基準データ項目内の複数の基準要素のうちの各基準要素内の各基準値である場合に、データ処理回路は制御信号にさらに応答して複数のカウント動作を実施する。言い換えれば、基準データ項目の基準要素はそれぞれ、入力データ項目内の各入力要素と比較され、各カウント動作がそれぞれの基準要素に合致する入力データ項目内の入力要素の数を決定する。さらに、複数のカウント動作のそれぞれについて、指定された入力データ項目内の要素の各サブセットにおける入力要素が、各カウント動作によって使用される基準要素と比較され、データ処理回路が対応するカウント値を決定する。本質的には、各基準要素が入力データ項目のサブセット内の入力要素に合致する回数がカウントされる。このサブセットは、各カウント動作について同一であっても、カウント動作ごとに異なってもよく、このことが、以下にさらに詳述するように、異なるカウント・コンテキストに対して有用なコンフィギュアビリティを本技術に付加していることに注意が必要である。
【００１７】
ヒストグラム処理のコンテキスト例では、したがって、ヒストグラム・インデックス（ビン）の選択されたサブセットに対する入力データ項目の要素のカウントを容易化することによって、当該ヒストグラム処理の効率を向上させることができる。本アプローチのヒストグラム・コンテキストに対する様々な使用例を以下に説明するが、例えば、選択された非連続的なヒストグラム・インデックスのセットの標的型カウント、又は、選択された連続的なヒストグラム・インデックスのセットの反復型カウントを含んでよい。
【００１８】
幾つかの実例では、データ処理回路は、複数のカウント動作のそれぞれに対する制御信号に応答して、当該カウント動作によって決定されたカウント値を示すよう、カウント・データ項目の各カウント要素内のカウント値を設定する。このように決定されたカウント・データ項目は、様々な方法で使用されてよく、例えば、記憶されたヒストグラムの対応部分を直接又は間接的に更新するなどのデータ処理をさらにサポートすることができる。
【００１９】
幾つかの実例では、指定された入力データ項目内の要素のサブセットは、入力データ項目内の要素位置の範囲内にある入力データ項目内の要素位置を有する、入力データ項目の各入力要素を含み、要素位置の範囲は、複数のカウント動作のそれぞれにおいて使用される各基準要素によって制限される。各基準要素は、基準データ項目内の基準要素位置を有し、データ処理回路によって実施される複数のカウント動作のそれぞれに対して、各基準要素位置における各基準要素が使用される。前記の指定された入力データ項目内の要素のサブセットは、対応する基準要素についてのカウント値を決定するために使用される、これらの入力データ項目の要素を含む。したがって、このような実例では、サブセットは、カウント動作のそれぞれにおいて使用される各基準要素を基準として決定される。特に、基準データ項目内の各基準要素の基準位置は、指定された入力データ項目における要素のサブセット内の入力要素の要素位置の範囲を示す。言い換えれば、比較対象の基準要素が、入力データ項目の入力要素のいずれが比較されるかを決定する。したがって、カウント動作のシーケンスが実施されるコンテキストでは、これは、それぞれのカウント動作に対してサブセットが変化することを意味し、本技術はこれを実用的な方法（即ち、要求される回路の複雑さが制約的にならない方法）でこのようなカウント動作を実装するための有用なアプローチとして特定した。特に、ある特定の状況において、例えば、１つの比較から始まり、シーケンスが進むとともに増大し、最後の反復で可能な比較の完全なセットとなる、比較のセットが実施され得ることがわかっている。これが、提供されるべき回路の複雑さを抑制する。
【００２０】
要素位置の範囲は様々に構成され得るが、例えば、要素位置の範囲は、入力データ項目内の最上位の要素位置を有する入力要素と、基準要素の基準位置と同等の要素位置を有する入力要素とによって制限され得る。或いは、要素位置の範囲は、入力データ項目内の最下位の要素位置を有する入力要素と、基準要素の基準位置と同等の要素位置を有する入力要素とによって制限され得る。
【００２１】
幾つかの実例では、要素位置の範囲は、複数のカウント動作内のそれぞれ先行するカウント動作において使用される各基準要素を含む。複数のカウント動作は、各カウント動作が（当然１つ目のカウント動作は例外として）先行するカウント動作の後に実施されるようなシーケンスで実施され得る。各カウント動作中に使用される入力要素を指定する要素位置の範囲は、現在の基準要素に加えて、現在のカウント動作に先行する任意のカウント動作のそれぞれによって使用される基準要素を含むことができる。言い換えれば、連続したカウント動作は、増大していく入力要素のサブセットについてカウントを実施する。
【００２２】
幾つかの実例では、データ処理回路は制御信号に応答して、最下位の要素位置から最上位の要素位置に向かって、要素位置の昇順に複数のカウント動作を実施する。他の実例では、この順序は逆転してもよく、即ち、最上位から最下位の要素位置の順であってもよい。
【００２３】
さらに、幾つかの実例では、基準データ項目の各基準要素内の基準値は、入力データ項目のそれぞれ対応する入力要素内の入力値によって与えられる。言い換えれば、基準データ項目内の基準要素が、入力データ項目内の入力要素に合致する。これは、例えば、装置が入力データ項目を指定する特定のカウント命令に応答する場合に、当該入力データ項目を基準データ項目としても扱うことによって、提供することができる。本技術は、このような状況では、連続するカウント動作のそれぞれが、指定された入力データ項目内の要素の各サブセットについて実施されるため、各基準要素について決定されたカウント値が、当該入力要素に合致する入力データ項目内の入力要素の総数を示さない可能性があることを解する。しかし、これに該当するイベントにおいて（例えば、入力データ項目内の特定の入力要素値のコピーが２つ以上ある状況では）、シーケンスの後方のカウント動作は、特定の要素値の全インスタンスを含むカウントを実行することを期待され得る。基準データ項目が入力データ項目に合致し、また、入力データ項目内で値の反復がある実例では、前方のカウントは未完了である可能性があるが、それでもなお、入力データ項目に対する全カウント動作が完了した時に、最終カウントの特定の値が正しいことを保証することができる。そうして、装置は、生成されたカウント値のセットを使用する際に、後の値が前の値を置き換えるか、又は上書きする方法で、前（不完全）と後（完全）のカウントを使用するように構成され得る。或いは、同じ基準要素に対応する、より上位のカウント要素内に後の値があるならば、装置は、次の動作中に前の値が無視されるか、又はスキップされるよう設定され得る。
【００２４】
幾つかの実例では、入力データ項目は１つ又は複数のセグメントを含み、各セグメントは所定のサイズを有し、サブセットは１つ又は複数のセグメントのうちの選択されたセグメントである。指定された入力データ項目内の要素のサブセットは、入力データ項目のセグメントであってよい。幾つかの実例では、セグメントは、４つの入力要素分の幅などの所定の幅を有する。この幅は、事前に定義され、且つ固定的あってよい一方、他の実例では、その幅は動的に設定され得る構成に依拠してもよい。
【００２５】
幾つかの実例では、入力データ項目は１つ又は複数のセグメントを含み、各セグメントが所定のサイズを有し、サブセットは１つ又は複数のセグメントのうちの選択されたセグメントであり、サブセットは複数のカウント動作の各カウント動作に対して選択されたセグメントである。カウント値を決定するためのカウント動作によって使用される指定された入力データ項目内の要素のサブセットは、このような場合、入力ベクトル内の複数のセグメントの中の１つのセグメントである。複数の入力データ項目のそれぞれは、１つ又は複数のセグメントを含み、カウント動作は、所与のセグメントを用いて実施される。その後、各基準要素がセグメント内の全入力要素の中の入力要素と合致する回数をカウントすることによって、各基準要素に対する各カウント動作が実施される。入力データ項目をセグメント化するこのアプローチにより、実施すべきカウント動作を実用可能に実装することが可能となり、言い換えれば、各入力要素と基準要素との全て（又はそれぞれ）の比較が実施されるが、これらの比較の、入力データ項目のセグメントへの区分けによって、ハードウェアの複雑さを管理可能に抑制することができる。
【００２６】
幾つかの実例では、データ処理回路は、制御信号にさらに応答して、複数のカウント動作を実施し、複数のカウント動作のそれぞれにおいて使用される基準値は、基準データ項目内の複数の基準要素の各基準要素における各基準値であり、データ処理回路は、入力データ項目の選択されたセグメントのコピーを生成するための入力データ項目コピー回路をさらに含み、データ処理回路は、制御信号に応答して、入力データ項目の選択されたセグメントに関する複数のカウント動作の第１のグループを実施し、且つ、入力データ項目の選択されたセグメントのコピーに関する複数のカウント動作の第２のグループを実施する。したがって、幾つかの実例では、基準データ項目内に含まれる基準要素の数は、選択されたセグメント内の入力要素の数よりも大きい。この状況では、複数のカウント動作がグループごとに実施されてよく、カウント動作の第１のグループは入力要素の選択されたセグメントに対して実施され、カウント動作の第２のグループは選択されたセグメントのコピーに対して実施される。例えば、装置は、入力データ項目のセグメントの整数倍の長さである基準データ項目の要素のセットとの並列比較を実施する機能を伴って提供されてもよく、この並列化は、入力データ項目のセグメントを整数倍の幅にわたってコピーすることによって活用することができる。例えば、ヒストグラム処理のコンテキストでは、このアプローチは、例えば入力データ項目のセグメントからのヒストグラム・ビン寄与の大規模なセットの並列カウントをサポートすることができ、ここでは、前記セグメントは前記大規模なセットの幅よりも短い、前記整数倍の長さである。
【００２７】
幾つかの実例では、基準データ項目内の複数の基準要素が連続的なロードによってメモリから取得される。各カウント動作に対する基準データ項目は、基準要素を含み、これは、場合によっては、メモリの連続したアドレスからロードされる。他の実例では、複数の基準要素がメモリ内の非連続的なアドレスに記憶されている場合に、基準データ項目内の複数の基準要素はロード収集によってメモリから取得される。他の実例では、基準データ項目は、１つ又は複数のレジスタから連続アクセスで取得される。さらに他の実例では、基準データ項目は１つ又は複数のレジスタから非連続アクセスで取得される。
【００２８】
幾つかの実例では、データ処理回路は、加算動作を実施するための加算回路をさらに含み、命令デコーダ回路が現在の加算ベクトルを指定する加算命令に応答して、カウント・データ項目内の各カウント要素の値を、現在の加算ベクトルの対応する要素内の値に加算し、その結果のデータ項目を出力するための、現在の加算ベクトルを用いた加算動作を実施するよう、加算回路を制御する。したがって、連続したカウント動作によって決定されたカウント・データ項目内のカウント要素は、現在の加算ベクトルに加算され得る。この現在の加算ベクトルは、例えばメモリからロードされてよく、現在のカウント・データ項目がこれに加算され、その後、メモリに書き戻される。
【００２９】
加算回路によって実施される加算動作は、カウント・データ項目の各カウント要素内のカウント値を、現在の加算ベクトルの現在の各加算要素内のそれぞれの現在の加算値に加算する。幾つかの実例では、現在の加算ベクトルは、複数の現在の加算データ項目を含み、そのそれぞれが、複数の現在の加算要素を含み、基準データ項目に対応する。そのため、複数の現在の加算データ項目が（メモリに書き戻される前に）加算されることを可能にすることによって、効率的な処理をサポートする。加算動作は、複数のカウント動作の完了に際して実施され得る。
【００３０】
幾つかの実例では、データ処理回路はレジスタ分散記憶回路をさらに含み、命令デコーダ回路が、分散先レジスタ、分散インデックス・ベクトル、及び分散データ項目を指定するレジスタ分散記憶命令に応答して、分散インデックス・ベクトルによって分散データ項目の対応する要素の値を含むと識別された分散先レジスタ内の複数のレジスタ要素配置のそれぞれを設定するための、レジスタ分散記憶処理を実施するよう、レジスタ分散記憶回路を制御する。標的型の方法でデータ処理装置のレジスタにアクセスすることは、効率的なデータ処理の目的で有用である。所与のレジスタの全体にアクセスすることが可能である一方で、例えば、レジスタのコンテンツを読み取り、前記コンテンツの選択部分を変更し、且つ、変更されたコンテンツをレジスタに書き戻すことによって、これらの実施例は、レジスタ内に保持された特定の要素のみがアクセスされる、より効率的で標的型のレジスタ・アクセスをサポートする。これを、本明細書では「分散動作」と称し、分散データ項目の要素を（必ずしも）連続的でないレジスタ回路内の複数のレジスタ要素配置に分散する。ターゲット・レジスタ要素配置は分散インデックス・ベクトルによって示され、分散インデックス・ベクトルの各分散インデックスは、対応する分散データ項目の値に設定されるべきレジスタ要素配置を示す。これにより、より効率的なレジスタ・アクセスがサポートされる。これは例えば、ヒストグラムのコンテンツが、レジスタ内に保持されているかに関わらず、指定されたヒストグラム・ビンのみが（（予測不可能な）入力データによって決定された通りに）アクセスされ、且つ、更新されるよう、非連続的にアクセスされ得る場合、ヒストグラム処理のコンテキストにおいて有用であり得る。これによって、より高速なヒストグラム処理がサポートされ得る。
【００３１】
幾つかの実例では、レジスタ分散記憶命令は、２つ以上の分散先レジスタを指定し、分散インデックス・ベクトルによって識別される複数のレジスタ要素配置は、２つ以上の分散先レジスタ内に含まれる。２つ以上の分散先レジスタを指定することによって、単一レジスタではなく複数のレジスタにわたってレジスタ分散動作を実施することが可能である。したがって、ヒストグラム・データを記憶する、又は蓄積する目的で、レジスタの高速アクセスをより効果的に活用することによって、データ処理、特にヒストグラム処理の効率をさらに向上させることが可能である。
【００３２】
少なくとも幾つかの実例は、命令をデコードするための命令デコーダ回路と、レジスタ分散記憶回路を含むデータ処理回路とを含み、命令デコーダ回路が分散先レジスタ、分散インデックス・ベクトル、及び分散データ項目を指定するレジスタ分散記憶命令に応答して、分散インデックス・ベクトルによって分散データ項目の対応する要素の値を含むと識別された分散先レジスタ内の複数のレジスタ要素配置のそれぞれを設定するための、レジスタ分散記憶処理を実施するよう、レジスタ分散記憶回路を制御する。
【００３３】
言い換えれば、本技術は、前述のレジスタ分散記憶命令が前述のカウント技術（及びそれらをサポートする装置）から独立して提供され得ることを提案する。この命令自体は、様々な他のコンテキストにおいて有用であり、即ち、前述したヒストグラム処理のコンテキストに限らず、演算が単にインクリメントするよりも複雑なデータ値の変更を伴う、如何なるコンテキストにおいても有用であり得る。さらに、このような特性（及び、これをトリガするレジスタ分散記憶命令）の提供はまた、レジスタ収集命令が提供され得る相補的なレジスタ収集特性を伴って有用に行われてもよく、そうすることで非連続的な要素（インデックス、ここでは収集インデックスによっても定義される）が指定されたレジスタから取得されることを可能とする。
【００３４】
幾つかの実例では、装置は収集インデックス生成回路をさらに含み、命令デコーダ回路が、複数の分散インデックス値を含む分散インデックス・ベクトルを指定する収集インデックス生成命令に応答して、各収集インデックス要素が各インデックスによって参照され、且つ、各レジスタ要素インデックス値を含む、複数の収集インデックス要素から成る収集インデックス・ベクトルを生成するための収集インデックス生成動作を実施するよう収集インデックス生成回路を制御し、前記生成動作が、複数の収集インデックス要素のそれぞれについて、各インデックスを複数の分散インデックス値のそれぞれと比較するための比較動作を実施し、比較動作が、合致条件の結果に基づいて、各収集インデックス要素のレジスタ要素インデックス値を条件的に設定し、合致条件が、複数の分散インデックス値のうちの１つが各インデックスに合致することを要求し、各収集インデックス要素の各レジスタ要素インデックス値が、合致条件を満たす最上位の分散インデックス要素のインデックスに設定される。
【００３５】
幾つかの実例では、分散インデックス・ベクトルに基づいて収集インデックスを生成するための収集インデックス生成回路が提供される。これは、異なるインデックスによって指示されたとしても、ソース・レジスタから見た分散が、宛先レジスタから見た収集と同等であるという理解に基づいている。分散インデックス・ベクトルは、少なくとも１つのレジスタ内のレジスタ要素配置を指定する値のセットであり、また、収集インデックス生成回路は、収集動作においてレジスタ要素の動作と同じ動作を実施するために代用される、同等の収集インデックスを生成するための生成動作を実施する。分散動作及び収集動作のどちらもが、選択された値を１つ又は複数のソース・レジスタから１つ又は複数の宛先レジスタにコピーする場合、この変換特性の提供によって、レジスタへの分散動作を、レジスタからの収集動作に置き換えることが可能となる。例えば、これは、特注のレジスタ分散回路を用意する価値があるとは考えられないが、それでもなおレジスタ分散が実施される可能性がある場合に有用となり得る。例えば、インデックス生成回路は比較的低コストで提供でき、より複雑な特注のレジスタ収集回路は再利用することができる。さらに、本技術の幾つかの実例では、ある配置に書き込まれた後の順序（正しい）値が、順序が遵守されない時に発生し得る、前の順序（不正な）値によって破損されていないことを保証しなければならない場合（「ｌａｓｔ−ｓｔоｒｅ−ｗｉｎｓ（最後の記憶が有効）」とも称する）に、ベクトル内の値のセットが記憶される順序が重要となり得る。この方式の実装の容易さは、レジスタ収集とレジスタ記憶とで異なり（例えば、後者を実装する方が難しいことがある）、それ故に、収集インデックス生成技術を使用するさらなる動機を供与する。
【００３６】
収集インデックス生成回路は、複数の収集インデックス要素のインデックスのそれぞれを複数の分散要素のそれぞれにおける値と比較する（インデックス値比較が実施される）よう配置される。複数の分散インデックス値の１つがそれぞれのインデックスと合致すれば、それぞれの収集インデックス要素が設定される。言い換えれば、分散インデックスの要素のコンテンツが収集インデックスの要素の連続したインデックスに合致すると、収集インデックスの当該要素のコンテンツは分散インデックスの要素の連続したインデックスを保持するよう設定される。２つ以上の合致がある場合、それぞれのインデックスに合致する値を有する最上位の分散インデックス要素がそれぞれの収集インデックス要素のそれぞれのレジスタ要素インデックス値として設定される。
【００３７】
少なくとも幾つかの実例は、命令をデコードするための命令デコーダ回路と、収集インデックス生成回路を含むデータ処理回路とを含み、命令デコーダ回路が、複数の分散インデックス値を含む分散インデックス・ベクトルを指定する収集インデックス生成命令に応答して、各収集インデックス要素が各インデックスによって参照され、且つ、各レジスタ要素インデックス値を含む、複数の収集インデックス要素から成る収集インデックス・ベクトルを生成するための収集インデックス生成動作を実施するよう、前記収集インデックス生成回路を制御し、前記生成動作が、前記複数の収集インデックス要素のそれぞれについて、前記各インデックスを前記複数の分散インデックス値のそれぞれと比較するための比較動作を実施し、前記比較動作が、合致条件の前記結果に基づいて、前記各収集インデックス要素のレジスタ要素インデックス値を条件的に設定し、前記合致条件が、前記複数の分散インデックス値のうちの１つが前記各インデックスに合致することを要求し、前記各収集インデックス要素の前記各レジスタ要素インデックス値が前記合致条件を満たす最上位の分散インデックス要素の前記インデックスに設定される、装置を提供する。
【００３８】
言い換えれば、本技術は、前述の収集インデックス生成命令が前述のカウント技術（及びそれらをサポートする装置）から独立して提供され得ることを提案する。この命令自体は、様々な他のコンテキストで有用であり、前述したヒストグラム処理のコンテキストのみに限らず、演算がレジスタ間での非連続的な値のセットをコピーすることを伴う、如何なるコンテキストにおいても有用となり得る。
【００３９】
少なくとも幾つかの実例は、命令をデコードするための命令デコード・プログラム・ロジックと、命令によって指定されたベクトル処理動作を、入力データ・ベクトル構造内のそれぞれの位置における複数の入力データ項目構造を含む入力データ・ベクトル構造に選択的に適用するためのデータ処理プログラム・ロジックとを含み、命令デコード・プログラム・ロジックが、入力データ項目構造を指定するカウント命令に応答して、基準データ項目構造内の基準要素における基準値に合致する値を有する、指定された入力データ項目構造内の要素のサブセットのうちの入力要素の数を示すカウント値を決定するためのカウント動作を実施するよう、データ処理プログラム・ロジックを制御するための制御信号を生成する、命令実行環境を提供するよう、ホスト・データ処理装置を制御するためのコンピュータ・プログラムを提供する。
【００４０】
少なくとも幾つかの実例は、前述した実例のいずれかによるコンピュータ・プログラムを非一時的な方法で記憶するコンピュータ可読記憶媒体を提供する。
【００４１】
幾つかの特定の実施例を、図面を用いて以下に説明する。
【００４２】
図１は、本技術の様々な実例を具現化することができるデータ処理装置１０を模式的に示す。本装置は、実行する命令のシーケンスに応答してデータ項目にデータ処理動作を実施する、データ処理回路１２を含む。これらの命令は、データ処理装置がアクセスできるメモリ１４から取得され、また、そのために、当業者がよく知る方法で、フェッチ回路１６が提供される。さらに、フェッチ回路１６によって取得された命令は、命令デコーダ回路１８に渡され、命令デコーダ回路１８が、処理回路１２に加えてレジスタ２０のセット及びロード／記憶ユニット２２の、構成の様々な態様及び動作を制御するように構成された制御信号を生成する。一般的に、データ処理回路１２は、パイプライン方式で構成され得るが、その詳細は本技術に関連しない。当業者は、図１が示す一般的な構成に精通していると考えられるため、単なる簡潔化のため、さらなる詳細説明は本明細書では割愛される。図１に示すように、レジスタ２０はそれぞれ、複数のデータ要素のための記憶部を含み、処理回路は、指定されたレジスタ内の指定されたデータ要素にデータ処理動作を適用するか、又は、指定されたレジスタ内のデータ要素の指定されたグループ（「ベクトル」）にデータ処理動作を適用することができる。特に、図示されたデータ処理装置は、レジスタ２０内に保持されたデータ要素に関するカウント動作の実施に関係し、そのさらなる説明を、幾つかの具体的な実施例を用いて以下に詳述する。命令の実行においてデータ処理回路１２によって要求されるデータ値及び、これらのデータ処理命令の結果として生成されるデータ値は、ロード／記憶ユニット２２によって、メモリ１４に書き込まれ、且つ、メモリ１４から読み出される。図１のメモリ１４は、本技術の命令を記憶することができるコンピュータ可読記憶媒体の例として一般的に見られ、典型的には、所定の命令シーケンス（「プログラム」）の一部であり、処理回路がこれを実行することにも注意されたい。ただし、処理回路は、ＲＡＭ、ＲＯＭ、ネットワーク・インタフェース経由などの、様々な異なるソースのプログラムにアクセスすることができる。本開示は、処理回路１２が実行することができる様々な新規な命令を説明し、また、後出の図面は、これらの命令の特性及び、これらの命令の実行をサポートするためのデータ処理回路の異なる形態などをさらに説明する。
【００４３】
図２は、１つの実施例におけるデータ処理装置の構成要素のさらなる詳細を模式的に示す。図２に示すデータ処理回路３０は、幾つかの具体的な構成要素、即ち、カウント回路３２、加算回路３４、レジスタ収集及び分散回路３６、及び、収集インデックス生成回路３８を含む。図示するように、これらの回路の項目は、レジスタ４０のセットのうちのレジスタにアクセス可能であり、このアクセスは、命令デコーダ回路４２によって生成された制御信号の制御下にある。図１に関連して上述したように、命令のシーケンスがフェッチ回路４６によってメモリ４８から取得され、インストラクタ・デコーダ回路４２に渡される一方、データ処理装置によってそのデータ処理動作を実施するために要求されるデータ値は、ロード／記憶ユニット４４によってメモリ４８から取得され、レジスタ４０に渡される。重ねて、これらの伝送は、命令デコーダ回路４２によって生成される適切な制御信号の制御の下で行われる。図２に示した回路の具体的な項目のそれぞれは、本技術の様々な形態をサポートするために提供され、後出の図面に関してより詳細に後述するが、一般的にこれらの回路の項目は、レジスタ４０内に保持されたデータ値のコンテンツにアクセスし、且つこれを変更し、その一部はロード／記憶ユニットによって指定されたメモリ・アドレスに書き戻される。
【００４４】
図３は、本説明で使用される幾つかの用語を視覚的に示すための、入力データ・ベクトルの図であり、入力データ・ベクトルが複数のセグメントを含み、各セグメントが複数の入力要素を含むことがわかる。図示された実例では、各セグメントは４つの入力要素を含む。そのため、例えば、入力データ・ベクトルが５１２ビット・ベクトルのレジスタの全コンテンツに対応する場合、このコンテンツは、４つの１２８ビットのセグメントとして扱われ、そのそれぞれが４つの３２ビット値（入力要素）を含む。
【００４５】
図４は、１つの実施例において、データ処理回路によって実施されるカウント動作を模式的に示す。特に、図示された入力データ項目は、入力データ項目のサブセット（サブストリング）を含む。また、図示された基準データ項目は、それぞれが基準値を含む複数の基準要素を含む。基準データ項目の各基準要素内の各基準値を、サブセットの各入力要素と比較することによって、カウント値が決定される。実装方法によって、これは連続処理又は並列処理であってよい。図示した実例を参照すると、基準値「０」を含む基準データ項目の１つ目の基準要素が、入力値「０」を含むサブセットの１つ目の入力要素と比較される場合、この比較は合致する。反対に、１つ目の基準要素が、サブセットの残りの入力値のそれぞれにおける入力値と比較される場合、合致するものは無い。したがって、入力要素のサブセット内には基準値「０」のインスタンスがただ１つであるため、カウント動作に対するカウント値が「１」と図示されている。
【００４６】
図５は、基準データ項目及び入力データ項目のサブセットに対応するカウント・データ項目を決定するための、１つの実例による複数のカウント動作の挙動を示す。特に、本実例では、指定された入力データ項目内の要素のサブセットが入力データ項目のセグメントであり、ここで図示された入力データ項目は入力値のセット［４  ２  ２  ０］を含み、４つの基準値のセットを含む基準データ項目は、基準値［０  １  ２  ３］を有することに注意されたい。図４を用いて上述されたカウント動作は、基準データ項目の各基準要素内の各基準値について実施される。基準値「１」を有する２つ目の基準要素については、サブセット内に入力値「１」を有する入力要素が無いため、当該基準要素に対するカウント値は「０」である。基準値「３」を有する最後の基準要素についても、これが当てはまる。しかし、入力値「２」を有するサブセット内の入力要素のインスタンスは２つあるため、「２」の値を有する３つ目の基準要素に対応するカウント値は、カウント値「２」となる。したがって、各カウント値は、各基準値に合致する入力値を含む入力要素の数を示す。図示された動作のセットは、幾つかの実施例において、さらに後述するような「合致セグメント」命令（本明細書では「ＭＡＴＣＨＳＥＧ」とも称する）に応答して実施される。これらの動作をサポートするよう提供されるカウント回路（図２の項目３２）は、基本的に１６個のコンパレータを有する行列（図５中央の４×４グリッドに対応する）を含み、入力データ項目要素のいずれかと基準データ項目要素のいずれかとの間で比較を行うことが可能であり、コンパレータの行の累積結果を用いて左端の列（即ち、カウント・データ項目）に示されたカウント値を提供する。
【００４７】
図６は、基準データ項目及び入力データ項目のサブセットに対応するカウント・データ項目を決定するための、１つの実例による複数のカウント動作の挙動を示す。特に、本実例では、各連続したカウント動作によって使用される、指定された入力データ項目内の要素のサブセットは、カウント動作間で異なるように示されることに注意されたい。図示するように、基準データ項目内の複数の基準要素は、第１の基準要素７１、第２の基準要素７２、第３の基準要素７３、及び第４の基準要素７４を含む。さらに、複数の入力要素が入力データ項目内に示され、第１の入力要素７５、第２の入力要素７６、第３の入力要素７７、及び第４の入力要素７８を含む。本実例では、入力データ項目及び基準データ項目が１対１に対応する、即ち、同一であることにも注意されたい。１つ目の基準要素７１に対応する１つ目のカウント動作は、１つ目の入力要素（値「０」を含む）のみを含む、指定された入力データ項目内の要素のサブセットを使用する。各連続するカウント動作について、各カウント動作によって使用される各要素の位置に基づいて、基準要素の範囲が調整される。例えば、基準値「２」を有する３つ目の基準要素７３に対応するカウント動作は、３つ目の入力要素７７によって制限される、指定された入力データ項目における要素のサブセット内の入力要素の数をカウントする。その結果、要素位置の範囲は、複数のカウント動作のそれぞれにおいて使用される各基準要素によって制限される。このアプローチは、入力データ項目と基準データ項目が同一である場合に、当該入力データ項目内の各入力データ項目値のインスタンス数を決定するようカウント動作を実施することを可能とする。実施される比較のセットをインクリメントすることにより、冗長な比較を回避し、必要な「インスタンス数」の効率的な決定を実施することが可能となる。入力データ項目の値を使用して特定の記憶部の配置を参照する場合、図示した動作は、装置が入力データ項目を解決して（合理化して）、これらの記憶部の配置に正しいアクセスが行われるメカニズムを提供する。例えば、入力データ項目が更新対象のヒストグラムのインデックスを表す場合、入力データ項目内の所与のインデックスの複数インスタンスを識別することによって、装置は記憶されたヒストグラムの所与のインデックスへのアクセスが（例えば、インデックスの順序を厳密に維持することによって）正しく行われることを保証することができる。図示した動作のセットは、さらに後述するように、幾つかの実施例において、「合致カウント」命令（本明細書では「ＭＡＴＣＨＣＮＴ」とも称する）に応答して実行される。さらに、図５に示したように、これらの動作をサポートするよう提供されるカウント回路（図２の項目３２）もまた、１６個のコンパレータの行列（図５中央の４×４グリッドに対応する）を含むことができる。実際には、カウント命令のどちらの形式にも応答する装置において、どちらの形式のカウントの実行にも、同じ１６個のコンパレータのセットを使用することができる。図６の例において（図５と対比して）、全ての入力データ項目要素と全ての基準データ項目要素との間で全ての可能な比較が実行される必要はなく、この目的���、制御信号は、使用されないコンパレータを一時的に無効化することができることは理解されよう。
【００４８】
前述したように、本技術はヒストグラム処理のコンテキストにおいて有用な適用例を見出すことができる。ここで、本技術がヒストグラム処理のコンテキストに適用される幾つかの実例を示す。ヒストグラム処理は、画像処理、コンピュータ・ビジョン処理、ソートなどのサーバ処理タスク、及びその他の多くの高性能コンピューティングのコンテキストなどの適用範囲に関連し得る。ヒストグラム処理の実行方法に大きく影響し得る１つの重要なパラメータが、ヒストグラムのサイズである。本明細書では「ヒストグラムのサイズ」は特に、ヒストグラムに含まれる異なるビンの数を意味する、ヒストグラムの「幅」を示す。しかし、各ビンに表されるべきデータのサイズは、当然ヒストグラムの全体幅にも寄与する。中規模の幅を有するヒストグラムであっても、ビンのそれぞれが大きな値を記憶する必要があれば、非常に大きな記憶容量を要することがある。同様に、多数のビンを有するヒストグラムであっても、ビンのそれぞれが小さい値のみを記憶する必要があれば、中規模の記憶容量のみを要することがある。本技術は、ヒストグラムが特に大きい場合には、ヒストグラム・エントリをメモリに記憶し、ヒストグラムへの更新は標的型メモリ・アクセスによって実行することが唯一実用的であることを解する。例えば、ヒストグラムの大きな断片を頻繁に取得、変更、及び上書きするのではなく、メモリからロードを収集し、記憶処理をメモリに分散することで特定のヒストグラム・エントリにアクセスし、これを変更することができる。レジスタ内に保持するにはなお大きすぎる「中規模」のヒストグラムも、メモリに記憶することができるが、これは連続的なストリーム形式でアクセス可能な程度に十分小さい可能性がある。最後に、本技術は、幾つかのヒストグラムは、レジスタ内で維持される（又は、少なくとも部分的に維持される）程度に十分小さい可能性があることを解し、このようなレジスタ内のヒストグラムの効率的な処理を可能とする技術を提供する。
【００４９】
図７は、メモリ８２に記憶された大規模なヒストグラム８０に関して実施されるデータ処理を模式的に示す。メモリ８２内に実際に記憶されているのは、それぞれがヒストグラム８０の各ビンに対する回数カウントを表すデータ値の大規模なセットであるが、分かり易くするため、そのグラフ表示を図７に図示していることは当然理解されよう。ヒストグラムにおける累積のためのデータ値を一時的に保持するデータ・バッファ８４も、メモリ８２に記憶されるものとして図示されている。ヒストグラムを更新するためのこれらのデータ値は、メモリから取得される必要はなく、例えば、装置のレジスタ内のデータ値の他の処理の結果であってもよい。図７は、この累積の実行を可能とするデータ処理を示す。データ項目８６は、データ・バッファ８４から受信され、これは、各ヒストグラム・ビンに追加されるべきカウント値８８のセットを生成するためのカウント動作の対象となる。データ項目８６はまた、データ項目８６を形成する４つのインデックスのセットについてのヒストグラム・エントリ（特定の記憶位置に保持されたビン・カウント）がデータ値９０のセットとしてレジスタにロードされる方法によって、メモリからレジスタへのロード収集の動作を制御する。カウント値８８のセット及びデータ値９０のセットは、（加算回路において）加算され、更新されたヒストグラム・エントリ９２のセットを生成する。これは、レジスタからメモリへの分散記憶の対象となり、更新されたヒストグラム・エントリ９２のセットがメモリ８２内の指定されたヒストグラム・エントリ（特定の記憶位置に保持されたビン・カウント）に記憶し直されるよう、データ項目８６によって制御される。
【００５０】
図８は、本技術の「ＭＡＴＣＨＣＮＴ」命令を使用してカウントするステップを実施する場合の、図７を用いて説明したヒストグラム処理の実例を模式的に示す。ヒストグラム・データ記憶部９４は、（大規模ヒストグラム８０が記憶される）メモリ８２に図示されている。ＭＡＴＣＨＣＮＴ命令の対象であり、ロード収集回路９８への入力を形成する入力データ項目９６は、データ・バッファ８４から受信される。これに応答して、ロード収集回路９８は、指定されたヒストグラム・エントリのセット１００をヒストグラムの指定されたビンから取得する。ＭＡＴＣＨＣＮＴ命令はカウント・ベクトル１０２を生成する。入力データ項目が反復値（１５）を有する場合、また、ＭＡＴＣＨＣＮＴ命令の実行において実施される複数のカウント動作がベクトルの最下位から最上位のインデックスにかけて進行する場合、１つ目の１５のインスタンスに対するカウント「１」は、２つ目のカウント「２」に置き換えられることに注意されたい。カウント値のセット１０２及びデータ値のセット１００はその後（加算回路において）加算され、更新されたヒストグラム・エントリのセット１０４を生成する。続いてこれが、分散記憶回路１０６によって実施される（データ項目９６によっても制御される）、レジスタからメモリへの分散記憶の対象となり、更新されたヒストグラム・エントリのセット１０４がメモリ８２内の指定されたヒストグラム・エントリ（指定された記憶位置に保持されたビン・カウント）に記憶し戻される。分散記憶回路１０６（及び、明示的に図示されていないが、このようなメモリ・アクセスに関わる任意の他の構成要素）は、前述したベクトルの最下位のインデックスから最上位のインデックスにかけて進行する順序を厳密に遵守するように構成され、ヒストグラム・インデックス１５に対応する記憶位置において、不正な（又は、少なくとも不完全な）ヒストグラム更新である８１が、正しいヒストグラム更新である８２によって置き換えられるか、又は上書きされることを保証することに注意されたい。
【００５１】
図９は、メモリ８２のヒストグラム記憶部１１０に記憶された「中規模」ヒストグラムに関して実施されるデータ処理を模式的に示す。図７の場合のように、メモリ８２内に実際に記憶されているのは、それぞれがこのヒストグラムの各ビンに対する回数カウントを表すデータ値の対応するセットであるが、分かり易くするため、そのグラフ表示を図９に図示している。図９では、１６個のビンを有する比較的限られた幅のヒストグラムが図示されていることに注意されたい。また、メモリ８２に記憶された図７と同一のデータ・バッファ８４が図示されている。図９は、ヒストグラムへの累積を可能とするための、（図７及び図８のデータ処理とは）異なるデータ処理のアプローチを示す。データ項目１１２はデータ・バッファ８４から（連続的なロードとして）ロードされ、「キー」（即ち、ヒストグラム・ビン）のセット１１３を表すよう伝送される。同時に、ヒストグラム・コンテンツ（例えば、図中のビン１２〜１５）の第１の部分をメモリから取得するためのロードを実行する。これは、処理に使用される２つのさらなる項目、即ち、基準キーのセット１１４及びヒストグラム・コンテンツ１１６の当該部分のコンテンツ、を提供する。入力データ・キー１１３及び基準キー１１４は、カウント回路１１８（図２の項目３２）内のＭＡＴＣＨＳＥＧ命令によってトリガされるカウント動作への２つの入力を形成する。これが、カウント値のセット１２０を生成し、この部分における既存ヒストグラム・コンテンツを表す値のセット１１６に加算される。その結果として更新されたヒストグラム・エントリのセット１１８は、メモリ８２への記憶対象となり、適切な部分に記憶し戻される。図９の実例の異なる形態においては、入力データ項目１１２のサイズ及び基準キーのセット１１４のサイズは同一である必要はないことに注意が必要である。ＭＡＴＣＨＳＥＧ動作の結果は、長さにおいて基準キーのセットと一致し、各基準キーの各カウントを示すが、入力データ項目は原則として任意の長さを有することができる。入力データ項目の長さが、カウント回路の並列カウント容量を十分に活用しない場合、例えば、カウント回路に、基準キーのセットと共に図示された回路の２倍の比較を実行する能力がある場合、全ての並列カウント容量が使用されるよう、入力データ項目１１２は、キーのセット１１３を提供する際に１回又は複数回コピー（複製）され得る。
【００５２】
図１０は、装置のレジスタに記憶される程度に小さいヒストグラムに関して実施されるデータ処理を模式的に示す。４つのベクトル・レジスタ１３０、１３１、１３２、及び１３３を図示する。これらのベクトル・レジスタのそれぞれの各要素は、３２個のビンにわたってヒストグラム・ビン・エントリを保持する。入力データ項目１４０は（カウント回路１４２における）ＭＡＴＣＨＣＮＴ動作の対象であり、また、レジスタ収集ルックアップ命令（ＴＢＬ）への入力を形成する。ＴＢＬによって、レジスタ収集回路（図２の項目３６）が、指定されたヒストグラム・エントリのセット１４６（現在の加算ベクトルとも称する）を、指定された非連続的なベクトル・レジスタ要素（ヒストグラムのビン）から取得する。ＭＡＴＣＨＣＮＴ動作は、カウント・ベクトル１４８を生成し、これが現在の加算ベクトル１４６に加算され、その結果としてデータ項目１５０を生成する。これが、レジスタ分散回路１０６（図２の項目３６）によって実施されるレジスタ分散記憶の対象となり、更新されたヒストグラム・エントリのセットを入力データ項目によって指定された非連続的なベクトル・レジスタ要素（ヒストグラムのビン）からに記憶し戻す。このようなレジスタ分散記憶は、命令ＳＴＢ（Ｓｔｏｒｅ−ｔо−ｔａｂｌｅ）によって起動されるが、この特定の実例では、分散が複数のレジスタに跨るため、ＳＴＢの異なる形態であるＳＴＢＸが使用される。入力データ項目内に反復するインデックス（即ち、１５）がある場合（図１０の実例に図示）、レジスタ分散記憶は、入力データ項目インデックスの右から左（インデックスの最下位から最上位）の順序を遵守し、正しく更新されたヒストグラム・エントリ（Ｂ＋２）が前の不正な更新（Ｂ＋１）によって破損されないことを保証しなければならないことに注意されたい。
【００５３】
図１１は、図１０と同一のヒストグラム、即ち、４つのベクトル・レジスタ１３０、１３１、１３２、及び１３３にわたって記憶されるヒストグラムに関して実施されるデータ処理を模式的に示す。ただし、本実例では、ヒストグラムは連続アクセスのアプローチを採用できるほど十分に小さいと見なし、各ベクトル・レジスタのコンテンツは連続ユニット１６２として順にアクセスされ、入力データ項目に基づいて必要に応じて更新され、且つ、各ベクトル・レジスタに書き戻される。さらに、本実例では、ＭＡＴＣＨＳＥＧ動作の容量が、ベクトル・レジスタの長さの半分の長さの基準データ項目に対するものである場合、アクセスされる各ベクトル・レジスタの内容もまた、２つの部分（２等分）に分けて繰り返し処理される。したがって、入力データ項目１６０は、基準入力を形成する現在のベクトル・レジスタ・コンテンツ１６２の各部分と併せて、（カウント回路１４２における）ＭＡＴＣＨＳＥＧ動作の対象となる。ＭＡＴＣＨＳＥＧ動作は、カウント・ベクトル１６４を生成し、これがベクトル・レジスタ・コンテンツ１６２の現在の部分に加算され、結果としてデータ項目１６６を生成する。もう一方の部分まで完了すると、これがベクトル・レジスタ１３０、１３１、１３２、及び１３３のうちの適切なベクトル・レジスタに記憶される。
【００５４】
図１２は、１つの実施例において、ＧＥＮＩＤＸ命令に応答して、収集インデックス生成回路（例えば、図２の項目３８）によって実施される収集インデックス生成動作を示す。分散要素［２  ３  ０  ３］を含む分散インデックス１８０が提供され、収集インデックス生成命令（ＧＥＮＩＤＸ）が、図示された収集インデックス１８２を生成させる。図１２の下部を参照すると、分散インデックス１８０を用いる分散、又は、収集インデックス１８２を用いる収集のいずれかを示す、レジスタからレジスタへの、要素の対応する伝送が図示されている。分散インデックスから収集インデックスを生成する過程は、図１３のフロー図を用いてより詳細に後述する。要素の伝送を示す図１２の下部を参照すると、図１０のＳＴＢに関して上述したものと類似する問題、即ち、ループ並列化の理由から、生成されたインデックスの順序が、インデックスにおける要素の正しい順序（即ち、上位／下位のインデックスを優先する）を遵守しなければならないという問題が発生することにも注意されたい。また、分散インデックス内でインデックスを振られていない要素（例えば、図１２の実例における要素１）について、収集インデックスを使用するレジスタ収集がこのような要素のいずれも破損しないことを保証するよう注意する必要がある。これは、叙述関数の使用（例えば、収集インデックス１８２の使用によって、収集先のレジスタの要素１を変更できないように、効果的に特定要素の変更の「スイッチを切る」こと）によって、又は、既知の範囲外／最大の値を収集インデックスのこの要素に割り当てることによって（収集動作による範囲外／最大の値への応答が、当該対象コンテンツを変更しないことがわかっている場合）、解決され得る。
【００５５】
図１３は、１つの実例において分散インデックスから収集インデックスを生成する際に実施されるステップを示すフロー図である。フローは、分散インデックス及び生成された収集インデックスを作成するべき宛先を指定する、ＧＥＮＩＤＸ命令を用いたステップ２００から開始する。外側のループはステップ２０２で開始され、生成される収集インデックス配列内の全要素ＩＤについて反復する。内側のループは、ステップ２０４で開始され、処理される分散インデックスの全要素ＩＤについて反復する。続いて、ステップ２０６において、現在の分散インデックス要素に記憶された値（即ち、記憶された値であって、要素のＩＤではない）が収集インデックスの現在の要素ＩＤに合致するかどうかを判定する。合致する場合、フローは、ステップ２０８を介して進み、現在の収集インデックス要素に当該分散インデックス要素ＩＤが入力される。合致しない場合、フローは直接ステップ２１０に進み、分散インデックス要素ＩＤについて反復を継続する。その後のステップ２１２は、収集インデックス要素ＩＤについて反復を継続する。外側のループが完了すると、フローはステップ２１４で終了し、収集インデックスの生成は完了する。
【００５６】
図１４は、１つの実例による装置を動作させる方法のフロー図を示す。処理はステップ１０００から開始する。基準データ項目はステップ１００１でロードされる。第１の（次の）入力データ項目がステップ１００２でロードされる。処理は、ステップ１００３で次の基準要素を選択することで継続する。ステップ１００４では、カウント動作が実施され、基準値が、指定された入力データ項目における要素のサブセットの各入力要素内のそれぞれの値に合致する回数を示すカウント値を決定する。ステップ１００５は、現在の基準要素が最後の基準要素であるかを判定する。最後の基準要素でなければ、ステップ１００５の条件を満たすまでステップ１００３〜１００４が繰り返される。ステップ１００５の条件を満たせば、現在の加算ベクトルがステップ１００６でロードされ、ステップ１００７において、各カウント要素の値を現在の加算ベクトルの対応する要素に記憶された値に加算する加算動作が実施される。次に、ステップ１００８において、結果としてのデータ項目が現在の加算ベクトルの配置に記憶される。最後に、ステップ１００９において、ステップ１００２から１００８で使用した入力データ項目が、入力ベクトル内で処理される最後の入力データ項目であるかを判定する。ステップ１００９の条件を満たさなければ、ステップ１００２から１００８が繰り返される。ステップ１００９の条件を満たせば、本方法はステップ１０１０で終了する。
【００５７】
図１５は、使用され得るシミュレータ実装を示す。前述した実施例が、関係する技術をサポートする特定の処理ハードウェアを動作させるための装置及び方法に関して本発明を実施する一方、本明細書に記載する実施例に従って、コンピュータ・プログラムの使用によって実装される命令実行環境を提供することも可能である。このようなコンピュータ・プログラムは、ハードウェア・アーキテクチャのソフトウェア・ベースでの実装を提供する限りにおいて、しばしばシミュレータと称される。シミュレータ・コンピュータ・プログラムの様々な形態には、エミュレータ、仮想マシン、モデル、及び、ダイナミック・バイナリ・トランスレータを含むバイナリ・トランスレータが含まれる。典型的に、シミュレータ実装は、ホスト・プロセッサ７３０上で稼働することができ、任意で、シミュレータ・プログラム７１０をサポートするホスト・オペレーティング・システム７２０を実行する。幾つかの構成では、ハードウェアと、提供される命令実行環境との間に、複数のシミュレーション層があってもよく、且つ／又は、同一ホスト・プロセッサ上に提供される複数の異なる命令実行環境があってもよい。従来、リーズナブルな速度で実行するシミュレータ実装を提供するために強力なプロセッサが必要とされてきたが、このようなアプローチは、互換性又は再利用の理由で別のプロセッサにネイティブなコードを実行する要求がある場合など、特定の状況で正当化されることがある。例えば、シミュレータ実装は、ホスト・プロセッサ・ハードウェアによってサポートされていない追加機能を有する命令実行環境を提供するか、又は、典型的には、異なるハードウェア・アーキテクチャに関する命令実行環境を提供することができる。シミュレーションの概要は、「Ｓｏｍｅ  Ｅｆｆｉｃｉｅｎｔ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｓｉｍｕｌａｔｉｏｎ  Ｔｅｃｈｎｉｑｕｅｓ」、Ｒｏｂｅｒｔ  Ｂｅｄｉｃｈｅｋ、Ｗｉｎｔｅｒ  １９９０  ＵＳＥＮＩＸ  Ｃｏｎｆｅｒｅｎｃｅ、５３〜６３頁に記載されている。
【００５８】
特定のハードウェア構成又は特性に関して前述された実施例の範囲において、シミュレートされた実施例では、適切なソフトウェア構成又は特性によって同等の機能性が提供されてもよい。例えば、特定の回路が、シミュレートされた実施例においてコンピュータ・プログラム・ロジックとして実装されてもよい。同様に、レジスタ又はキャッシュなどのメモリ・ハードウェアが、シミュレートされた実施例においてソフトウェア・データ構造として実装されてもよい。前述した実施例で言及したハードウェア要素のうちの１つ又は複数がホスト・ハードウェア上にある（例えば、ホスト・プロセッサ７３０）場合、幾つかのシミュレートされた実施例が適切にホスト・ハードウェアを使用してもよい。
【００５９】
このシミュレータ・プログラム７１０は、コンピュータ可読記憶媒体（非一時的な媒体であってよい）に記憶されてよく、ターゲット・コード７００（アプリケーション、オペレーティング・システム、及び、図２に示すハイパーバイザを含んでよい）にプログラム・インタフェース（命令実行環境）を提供するが、このインタフェースは、シミュレータ・プログラム７１０によってモデル化されるハードウェア・アーキテクチャのアプリケーション・プログラム・インタフェースと同様である。したがって、前述のカウント命令、レジスタ分散記憶命令、及び、収集インデックス生成命令を含む、ターゲット・コード７００のプログラム命令は、シミュレータ・プログラム７１０を用いた命令実行環境内から実行されてよく、実際には前述した装置２のハードウェア特性を備えていないホスト・コンピュータ７３０が、これらの特性をエミュレートすることができる。
【００６０】
包括的に要約すると、カウント動作を実施するための装置及び、装置を動作させる方法が提供される。命令デコーダ回路は、入力データ項目を指定するカウント命令に応答して、カウント動作を実施するようデータ処理回路を制御するための制御信号を生成する。カウント動作は、基準データ項目における基準要素内の基準値に合致する値を有する、指定された入力データ項目内の要素のサブセットのうちの入力要素の数を示すカウント値を決定する。入力データ項目に対応するカウント・データ項目を決定するために、複数のカウント動作が実施されてもよい。レジスタ分散記憶命令、収集インデックス生成命令、及びこれらに応答するそれぞれの装置と併せて、シミュレータ実装も提供される。
【００６１】
本願において、用語「〜ように構成される」は、装置の構成要素が、所定の動作を行うことができる構成を有することを意味するために使用される。この文脈で、「構成」は、ハードウェア又はソフトウェアの相互接続の配置又は方法を意味する。例えば、装置が所定の動作を提供する専用ハードウェアを備えることができるか、又は、プロセッサ若しくはその他の処理デバイスがその機能を実施するようプログラムされ得る。用語「〜ように構成される」は、装置の構成要素が所定の動作を提供するよう、何らかの方法で変更されなければならないことを含意するものではない。
【００６２】
本明細書に、本発明を説明する実施例を、添付図面を用いて詳述したが、本発明はこれらの正確な実施例に限定されるものではなく、添付された特許請求の範囲によって定められた本発明の範囲及び意図から逸脱することなく、当業者による様々な変更、追加、及び改良が成され得ることを理解されたい。例えば、本発明の範囲から逸脱することなく、従属請求項の特性と、独立請求項の特性を様々に組み合わせることができる。
【図１】
2020529658.tif 000003
【図２】
2020529658.tif 000004
【図３】
2020529658.tif 000005
【図４】
2020529658.tif 000006
【図５】
2020529658.tif 000007
【図６】
2020529658.tif 000008
【図７】
2020529658.tif 000009
【図８】
2020529658.tif 000010
【図９】
2020529658.tif 000011
【図１０】
2020529658.tif 000012
【図１１】
2020529658.tif 000013
【図１２】
2020529658.tif 000014
【図１３】
2020529658.tif 000015
【図１４】
2020529658.tif 000016
【図１５】
2020529658.tif 000017
【国際調査報告】
2020529658.tif 000018
2020529658.tif 000019
2020529658.tif 000020
2020529658.tif 000021