(57)【要約】単一命令多重データ・マイクロプロセッサのためのベクトル並べ換えシステム（１００）が１組のベクトル・レジスタを有し、該１組のベクトル・レジスタがベクトルを並べ換え論理（１２０）に供給し、次いでそれを否定ブロック（１３０）に供給し、そこにおいてそれらベクトルは、１組の制御レジスタ（１４０）のうちの選択された制御レジスタから受け取った制御パラメータに従って並べ替えられ且つ選択的に否定される。制御装置（１４５，１５０）が、どの制御レジスタが制御パラメータを与えるべきかを選択する。このようにして、別々の並べ換え命令が、必要でなく、また実行される必要がなく、更に、並べ換えパラメータが、ベクトル・レジスタ（１１０）に格納される必要がない。これは、より高い性能、より小さいベクトル・レジスタ・ファイル、従って、マイクロプロセッサのより小さいサイズ及びより良いプログラム・コード密度をもたらす。
2006504165.tif 000002
【特許請求の範囲】
【請求項１】
単一命令多重データ・マイクロプロセッサにおけるベクトル並べ換えのための装置であって、
ベクトルを少なくとも１つのベクトル・レジスタから制御パラメータに従って受け取り且つ並べ替えるよう結合された並べ換え論理ブロックと、
それぞれが制御パラメータを前記並べ換え論理ブロックに選択的に与えるよう結合された、複数の制御レジスタと、
前記複数の制御レジスタと前記並べ換え論理ブロックとの間に結合された制御手段であって、前記複数の制御レジスタのうちの１つを選択し、且つ制御パラメータを当該複数の制御レジスタのうちの前記の選択された制御レジスタから前記並べ換え論理ブロックに与えるよう構成された制御手段と
を備える装置。
【請求項２】
単一命令多重データ・マイクロプロセッサ・ベクトル並べ換えシステムであって、
少なくとも１つのベクトル・レジスタと、
ベクトルを前記少なくとも１つのベクトル・レジスタから制御パラメータに従って受け取り且つ並べ替えるよう結合された並べ換え論理ブロックと、
それぞれが制御パラメータを前記並べ換え論理ブロックに選択的に与えるよう結合された、複数の制御レジスタと、
前記複数の制御レジスタと前記並べ換え論理ブロックとの間に結合された制御手段であって、前記複数の制御レジスタのうちの１つを選択し、且つ制御パラメータを前記複数の制御レジスタのうちの前記の選択された制御レジスタから前記並べ換え論理ブロックに与えるよう構成された制御手段と
を備えるシステム。
【請求項３】
前記制御手段に結合され、且つベクトルを前記並べ換え論理ブロックから、前記制御手段から受け取った制御パラメータに従って受け取り且つ選択的に否定するよう結合された否定ブロックを更に備え、
前記制御パラメータが、並べ換えパラメータ及び否定パラメータを含む
請求項１の装置、又は請求項２のシステム。
【請求項４】
前記制御手段が、前記複数の制御レジスタのうちの１つを選択するため順番を与えるよう構成された少なくとも１つのカウンタを含む請求項１から３のいずれか一項に記載の装置又はシステム。
【請求項５】
単一命令多重データ・マイクロプロセッサにおけるベクトル並べ換えのための方法であって、
並べ替えられるべきベクトルを与えるステップと、
複数の制御レジスタのうちの１つを選択するステップであって、各制御レジスタが並べ換え特性を決定するためのパラメータを含む、前記選択するステップと、
ベクトルを前記の選択された制御レジスタのパラメータに従って並べ替えるステップと
を備える方法。
【請求項６】
前記の制御レジスタ・パラメータがまた、否定特性を決定するため用いられ、
並べ替える前記ステップが更に、ベクトルを前記の選択された制御レジスタのパラメータに従って選択的に否定するステップを含む
請求項５記載の方法。
【請求項７】
選択する前記ステップが更に、前記複数の制御レジスタの順番に追従するステップを含む請求項５又は６記載の方法。
【請求項８】
前記順番が、１組の固定の制御パラメータを通して自動の順序付けすることを含む請求項４の装置又はシステム、又は請求項７記載の方法。
【請求項９】
前記順番が、１組のプログラム可能な制御パラメータを通して自動の順序付けすることを含む、請求項４記載の装置又はシステム、又は請求項７記載の方法。
【請求項１０】
前記順番が循環的である請求項４、７、８及び９のいずれか一項に記載の装置、システム又は方法。
【請求項１１】
単一命令多重データ・マイクロプロセッサにおけるベクトル並べ換えのための装置であって、添付図面の図２を参照して明細書で実質的に説明された装置。
【請求項１２】
単一命令多重データ・マイクロプロセッサにおけるベクトル並べ換えのためのシステムであって、添付図面の図２を参照して明細書で実質的に説明されたシステム。
【請求項１３】
単一命令多重データ・マイクロプロセッサにおけるベクトル並べ換えのための方法であって、添付図面の図２を参照して明細書で実質的に説明された方法。
【発明の詳細な説明】
【技術分野】
【０００１】
［発明の分野］
本発明は、単一命令多重データ（ＳＩＭＤ）能力を有するマイクロプロセッサに関する。
【０００２】
［発明の背景］
この発明の分野において、ＳＩＭＤアーキテクチャを有するマイクロプロセッサは、ベクトル・オペランドを処理するよう構成されている。ＳＩＭＤマイクロプロセッサ上のディジタル信号処理アルゴリズムの効率を改善するためベクトル・オペランドの要素を並べ換える（当該要素の順序を再配置する）命令を設けることが知られている。並べ換えパラメータは、実行されるべき並べ換えの特性を決定するため必要とされる。
【０００３】
しかしながら、このアプローチは、ベクトル並べ換えが余分の命令を必要とする場合、性能が低減する欠点を有する。並べ換えパラメータ、及び／又は並べ替えられたベクトル・オペランドが、マイクロプロセッサのベクトル・レジスタ・ファイル内で余分なレジスタを必要とする場合、大きなレジスタ・ファイルが必要となる。これは、マイクロプロセッサの規模を増大させ、そしてプログラム・コード密度に対して負の影響を与える。
【０００４】
従って、上記の欠点を軽減し得るＳＩＭＤマイクロプロセッサにおけるベクトル並べ換えのための装置、システム及び方法に対する必要性が存在する。
【０００５】
［発明の概要］
本発明の第１の局面に従って、請求項１に記載のＳＩＭＤマイクロプロセッサにおけるベクトル並べ換え（ｖｅｃｔｏｒ  ｐｅｒｍｕｔａｔｉｏｎ）のための装置が提供される。
【０００６】
本発明の第２の局面に従って、請求項２に記載のＳＩＭＤマイクロプロセッサにおけるベクトル並べ換えのためのシステムが提供される。
本発明の第３の局面に従って、請求項５に記載のＳＩＭＤマイクロプロセッサにおけるベクトル並べ換えのための方法が提供される。
【０００７】
上記装置は更に、制御手段に結合された否定ブロックであって、制御手段から受け取った制御パラメータに従ってベクトルを並べ換え論理ブロックから受け取り且つ選択的に否定するよう結合された上記否定ブロックを備えることが好ましく、そこにおいて、上記制御パラメータが、並べ換えパラメータ（ｐｅｒｍｕｔａｔｉｏｎ  ｐａｒａｍｅｔｅｒｓ）及び否定パラメータを含む。
【０００８】
上記制御手段が、複数の制御レジスタのうちの１つを選択するため順番を与えるよう構成された少なくとも１つのカウンタを含むことが好ましい。
また、否定特性を決定するための制御レジスタ・パラメータを用いることが好ましく、そして並べ替えるステップが更に、ベクトルを前記の選択された制御レジスタのパラメータに従って選択的に否定するステップを含む。選択するステップが更に、複数の制御レジスタの順番に追従するステップを含むことが好ましい。
【０００９】
上記順番が、１組の固定の制御パラメータを通しての自動の順序付けを含むことが好ましい。代替として、上記順番が、１組のプログラム可能な制御パラメータを通しての自動の順序付けを含むことが好ましい。上記順番が循環的であることが好ましい。
【００１０】
このようにして、別々の並べ換え命令が必要でなく、また実行される必要がなく、そして並べ換えパラメータをベクトル・レジスタに格納する必要がない、ＳＩＭＤマイクロプロセッサにおけるベクトル並べ換えのための装置、システム及び方法が提供される。これは、より高い性能を、そしてより小さいベクトル・レジスタ・ファイルを、従って、マイクロプロセッサのより小さいサイズ及びより良いプログラム・コード密度をもたらす。
【００１１】
本発明を組み込むＳＩＭＤマイクロプロセッサにおけるベクトル並べ換えのための１つの装置、システム及び方法が、ここで、一例としてのみ、添付図面を参照して説明される。
【００１２】
［好適な実施形態の説明］
ＳＩＭＤアーキテクチャの分野内において、ベクトル・オペランドの並べ換え及びオプション（任意）の否定演算が、或る一定の命令のサイド・オペレーション（ｓｉｄｅ  ｏｐｅｒａｔｉｏｎｓ）として実行され得て、そしてそれ自体、別々の命令又は実行サイクルを必要としないことが知られている。
【００１３】
しかしながら、プログラマは、そのような並べ換えがいつそしてどのように実行されるかの制御を必要とする。いつ並べ換えが実行されるかを制御するため、修飾子が必要となる。これらの修飾子としては次のものがあり得る。即ち、
−使用可能化／使用不能化機構（イネーブル／ディスエーブル機構）
−ベクトル・レジスタ番号
−命令タイプ
−その他。
【００１４】
並べ換えが実行される仕方を制御するため、並べ換えパラメータ、発信元／宛先オペランド、又はオプションの否定演算が、必要となる。そのような並べ換えパラメータは、固定（特定のアルゴリズムに対してハードワイヤード化）されるか、又はプログラム可能（レジスタに格納されている）であるかのいずれかであることができる。
【００１５】
ここで図１を参照すると、ＳＩＭＤアーキテクチャを備える従来技術のマイクロプロセッサ５が示されている。マイクロプロセッサ５のベクトル・レジスタ・ファイル１０は、ベクトル・オペランドを並べ換え論理ブロック２０の中に供給する。ベクトル・レジスタ・ファイル１０は、所定数のレジスタを有する。最近の縮小命令セット・チップ（ＲＩＳＣ）マシンの汎用及び／又はベクトル・レジスタの数は、通常、２の累乗の整数であり、８／１６／３２／６４は、最も一般的な数である。図１に示される例においては、３２個の１２８ビット・レジスタがあり、それぞれのレジスタは、４個の３２ビット素子を有する。最後のレジスタ（レジスタ１５）は、矢印１７により示されるように、並べ換え論理ブロック２０を制御するための制御パラメータを格納するため用いられる。
【００１６】
ここで図２を参照すると、ＳＩＭＤアーキテクチャを備えるマイクロプロセッサ１００が示されている。ベクトル・レジスタ・ファイル１１０の読み出しポートが、ベクトル・オペランドを並べ換え論理ブロック１２０の中に供給し、そしてそれから否定論理ブロック１３０の中に供給する。ベクトル・レジスタ・ファイル１１０は、所定数のレジスタを有する。図２に示される例においては、８個の１２８ビット・レジスタが存在し（そのうちの５個が図示されている。）、それぞれのレジスタは、４個の３２ビット素子を有する。
【００１７】
出力は、典型的には、ベクトル論理演算装置（ＡＬＵ）（図示せず）のためのソース・オペランド（源オペランド）として用いられる。ベクトル・レジスタ・ファイル１１０のベクトルに対して実行されるべき並べ換えに関連する並べ換え及び否定パラメータは、制御パラメータとして一連の制御レジスタ１４０に格納される。制御ブロック１４５が、一連の制御レジスタ１４０のそれぞれに結合され、そして更に、制御パラメータをそれから与えて、並べ換え論理ブロック１２０及びオプションの否定論理ブロック１３０を制御するよう結合される。カウンタ１５０がまた、制御ブロック１４５に結合される。当該カウンタ１５０は、上記一連の制御レジスタ１４０のうちのどれが制御ブロック１４５を介して並べ換え論理ブロック１２０及びオプションの否定論理ブロック１３０にいずれの一時に結合されるかを決定するよう構成されている。
【００１８】
動作において、マイクロプロセッサ１００は、カウンタ１５０が第１の制御レジスタ１４１のような、一連の制御レジスタ１４０のうちの所与の制御レジスタを指し示すことで開始する。並べ換えが実行されるべきとき（全ての修飾子が真）、第１の制御レジスタ１４１に格納されている制御パラメータ（並べ換え及び否定パラメータ）が、制御ブロック１４５を介して並べ換え論理ブロック１２０及びオプションの否定論理ブロック１３０に与えられる。次いで、ベクトル・レジスタ・ファイル１１０のコンテンツが、並べ換え論理ブロック１２０及びオプションの否定論理ブロック１３０により、これらの制御パラメータに従って処理される。オプションの否定論理ブロック１３０は任意であるが、このオプションの否定論理ブロック１３０は、ベクトル・レジスタ・ファイル１１０のコンテンツに対して否定作用を、受け取られた制御パラメータに従って実行しても、またしなくとも良い。
【００１９】
ひとたび処理されると、出力ベクトル・ソース・オペランドは、ＡＬＵ（図示せず）に送られ、そしてカウンタ１５０が増分される。これは、制御ブロック１４５に、次の並べ換えのため一連の制御レジスタ１４０のうちの次の制御レジスタ（例えば、第２の制御レジスタ１４２のようなもの）を選択するようにさせる。カウンタ１５０は、一連の制御レジスタ１４０のそれぞれを通って反復する要領で循環するように構成される。
【００２０】
上記で説明したＳＩＭＤマイクロプロセッサにおけるベクトル並べ換えのための装置、システム及び方法は、次の利点を有することが理解されるであろう。即ち、
余分の命令が、ベクトル・オペランドの要素を並べ替える或いは否定するため必要とされず、より高い性能をもたらす。更に、ベクトル・レジスタ・ファイルのうちの更に別のレジスタが、並べ替えられた或いは否定されたベクトル・オペランド及び並べ換えパラメータを格納するため必要とされない。プログラム可能な並べ換えパラメータを用いてさえ、図２の制御レジスタ１４０は、図１の制御レジスタ１５より著しく小さいことに注目すべきである。マイクロプロセッサのレジスタ・ファイルがより小さいので、これは、マイクロプロセッサのより小さいサイズ、及びより良いプログラム・コード密度（ベクトル・レジスタ・アドレッシングのための演算コードの中のより少ないビット）をもたらす。
【００２１】
上記で説明した実施形態に対する代替実施形態が可能であることが当業者に認められるであろう。例えば、一連の制御レジスタ１４０及びカウンタ１５０は、命令タイプ又はレジスタ番号のような修飾子と結合された、複数のカウンタ及び制御レジスタ列により増大され得る。また、計数シーケンス（ｃｏｕｎｔｉｎｇ  ｓｅｑｕｅｎｃｅ）が、循環する要領で繰り返すとは限らないで、そしてまさに１個の更なる命令を追加することにより、特定のシーケンス開始点でもってカウンタをロードすることが可能である。全てのこれらの特徴を用いて、複雑さを並べ換えのシーケンスに加え、そうして更にアーキテクチャの柔軟性を増大し得る。
【００２２】
更に、ベクトル・レジスタの数及び規模は、上記で説明したものと異なってよく、本発明が必要とするベクトル・レジスタの数は、等価の従来技術の装置にとって必要である数より少ないことが理解されるであろう。
【図面の簡単な説明】
【００２３】
【図１】図１は、ＳＩＭＤアーキテクチャを有する既知のマイクロプロセッサの略ブロック図を示す。
【図２】図２は、本発明を組み込むＳＩＭＤアーキテクチャを有するマイクロプロセッサ・システムの略ブロック図を示す。
【図１】
2006504165.tif 000003
【図２】
2006504165.tif 000004
【手続補正書】
【提出日】平成17年4月27日(2005.4.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
単一命令多重データ・マイクロプロセッサにおけるベクトル並べ換えのための装置であって、
ベクトルを少なくとも１つのベクトル・レジスタから制御パラメータに従って受け取り且つ並べ替えるよう結合された並べ換え論理ブロックと、
それぞれが制御パラメータを前記並べ換え論理ブロックに選択的に与えるよう結合された、複数の制御レジスタと、
前記複数の制御レジスタと前記並べ換え論理ブロックとの間に結合された制御手段であって、前記複数の制御レジスタのうちの１つを選択し、且つ制御パラメータを当該複数の制御レジスタのうちの前記の選択された制御レジスタから前記並べ換え論理ブロックに与えるよう構成された制御手段と
を備える装置。
【請求項２】
前記制御手段に結合され、且つベクトルを前記並べ換え論理ブロックから、前記制御手段から受け取った制御パラメータに従って受け取り且つ選択的に否定するよう結合された否定ブロックを更に備え、
前記制御パラメータが、並べ換えパラメータ及び否定パラメータを含む
請求項１の装置。
【請求項３】
前記制御手段が、前記複数の制御レジスタのうちの１つを選択するため順番を与えるよう構成された少なくとも１つのカウンタを含む請求項１記載の装置。
【請求項４】
前記順番が、１組の固定の制御パラメータを通して自動の順序付けすることを含む請求項３の装置。
【請求項５】
前記順番が、１組のプログラム可能な制御パラメータを通して自動の順序付けすることを含む請求項３記載の装置。
【請求項６】
前記順番が循環的である請求項３記載の装置。
【請求項７】
単一命令多重データ・マイクロプロセッサ・ベクトル並べ換えシステムであって、
少なくとも１つのベクトル・レジスタと、
ベクトルを前記少なくとも１つのベクトル・レジスタから制御パラメータに従って受け取り且つ並べ替えるよう結合された並べ換え論理ブロックと、
それぞれが制御パラメータを前記並べ換え論理ブロックに選択的に与えるよう結合された、複数の制御レジスタと、
前記複数の制御レジスタと前記並べ換え論理ブロックとの間に結合された制御手段であって、前記複数の制御レジスタのうちの１つを選択し、且つ制御パラメータを前記複数の制御レジスタのうちの前記の選択された制御レジスタから前記並べ換え論理ブロックに与えるよう構成された制御手段と
を備えるシステム。
【請求項８】
前記制御手段に結合され、且つベクトルを前記並べ換え論理ブロックから、前記制御手段から受け取った制御パラメータに従って受け取り且つ選択的に否定するよう結合された否定ブロックを更に備え、
前記制御パラメータが、並べ換えパラメータ及び否定パラメータを含む
請求項７のシステム。
【請求項９】
前記制御手段が、前記複数の制御レジスタのうちの１つを選択するため順番を与えるよう構成された少なくとも１つのカウンタを含む請求項７記載のシステム。
【請求項１０】
前記順番が、１組の固定の制御パラメータを通して自動の順序付けすることを含む請求項９記載の方法。
【請求項１１】
前記順番が、１組のプログラム可能な制御パラメータを通して自動の順序付けすることを含む請求項９記載の方法。
【請求項１２】
前記順番が循環的である請求項９記載の方法。
【請求項１３】
単一命令多重データ・マイクロプロセッサにおけるベクトル並べ換えのための方法であって、
並べ替えられるべきベクトルを与えるステップと、
複数の制御レジスタのうちの１つを選択するステップであって、各制御レジスタが並べ換え特性を決定するためのパラメータを含む、前記選択するステップと、
ベクトルを前記の選択された制御レジスタのパラメータに従って並べ替えるステップと
を備える方法。
【請求項１４】
前記制御レジスタのパラメータがまた、否定特性を決定するため用いられ、
並べ替える前記ステップが更に、ベクトルを前記の選択された制御レジスタのパラメータに従って選択的に否定するステップを含む
請求項１３記載の方法。
【請求項１５】
選択する前記ステップが更に、前記複数の制御レジスタの順番に追従するステップを含む請求項１３記載の方法。
【請求項１６】
前記順番が、１組の固定の制御パラメータを通して自動の順序付けすることを含む請求項１５記載の方法。
【請求項１７】
前記順番が、１組のプログラム可能な制御パラメータを通して自動の順序付けすることを含む請求項１５記載の方法。
【請求項１８】
前記順番が循環的である請求項１５記載の方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
本発明の第２の局面に従って、請求項７に記載のＳＩＭＤマイクロプロセッサにおけるベクトル並べ換えのためのシステムが提供される。
本発明の第３の局面に従って、請求項１３に記載のＳＩＭＤマイクロプロセッサにおけるベクトル並べ換えのための方法が提供される。
【国際調査報告】
2006504165.tif 000005
2006504165.tif 000006
2006504165.tif 000007
2006504165.tif 000008
2006504165.tif 000009