特許
J-GLOBAL ID:201103051942521330

ソート機能を有するSIMD型マイクロプロセッサ

発明者:
出願人/特許権者:
代理人 (1件): 青山 葆
公報種別:特許公報
出願番号(国際出願番号):特願2001-103145
公開番号(公開出願番号):特開2002-297377
特許番号:特許第3955741号
出願日: 2001年04月02日
公開日(公表日): 2002年10月11日
請求項(抜粋):
【請求項1】複数のプロセッサエレメントを有するSIMD型マイクロプロセッサであって、 各プロセッサエレメントの備える特定のレジスタに格納される値と、オペランド指示されたソースレジスタに格納される値との、大小比較を行う第1のインストラクションにて、 比較の結果、大きい方のデータを該特定のレジスタに格納し、 小さい方のデータを、ソースレジスタに格納するか若しくはソースレジスタ以外のオペランド指示されたディスティネーションレジスタに格納し、 更に、 各プロセッサエレメントの備える特定のレジスタに格納される値と、オペランド指示されたソースレジスタに格納される値との、大小比較を行う第2のインストラクションにて、 比較の結果、小さい方のデータを該特定のレジスタに格納し、 大きい方のデータを、ソースレジスタに格納するか若しくはソースレジスタ以外のオペランド指示されたディスティネーションレジスタに格納することを特徴とするSIMD型マイクロプロセッサを 利用するソート処理方法であって、 各プロセッサエレメントにて各プロセッサエレメントに備わるn個(nは4以上の自然数)の、第1の汎用レジスタから第n番目の汎用レジスタを、ソートバッファとして使用し、 上記ソートバッファにおいては、第1番目の汎用レジスタから第n番目の汎用レジスタへ大きい数値から順に格納し、 よって、各プロセッサエレメントにて、n個のデータをソート処理する方法において、 (1)1番目の比較対象データを特定のレジスタにロードする、工程1と、 (2)2番目の比較対象データと特定のレジスタのデータとの、第1のインストラクションの演算を行い、第n番目の汎用レジスタには小さい方のデータを書き戻し、特定のレジスタには大きい方のデータを残す、工程2と、 (3)3番目の比較対象データと特定のレジスタのデータとの、第2のインストラクションの演算を行い、第(n-2)番目の汎用レジスタには大きい方のデータを書き戻し、特定のレジスタには小さい方のデータを残し、 続いて、第n番目の汎用レジスタのデータと特定のレジスタのデータとの、第2のインストラクションの演算を行い、第(n-1)番目の汎用レジスタには大きい方のデータを書き戻し、特定のレジスタには小さい方のデータを残す、工程3と、 (4)4番目の比較対象データと特定のレジスタのデータとの、第1のインストラクションの演算を行い、第n番目の汎用レジスタには小さい方のデータを書き戻し、特定のレジスタには大きい方のデータを残し、 続いて、第(n-1)番目の汎用レジスタのデータと特定レジスタのデータとの、第1のインストラクションの演算を行い、第(n-1)番目の汎用レジスタに小さい方のデータを書き戻し、特定のレジスタには大きい方のデータを残し、 更に続いて、第(n-2)番目の汎用レジスタのデータと特定レジスタのデータとの、第1のインストラクションの演算を行い、第(n-2)番目の汎用レジスタに小さい方のデータを書き戻し、特定のレジスタには大きい方のデータを残す、工程4と、 (5)(2i-1)番目(iは3以上の自然数)の比較対象データと特定のレジスタのデータとの、第2のインストラクションの演算を行い、第[n-(2i-2)]番目の汎用レジスタには大きい方のデータを書き戻し、特定のレジスタには小さい方のデータを残し、 続いて、第[n-(2i-4)]番目の汎用レジスタのデータと特定のレジスタのデータとの、第2のインストラクションの演算を行い、第[n-(2i-3)]番目のレジスタには大きい方のデータを書き戻し、特定のレジスタには小さい方のデータを残し、 この後、同様にソートバッファにて1つずつ序数の大きい汎用レジスタに移行しつつ、ソートバッファの汎用レジスタのデータと特定のレジスタのデータとの、第2のインストラクションの演算を行い、大きい方のデータを1つ序数が小さい汎用レジスタに書き戻すことを繰り返し、最後に第n番目の汎用レジスタのデータと特定のレジスタのデータとの、第2のインストラクションの演算を行い、第(n-1)番目の汎用レジスタに大きい方のデータを書き戻し、特定のレジスタには小さい方のデータを残す、工程5と、 (6)2i番目の比較対象データと特定のレジスタのデータとの、第1のインストラクションの演算を行い、第n番目の汎用レジスタには小さい方のデータを書き戻し、特定のレジスタには大きい方のデータを残し、 続いて、第(n-1)番目の汎用レジスタのデータと特定のレジスタのデータとの、第1のインストラクションの演算を行い、第(n-1)番目の汎用レジスタに小さい方のデータを書き戻し、特定のレジスタには大きい方のデータを残し、 この後、同様にソートバッファにて1つずつ序数の小さい汎用レジスタに移行しつつ、ソートバッファの汎用レジスタのデータと特定のレジスタのデータとの、第1のインストラクションの演算を行い、小さい方のデータを同じ汎用レジスタに書き戻すことを繰り返し、最後に第[n-(2i-2)]番目の汎用レジスタのデータと特定のレジスタのデータとの、第1のインストラクションの演算を行い、第[n-(2i-2)]番目の汎用レジスタに小さい方のデータを書き戻し、特定のレジスタには大きい方のデータを残す、工程6と、 を含み、 工程1、工程2、工程3及び工程4を実施し、その後、 工程5及び工程6を、両工程が一回実施される毎にiを1ずつインクリメントしながら、比較対象データがn番目のものになるまで継続し、 nが偶数の場合は、ソートバッファの最大値の端部にてソート処理を終えて終了し、一方、nが奇数の場合は、ソートバッファの最小値の端部にてソート処理を終えて終了する、 ソート処理方法。
IPC (2件):
G06F 9/305 ( 200 6.01) ,  G06F 9/38 ( 200 6.01)
FI (2件):
G06F 9/30 340 C ,  G06F 9/38 370 A
引用特許:
審査官引用 (1件)
  • SIMDプロセッサ
    公報種別:公開公報   出願番号:特願平6-164333   出願人:三菱電機株式会社

前のページに戻る