(57)【要約】  データ処理システム（２）は、多項式除算演算を実行するために処理回路構成（２６）を制御する制御信号を生成する多項式除算命令ＤＩ−ＶＬ．ＰＮに応答する命令復号器（２２）を含んでいる。分母多項式は、多項式の最高次数項が、常に「１」の係数を有しているので、この係数は、分母値を格納するレジスタ内に格納される必要がないと見なして、レジスタ内に格納された分母値によって表わされる。従って、分母多項式は、分母値だけを格納するレジスタ内のビット空間で起こり得る次数より１つ高い次数を有することができる。多項式除算命令は、商の多項式及び剰余多項式をそれぞれ表わす商の値及び剰余値を戻す。
2011517496.tif 000002
【特許請求の範囲】
【請求項１】
データを処理する装置において、
１つ又はそれ以上の制御信号を生成するプログラム命令に応答する命令復号器と、
複数のレジスタを有するレジスタバンクと、
前記命令復号器及び前記レジスタバンクと連結され、前記レジスタバンク内に格納された１つ又はそれ以上のデータ値に関する前記プログラム命令に対応するデータ処理演算を実行するために、前記１つ又はそれ以上の制御信号に応答する処理回路構成であって、
前記命令復号器は、分母多項式による分子多項式の２つの要素のフィールドに亘る多項式除算の商の多項式を表わす少なくとも１つの商の値を生成するために前記処理回路構成を制御する、１つ又はそれ以上の制御信号を生成するための多項式除算命令に応答しており、前記分母多項式は、Ｎ≧ｉ≧０に対するｃｉｘｉの前記和により与えられるＮ次数多項式であって、ｃ０までのｃ（Ｎ−１）は、前記レジスタバンクのレジスタに格納される個別のビットであり、ｃＮ＝１は、前記レジスタの中には格納されない、処理回路構成と、を備えている装置。
【請求項２】
前記レジスタは、Ｎビットレジスタである、請求項１に記載の装置。
【請求項３】
前記レジスタバンクは、複数のＮビットレジスタを備えている、請求項１に記載の装置。
【請求項４】
多項式は、
（ｉ）Ｍビットレジスタのビットｋである項ｘｋに対する係数ｃｋを備えている前記Ｍビットレジスタ内の値であって、（Ｍ−１）≧ｋ≧０である値と、
（ｉｉ）Ｍビットレジスタのビット（Ｍ−１）−ｋである項ｘｋに対する係数ｃｋを備えている前記Ｍビットレジスタ内の値であって、（Ｍ−１）≧ｋ≧０である値と、のうちの１つによって表わされる、前述の請求項の何れか１つに記載の装置。
【請求項５】
前記分子多項式は、前記複数のＮビットレジスタの２つの中に格納された２Ｎビット分子値によって表わされる、請求項３に記載の装置。
【請求項６】
前記分子多項式は、前記複数のレジスタの２Ｎビットレジスタ内に格納された２Ｎビット分子値によって表わされる、請求項１に記載の装置。
【請求項７】
前記処理回路構成は、前記分母多項式による前記分子多項式の多項式除算によって生じる剰余多項式を表わす剰余値を生成する前記多項式除算命令に応えて前記命令復号器によって生成される前記制御信号によって制御される、前述の請求項の何れか１つに記載の装置。
【請求項８】
前記剰余値は、前記複数のレジスタのＮビットレジスタ内に格納されたＮビット剰余値である、請求項７に記載の装置。
【請求項９】
前記商の値は、前記複数のレジスタのＮビットレジスタ内に格納されたＮビット商の値である、前述の請求項の何れか１つに記載の装置。
【請求項１０】
前記多項式除算命令は、生成された商の値を利用して伝送されるべき信号にスクランブルをかけるために前記装置によって実行されるスクランブラプログラム符号の一部分である、前述の請求項の何れか１つに記載の装置。
【請求項１１】
前記レジスタバンクは、前記多項式除算命令以外のプログラム命令によって使用される複数の汎用スカラレジスタを備えている、前述の請求項の何れか１つに記載の装置。
【請求項１２】
前記命令復号器は、第２の多項式によって第１の多項式の２つの要素のフィールドに亘る多項式乗算に対する積の多項式を表わす少なくとも１つの積の値を生成するように前記処理回路構成を制御する１つ又はそれ以上の制御信号を生成する多項式乗算命令に応答する、前述の請求項の何れか１つに記載の装置。
【請求項１３】
前記多項式除算命令は、スカラ値である前記分母値と、前記商の値と、ベクトル値である前記分子多項式を表わす分子値と、を備えているベクトル命令である、前述の請求項の何れか１つに記載の装置。
【請求項１４】
データを処理する方法であって、
１つ又はそれ以上の制御信号を生成するためにプログラム命令を復号化する工程と、
前記１つ又はそれ以上の制御信号に応えて、複数のレジスタを有するレジスタバンク内に格納された１つ又はそれ以上のデータ値に関する前記プログラム命令に対応するデータ処理演算を実行する工程であって、
前記復号化は、分母多項式によって分子多項式の２つの要素のフィールドに亘る多項式除算のための商の多項式を表わす少なくとも１つの商の値の生成を制御する、１つ又はそれ以上の制御信号を生成する多項式除算命令に応答しており、前記分母多項式は、Ｎ≧ｉ≧０に対するｃｉｘｉの前記和によって与えられるＮ次数多項式であって、ここにｃ０までのｃ（Ｎ−１）は、前記レジスタバンクのレジスタに格納されるそれぞれのビットであり、ｃＮ＝１は、前記レジスタ内には格納されない、データ処理演算を実行する工程と、から成る方法。
【請求項１５】
前記レジスタは、Ｎビットレジスタである、請求項１４に記載の方法。
【請求項１６】
前記レジスタバンクは、複数のＮビットレジスタを備えている、請求項１４に記載の方法。
【請求項１７】
多項式は、
（ｉ）Ｍビットレジスタのビットｋである項ｘｋに対する係数ｃｋを備えている前記Ｍビットレジスタ内の値であって、（Ｍ−１）≧ｋ≧０である値と、
（ｉｉ）Ｍビットレジスタのビット（Ｍ−１）−ｋである項ｘｋに対する係数ｃｋを備えている前記Ｍビットレジスタ内の値であって、（Ｍ−１）≧ｋ≧０である値と、の１つによって表わされる、前述の請求項の何れか１つに記載の方法。
【請求項１８】
前記分子多項式は、前記複数のＮビットレジスタの２つの中に格納された２Ｎビット分子値によって表わされる、請求項１６に記載の方法。
【請求項１９】
前記分子多項式は、前記複数のレジスタの２Ｎビットレジスタ内に格納された２Ｎビット分子値によって表わされる、請求項１４に記載の方法。
【請求項２０】
前記多項式除算命令を復号化することによって生成される前記制御信号は、前記分母多項式による前記分子多項式の多項式除算によって生じる剰余多項式を表わす剰余値の生成を制御する、前述の請求項１４から請求項１９の何れか１つに記載の方法。
【請求項２１】
前記剰余値は、前記複数のレジスタのＮビットレジスタ内に格納されたＮビット剰余値である、請求項２０に記載の方法。
【請求項２２】
前記商の値は、前記複数のレジスタのＮビットレジスタ内に格納されたＮビット商の値である、前述の請求項１４から請求項２１の何れか１つに記載の方法。
【請求項２３】
前記多項式除算命令は、生成された商の値を利用して伝送されるべき信号にスクランブルをかけるために実行されるスクランブラプログラム符号の一部分である、前述の請求項の１４から請求項２２の何れか１つに記載の方法。
【請求項２４】
前記レジスタバンクは、前記多項式除算命令以外のプログラム命令によって使用される複数の汎用スカラレジスタを備えている、前述の請求項１４から請求項２３の何れか１つに記載の方法。
【請求項２５】
前記復号工程は、第２の多項式によって第１の多項式の２つの要素のフィールドに亘る多項式乗算に対する積の多項式を表わす少なくとも１つの積の値の生成を制御する１つ又はそれ以上の制御信号を生成する多項式乗算命令に応答する、前述の請求項１４から請求項２４の何れか１つに記載の方法。
【請求項２６】
前記多項式除算命令は、スカラ値である前記分母値と、前記商の値と、ベクトル値である前記分子多項式を表わす分子値と、を備えているベクトル命令である、前述の請求項１４から請求項２５の何れか１つに記載の方法。
【請求項２７】
請求項１４から請求項２６の何れか１つに記載の方法によってデータを処理する装置を制御するコンピュータプログラムを記憶するコンピュータプログラム記憶媒体を備えているコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システムの分野に関する。より厳密には、本発明は、多項式データ処理演算を支援するデータ処理システムに関する。
【背景技術】
【０００２】
多項式演算に何らかの支援を提供することはデータ処理システムの中ではよく知られている。例えば、リードソロモン符号化又は楕円曲線暗号システムに関連付けられる多項式演算に支援を提供することは周知のことである。その様な支援を提供する周知のデータ処理システムの１つは、ＴＭＳ３２０Ｃ６４ｘとしてＴｅｘａｓ  Ｉｎｓｔｒｕｍｅｎｔｓ社によって生産されるデジタルシグナルプロセッサである。これらのデジタルシグナルプロセッサは、演算を実行する命令を提供する。
ａ＝ｂ＊ｃ  ｍｏｄ  ｐ（ここに、ｂは３２ビットであり、ｃは９ビットである）であって、
ここに、ｐは、特殊３２ビットレジスタ（ＧＰＬＹＡ又はＧＰＬＹＢ）で保持される。
【０００３】
多項式命令のこの周知の形態は、リードソロモン符号化に十分な支援を提供する多項式乗算の剰余部分を生み出す。これは、信号スクランブリング又は伝送符号の計算に関連付けられるような、多項式データ処理の他の形態には適していない。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
信号スクランブリング又は伝送符号の生成の目的で特殊用途ハードウェアを提供することもよく知られている。その様な特殊用途ハードウェアは、必要な計算を高速で実行することができる形態で提供することができるが、この専用機能のためにかなりの回路リソースを消費することに加えて、更に比較的にフレキシビリティに欠けており、再利用及び／又は修正には不適当であるという不利点を有している。
【課題を解決するための手段】
【０００５】
１つの態様から見れば、本発明は、データを処理する装置を提供しており、その装置において、
１つ又はそれ以上の制御信号を生成するプログラム命令に応答する命令復号器と、
複数のレジスタを有するレジスタバンクと、
前述の命令復号器及び前述のレジスタバンクと連結され、前述のレジスタバンク内に格納された１つ又はそれ以上のデータ値に関する前述のプログラム命令に対応するデータ処理演算を実行するために、前述の１つ又はそれ以上の制御信号に応答する処理回路構成であって、
前述の命令復号器は、分母多項式による分子多項式の２つの要素のフィールドに亘る多項式除算の商の多項式を表わす少なくとも１つの商の値を生成するために前述の処理回路構成を制御する、１つ又はそれ以上の制御信号を生成するための多項式除算命令に応答しており、前述の分母多項式は、Ｎ≧ｉ≧０に対するｃｉｘｉの和により与えられるＮ次数多項式であって、ｃ０までのｃ（Ｎ−１）は、前述のレジスタバンクのレジスタに格納される個別のビットであり、ｃＮ＝１は、前述のレジスタの中には格納されない、処理回路構成と、を備えている。
【０００６】
本技法は、例えば、命令復号器、レジスタバンク、及び多項式除算から生じる商の多項式を表わす商の値を少なくとも生成する多項式除算命令を追加的に提供することのできる処理回路構成などの汎用素子を有するプログラム可能なデータ処理装置を提供する。更に、分母多項式は、多項式の最高次数項の係数が、「１」に固定される形態でレジスタバンクのレジスタ内部に格納され、レジスタ内に格納される必要は無いと見なされる。これは、分母多項式が、分母の値を格納するために使用されるビット幅より１つ高い次数を有することを可能にし、その結果、起こり得る結果の最大ビット幅をより容易に適合させるように多項式除算の結果を表わすために、レジスタバンクのレジスタ内のビット空間をより効率的に使用することが可能になる。
【０００７】
分母多項式の係数を格納するレジスタは、Ｎビットレジスタであり得る。
【０００８】
操作される多項式は、様々な異なる方法でレジスタ内に格納される値によって表わされ得るが、レジスタ内に格納される値のそれぞれのビット位置に異なる項の係数を格納することによってそれらを表わしているのは、好都合である。
【０００９】
係数は、例えば、最上位ビット位置に格納された係数を有している最下次数項が、最下位ビット位置に格納されたその係数を備えて最高次数項へ進むように、レジスタ内に保持される値の中で異なる順序で、或いは反対の順序で（例えば、リトルエンディアン又はビッグエンディアン格納のように）格納することができる。
【００１０】
分子多項式は、分母多項式の次数よりも高い次数になる場合が多く、従って、好都合な実施形態は、その様なより幅の広いレジスタ（例えば、アキュムレータレジスタ）が、レジスタバンク内に提供される時には、レジスタバンク内の２つのＮビットレジスタ又は２Ｎビットレジスタの何れかの中に格納された２Ｎビット分子値によって分子多項式を表わしている。
【００１１】
多項式除算命令は、更に、多項式除算から生じる剰余多項式を表わす剰余値の他に、商の多項式を表わす商の値を生成してもよい。商の多項式は、スクランブル信号、伝送符号などを生成するのに有用であるが、剰余多項式も、他の状況では有用であり、従って、多項式除算命令から両方が生成されれば好都合である。
【００１２】
剰余値及び商の値は、レジスタバンクのそれぞれのＮビットレジスタの中に格納されれば好都合である。
【００１３】
本技法の実施効率は、使用されるレジスタバンクが、多項式除算命令以外のプログラム命令によって使用される複数の汎用スカラレジスタを備えている時には、向上する。
【００１４】
多項式除算命令及び様々な機能に本システムを再利用することのできる能力を組み込んでいるデータ処理システムの一般的適用性は、本システムが、先に述べた多項式除算命令と組み合わせて多項式乗算命令を更に提供する時に強化される。
【００１５】
多項式除算命令は、スカラ形式で要求されることが多いが、分母値が、まれに典型的に変化し、商の値のベクトル列を生成するために分子値の長いベクトル列に適用される必要があることがあるので、幾つかの実施形態では、多項式除算命令を分母値がスカラ値になっている状態でベクトル命令として提供することが望ましい場合もあり得る。
【００１６】
別の態様から見れば、本発明は、データを処理する方法を提供しており、当該方法は、
１つ又はそれ以上の制御信号を生成するためにプログラム命令を復号化する工程と、
前述の１つ又はそれ以上の制御信号に応えて、複数のレジスタを有するレジスタバンク内に格納された１つ又はそれ以上のデータ値に関する前述のプログラム命令に対応するデータ処理演算を実行する工程であって、
前述の復号化は、分母多項式によって分子多項式の２つの要素のフィールドに亘る多項式除算のための商の多項式を表わす少なくとも１つの商の値の生成を制御する、１つ又はそれ以上の制御信号を生成する多項式除算命令に応答しており、前述の分母多項式は、Ｎ≧ｉ≧０に対するｃｉｘｉの和によって与えられるＮ次数多項式であって、ここにｃ０までのｃ（Ｎ−１）は、前述のレジスタバンクのレジスタに格納されるそれぞれのビットであり、ｃＮ＝１は、前述のレジスタ内には格納されない、データ処理演算を実行する工程と、から成る。
【００１７】
本発明の更なる態様は、本技法によるハードウェアを制御する、先に論じた多項式除算命令を組み込んでいるコンピュータプログラムの提供であるものと理解頂けるであろう。
【００１８】
本発明の実施形態を、ほんの一例として、添付の図面を参照しながらこれより説明してゆく。
【図面の簡単な説明】
【００１９】
【図１】多項式除算命令への支援を含んでいるデータ処理装置を概略的に図解している。
【図２】多項式除算命令の構文を概略的に図解している。
【図３】例示的な多項式除算演算を概略的に図解している。
【図４】多項式除算命令に応えて多項式除算演算を実行する回路を概略的に図解している。
【図５】ベクトル多項式除算命令の例示的な構文を図解している。
【図６】多項式がレジスタ内に格納された値によって表わされ得る２つの代替的な方法を図解している。
【図７】多項式乗算命令の構文を概略的に図解している。
【発明を実施するための形態】
【００２０】
図１は、メモリ６と連結されるプロセッサ４の形態をしたデータ処理装置２を図解している。メモリ６は、例えば信号スクランブルを実行するプログラム命令の様なプログラム命令８と、例えばスクランブルをかけられるべき及び伝送されるべきストリームを形成するデータ値１０の様な処理演算を施されるデータ値と、を格納する。
【００２１】
プロセッサ４は、Ｎビットレジスタ（例えば、３２ビットレジスタ）と、（随意的には、）乗累算命令と関連してアキュムレータレジスタとして使用するために提供される幾つかの２Ｎビットレジスタ１４と、で形成されるレジスタバンク１２を含んでいる。乗算器１６、シフター１８、及び加算器２０を含む処理素子は、メモリ６からフェッチされる時に、命令パイプライン２４に沿って進むプログラム命令に応えて命令復号器２２によって生成される制御信号の制御下で処理演算を実行する。プロセッサ４は、メモリ６からフェッチされるプログラム命令に応えて、例えば、標準的な論理及び算術演算の様な汎用目的データ処理作業を実行する、スカラレジスタバンク１２、１４を備えている汎用目的プロセッサである。命令復号器２２によって生成される制御信号は、所望のデータ処理演算を実行するようにデータ処理素子１６、１８、２０を設定する。
【００２２】
プロセッサ４の中に追加的に提供されるのは、多項式除算回路構成２６であり、この回路構成は、（レジスタ１２、１４を介して）メモリ６から読み出されたデータ値に関して多項式除算演算を実行するために命令復号器２２によって生成された制御信号に応答する。これらの多項式除算演算及び多項式除算命令を下文で更に説明してゆく。
【００２３】
図２は、多項式除算命令ＤＩＶＬ．Ｐｎの構文を図解している。この構文ＤＩＶＬ．Ｐｎ（及び後で検討する符号のｄｉｖｌ＿ｐｎ）では、「ｎ」は、演算の幅（例えば、８、１６、又は３２）であり、レジスタの幅「Ｎ」を下回ってもよい。以下の実例では、Ｎ＝ｎと仮定されているが、本技法は、Ｎ≠ｎ（例えば、Ｎ＝３２並びにＮ＝８、１６又は３２）の時でも適用できる。多項式除算命令は、その入力オペランドを保持するために３つのレジスタを使用する。これらのレジスタは、この実例のレジスタバンク１２の中のＮビットレジスタである。分子多項式を表わす分子値は、レジスタｒ０及びｒ１の中に格納される。分子値は、従って２Ｎビット値である。分母多項式を表わす分母値は、レジスタｒ２の中に格納される。分母値は、分母多項式が、「１」の係数を有する最高次数項から始まり、それに応じて分母値が最高次数項の後に続く項の係数を表わしさえすればよいと仮定して、分母多項式を表わす。これは、分母多項式が、レジスタｒ２の幅より１つ大きい項を含むことを可能にしている。その様な多項式除算から生じる剰余値は、分母値より１小さいビット長を有するであろうし、且つレジスタｒ２及び剰余値が格納されるレジスタ（ｒ４）が、同じ幅を有している時には、適宜に、使われないレジスタのビット空間がない状態で自然にレジスタサイズに適合すると考えられるので、これは利点である。而して、３２ビットレジスタの場合では、分母の商は、３３個の項を有することが可能であり、剰余の商は、３２個の項を有することが可能である。
【００２４】
図２で見られるように、多項式除算命令ＤＩＶＬ．Ｐｎは、商の多項式を表わす商の値をレジスタｒ３へ、剰余多項式を表わす剰余値をレジスタｒ４へ戻す。図解される構文では、分母商は、レジスタｒ２内に格納された分母値のビットによって特定される係数を備える項に加えて最高次数項ｘＮを備えて拡張されるのが分かるであろう。分子多項式は、（ｘＮで乗算して高次数部分ヘ上げられるように示される）レジスタｒ１内に格納された係数によって特定される項を、その高次数部分と見なし、分子多項式の低次数部分は、レジスタｒ０から取り出された係数を有する項を備えて形成される。
【００２５】
処理されている多項式の次数は、この標準的な構文では変数Ｎで表わされていることが分かるであろう。これは、様々な異なる値をとることが可能であり、処理されている多項式は、データ処理要件に応じて、例えば、次数８、１６又は３２であり得るものと理解頂けるであろう。Ｎには他の値も可能である。
【００２６】
Ｎ＝３２の場合における多項式除算命令の１つの見方として、この命令は、以下のＣプログラム符号と同等の結果を生じる。
【００２７】
【数１】
2011517496.tif 000003
【００２８】
図３は、例示的な多項式除算演算を概略的に図解している。この事例では、Ｎ＝４は、５個の項まで備える分母多項式と８個の項まで備える分子多項式が得られている。図解されるこの実例では、分母多項式の項ｘ３及びｘの係数は共にゼロである。従って、分母多項式は、ｘ４＋ｘ２＋１である。レジスタｒ２内に格納される分母値は、「０１０１」であり、これは、分母多項式の中の最高次数項は、常に係数「１」を有していると仮定されるので、分母多項式の係数を提供するために、「１」の値によってその最上位端部で拡張される。当業者におかれては理解頂けるであろうが、この仮定が正しいものであるために、この仮定は、分母多項式の整列を任意の分子多項式の関連付けられた整列に合わせる必要があってもよい。しかしながら、分母多項式は、準固定値である場合が多く、従って、その様な分母多項式の整列は、通常では、計算毎に必要とされないであろう。更に、分子多項式は、データストリームである場合が多く、従ってその様なデータストリームの中の整列は、通常では、適切な開始点を選ぶことによって実現される。
【００２９】
多項式除算命令の働きは、長除算命令と類似している。２つの要素のフィールドに亘る多項式演算（即ち、項の係数が「０」又は「１」のどちらかであり得る）では、加算及び減算は、排他的ＯＲ機能と同等である。乗算は、ＡＮＤ演算と同等である。これらの演算は、同じ次数の項に対して実行される。図解される実例では、多項式除算命令によって生じる商の多項式は、「ｘ３＋ｘ２＋ｘ」であり、これは、「１１１０」の商の値によって表わされる。剰余多項式は、「１」であり、これは「０００１」の剰余値によって表わされる。
【００３０】
図４は、例えば、図１の多項式除算回路構成２６によって提供されてもよい、次数４の多項式除算命令を実施する回路構成を図解している。見られるように、多項式除算命令に応えて多項式除算演算を実行する回路構成は、ＡＮＤゲート及びＸＯＲゲートの配列を備えている。それらのゲートへの入力は、分子値［ｎ７：ｎ０］及び分母値［１：ｐ０］である。
【００３１】
図４の回路構成は、回路構成が、使用するために作動され、分子値及び分母値が、レジスタバンク１２から読み出され、図４の回路構成の入力へ供給されるのであるから、多項式除算命令に応えて命令復号器２２によって生成される制御信号によって制御される。更に、商の値［ｑ３：ｑ０］及び剰余値［ｒ３：ｒ０］は、同様に、図４の回路構成の出力から読み取られレジスタバンク１２内のレジスタへ戻されて格納される。この実例では、２つの書き込みポートは、商の値及び剰余値の両方がその中へ書き込まれることを可能にするために、レジスタバンク１２に提供されている。
【００３２】
図４の回路は、４の次数を備えている多項式除算を計算するためのものであると理解頂けるであろう。しかしながら、この回路構成の規則正しい拡張は、より高い次数の多項式除算のための多項式除算命令演算を提供し、当業者にはよく知られているであろうが、実際には、同じ回路構成は、信号値の適切な乗算を用いて異なる次数のそれらの除算のために再利用することができる。
【００３３】
３２、１６又は８次数の何れかの多項式除算を実行する回路構成を画定するレジスタ転送言語（ＲＴＬ）は、下記の通りである。
【００３４】
【数２】
2011517496.tif 000004
2011517496.tif 000005
2011517496.tif 000006
2011517496.tif 000007
2011517496.tif 000008
2011517496.tif 000009
2011517496.tif 000010
【００３５】
図５は、ベクトル多項式除算命令に使用してもよい構文を図解している。この構文は、レジスタが、分子値並びに結果として生じる商の値及びベクトルレジスタによって置き換えられる剰余値を格納している以外は、図２に図解される構文と同様である。分母商及び分母値は、分子値の長いシーケンスに対して一定である場合が多いものと理解頂けるように、分母は、スカラレジスタに格納されたスカラ値のままである。これは、伝送されるべき信号データの並列多重ストリームで処理するスクランブラプログラムに関連付けられる動作の一種である。商の多項式と商の値は、生の分子数値よりも伝送により適した特徴を備えて伝送されるべきデータを形成する（例えば、分子値の中の固定ビット値の長いシーケンスは、商の値の中のビット値のより容易に伝送される代替的なパターンに変えられるであろう）。商の値を生成する本技法の多項式除算命令は、伝送されるべき信号にスクランブルをかけようとするその様なスクランブラプログラムと共に使用するのによく適している。
【００３６】
図６は、多項式の項の係数がレジスタ内に格納され得る２つの方法を図解している。特に、最高次数項の係数は、多項式係数を表わす値を格納するレジスタ内の最上位ビット位置又は最下位ビット位置の何れかに格納されてもよい。他の係数は、この該当する選択された端点から順々に後に続くことが可能である。これは、ビッグエンディアン又はリトルエンディアンの何れかの形態でレジスタ内に格納されている係数と同様である。
【００３７】
本技法の多項式除算命令は、同じプロセッサ４によって支援されることも可能である多項式乗算命令との好都合な組み合わせを提供する。この場合では、多項式乗算命令を支援するために、図１に図解される多項式除算回路構成２６と類似している追加の処理ユニットを追加してもよい。図７は、その様な多項式乗算命令に使用してもよい構文を図解している。第１の多項式及び第２の多項式は、それぞれのレジスタｒ０及びｒ１内に格納された値によって表わされる。結果として生じる積の多項式は、レジスタｒ２内に格納された積の値によって表わされる。積の多項式値は、第１及び第２の多項式の長さの倍であり、従って、レジスタｒ２は、第１及び第２の多項式を表わす第１及び第２の値を格納するレジスタの長さの２倍である。実際には、レジスタｒ２は、２つの標準長さのレジスタを組み合わせることで提供することができる。或いは、レジスタバンク１２は、図１に図解される２Ｎビットレジスタ１４のような１つ又はそれ以上の倍幅のレジスタを含んでいてもよい。その様な倍幅のレジスタは、標準スカラ算術の乗塁算命令と共に使用するためにしばしば提供されるので、従ってこの種類の多項式乗算命令に再利用することが可能である。これらの倍幅レジスタは、これまでに検討した多項式除算命令に関して分子値を格納するのに使用することもできる。その場合では、倍幅レジスタは、図２に図解されるレジスタｒ０及びｒ１を単一のレジスタ内の分子多項式の全ての係数を表わしている値を、格納する単一の倍幅レジスタと置き換えるであろう。
【００３８】
異なる幅のバージョン及び累算機構を組み込んだバージョンを含む様々な形態の多項式乗算命令の演算は、以下の説明目的のＣ符号で提供されている。この符号は、多項式除算命令に類似する表現を更に含んでいる。この技術分野の従事者には理解されるように、これらの定義は、その演算を特定する関連付けられた命令に応えて、その様な演算を実行するために該当する回路構成を生成するのに使用することができるそれらの命令の働きである。
【００３９】
【数３】
2011517496.tif 000011
2011517496.tif 000012
2011517496.tif 000013
2011517496.tif 000014
2011517496.tif 000015
2011517496.tif 000016
【００４０】
上記の技法は、ハードウェアが上述の命令を含む一連の固有の命令を実行することによって行うことができるが、代替的な実施形態では、その様な命令は、命令が仮想計算機に固有であっても、仮想計算機が別の固有の命令セットを有するハードウェア上でソフトウェアが動作することによって実装される、仮想計算機環境で実行されてもよいものと理解頂けるであろう。仮想計算機環境は、完全な命令セットの実行をエミュレートする完全な仮想計算機環境を提供してもよく、或いは、例えば、本技法の命令を含む幾つかの命令だけがハードウェアによって捕捉され、部分的な仮想計算機によってエミュレートされるように、部分的であってもよい。
【００４１】
より厳密には、上記の再配列命令は、仮想計算機が、内在するハードウェアプラットフォームと共に、上記の多項式処理を提供するために組み合わせて作動して、仮想計算機全体又はその一部の固有の命令として実行されてもよい。
【符号の説明】
【００４２】
６  メモリ
８  スクランブラプログラム
１０  伝送されるべきデータストリーム
【図１】
2011517496.tif 000017
【図２】
2011517496.tif 000018
【図３】
2011517496.tif 000019
【図４】
2011517496.tif 000020
【図５】
2011517496.tif 000021
【図６】
2011517496.tif 000022
【図７】
2011517496.tif 000023
【手続補正書】
【提出日】平成21年8月27日(2009.8.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データを処理する装置において、
１つ又はそれ以上の制御信号を生成するプログラム命令に応答する命令復号器と、
複数のレジスタを有するレジスタバンクと、
前記命令復号器及び前記レジスタバンクと連結され、前記レジスタバンク内に格納された１つ又はそれ以上のデータ値に関する前記プログラム命令に対応するデータ処理演算を実行するために、前記１つ又はそれ以上の制御信号に応答する処理回路構成であって、
前記命令復号器は、分母多項式による分子多項式の２つの要素のフィールドに亘る多項式除算の商の多項式を表わす少なくとも１つの商の値を前記複数のレジスタに格納された出力として生成するために前記処理回路構成を制御する、１つ又はそれ以上の制御信号を生成するための単一の命令としての多項式除算命令に応答しており、前記分母多項式は、Ｎ≧ｉ≧０に対するｃｉｘｉの前記和により与えられるＮ次数多項式であって、ｃ０までのｃ（Ｎ−１）は、前記レジスタバンクのレジスタに格納される個別のビットであり、ｃＮ＝１は、前記レジスタの中には格納されない、処理回路構成と、を備えている装置。
【請求項２】
前記レジスタは、Ｎビットレジスタである、請求項１に記載の装置。
【請求項３】
前記レジスタバンクは、複数のＮビットレジスタを備えている、請求項１に記載の装置。
【請求項４】
多項式は、
（ｉ）Ｍビットレジスタのビットｋである項ｘｋに対する係数ｃｋを備えている前記Ｍビットレジスタ内の値であって、（Ｍ−１）≧ｋ≧０である値と、
（ｉｉ）Ｍビットレジスタのビット（Ｍ−１）−ｋである項ｘｋに対する係数ｃｋを備えている前記Ｍビットレジスタ内の値であって、（Ｍ−１）≧ｋ≧０である値と、のうちの１つによって表わされる、前述の請求項の何れか１つに記載の装置。
【請求項５】
前記分子多項式は、前記複数のＮビットレジスタの２つの中に格納された２Ｎビット分子値によって表わされる、請求項３に記載の装置。
【請求項６】
前記分子多項式は、前記複数のレジスタの２Ｎビットレジスタ内に格納された２Ｎビット分子値によって表わされる、請求項１に記載の装置。
【請求項７】
前記処理回路構成は、前記分母多項式による前記分子多項式の多項式除算によって生じる剰余多項式を表わす剰余値を生成する前記多項式除算命令に応えて前記命令復号器によって生成される前記制御信号によって制御される、前述の請求項の何れか１つに記載の装置。
【請求項８】
前記剰余値は、前記複数のレジスタのＮビットレジスタ内に格納されたＮビット剰余値である、請求項７に記載の装置。
【請求項９】
前記商の値は、前記複数のレジスタのＮビットレジスタ内に格納されたＮビット商の値である、前述の請求項の何れか１つに記載の装置。
【請求項１０】
前記多項式除算命令は、生成された商の値を利用して伝送されるべき信号にスクランブルをかけるために前記装置によって実行されるスクランブラプログラム符号の一部分である、前述の請求項の何れか１つに記載の装置。
【請求項１１】
前記レジスタバンクは、前記多項式除算命令以外のプログラム命令によって使用される複数の汎用スカラレジスタを備えている、前述の請求項の何れか１つに記載の装置。
【請求項１２】
前記命令復号器は、第２の多項式によって第１の多項式の２つの要素のフィールドに亘る多項式乗算に対する積の多項式を表わす少なくとも１つの積の値を生成するように前記処理回路構成を制御する１つ又はそれ以上の制御信号を生成する多項式乗算命令に応答する、前述の請求項の何れか１つに記載の装置。
【請求項１３】
前記多項式除算命令は、スカラ値である前記分母値と、前記商の値と、ベクトル値である前記分子多項式を表わす分子値と、を備えているベクトル命令である、前述の請求項の何れか１つに記載の装置。
【請求項１４】
データを処理する方法であって、
１つ又はそれ以上の制御信号を生成するためにプログラム命令を復号化する工程と、
前記１つ又はそれ以上の制御信号に応えて、複数のレジスタを有するレジスタバンク内に格納された１つ又はそれ以上のデータ値に関する前記プログラム命令に対応するデータ処理演算を実行する工程であって、
前記復号化は、分母多項式によって分子多項式の２つの要素のフィールドに亘る多項式除算のための商の多項式を表わす少なくとも１つの商の値の、前記複数のレジスタに格納された出力としての生成を制御する、１つ又はそれ以上の制御信号を生成する単一の命令としての多項式除算命令に応答しており、前記分母多項式は、Ｎ≧ｉ≧０に対するｃｉｘｉの前記和によって与えられるＮ次数多項式であって、ここにｃ０までのｃ（Ｎ−１）は、前記レジスタバンクのレジスタに格納されるそれぞれのビットであり、ｃＮ＝１は、前記レジスタ内には格納されない、データ処理演算を実行する工程と、から成る方法。
【請求項１５】
前記レジスタは、Ｎビットレジスタである、請求項１４に記載の方法。
【請求項１６】
前記レジスタバンクは、複数のＮビットレジスタを備えている、請求項１４に記載の方法。
【請求項１７】
多項式は、
（ｉ）Ｍビットレジスタのビットｋである項ｘｋに対する係数ｃｋを備えている前記Ｍビットレジスタ内の値であって、（Ｍ−１）≧ｋ≧０である値と、
（ｉｉ）Ｍビットレジスタのビット（Ｍ−１）−ｋである項ｘｋに対する係数ｃｋを備えている前記Ｍビットレジスタ内の値であって、（Ｍ−１）≧ｋ≧０である値と、の１つによって表わされる、前述の請求項の何れか１つに記載の方法。
【請求項１８】
前記分子多項式は、前記複数のＮビットレジスタの２つの中に格納された２Ｎビット分子値によって表わされる、請求項１６に記載の方法。
【請求項１９】
前記分子多項式は、前記複数のレジスタの２Ｎビットレジスタ内に格納された２Ｎビット分子値によって表わされる、請求項１４に記載の方法。
【請求項２０】
前記多項式除算命令を復号化することによって生成される前記制御信号は、前記分母多項式による前記分子多項式の多項式除算によって生じる剰余多項式を表わす剰余値の生成を制御する、前述の請求項１４から請求項１９の何れか１つに記載の方法。
【請求項２１】
前記剰余値は、前記複数のレジスタのＮビットレジスタ内に格納されたＮビット剰余値である、請求項２０に記載の方法。
【請求項２２】
前記商の値は、前記複数のレジスタのＮビットレジスタ内に格納されたＮビット商の値である、前述の請求項１４から請求項２１の何れか１つに記載の方法。
【請求項２３】
前記多項式除算命令は、生成された商の値を利用して伝送されるべき信号にスクランブルをかけるために実行されるスクランブラプログラム符号の一部分である、前述の請求項の１４から請求項２２の何れか１つに記載の方法。
【請求項２４】
前記レジスタバンクは、前記多項式除算命令以外のプログラム命令によって使用される複数の汎用スカラレジスタを備えている、前述の請求項１４から請求項２３の何れか１つに記載の方法。
【請求項２５】
前記復号工程は、第２の多項式によって第１の多項式の２つの要素のフィールドに亘る多項式乗算に対する積の多項式を表わす少なくとも１つの積の値の生成を制御する１つ又はそれ以上の制御信号を生成する多項式乗算命令に応答する、前述の請求項１４から請求項２４の何れか１つに記載の方法。
【請求項２６】
前記多項式除算命令は、スカラ値である前記分母値と、前記商の値と、ベクトル値である前記分子多項式を表わす分子値と、を備えているベクトル命令である、前述の請求項１４から請求項２５の何れか１つに記載の方法。
【請求項２７】
請求項１４から請求項２６の何れか１つに記載の方法によってデータを処理する装置を制御するコンピュータプログラムを記憶するコンピュータプログラム記憶媒体を備えているコンピュータプログラム製品。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００５
【補正方法】変更
【補正の内容】
【０００５】
１つの態様から見れば、本発明は、データを処理する装置を提供しており、その装置において、
１つ又はそれ以上の制御信号を生成するプログラム命令に応答する命令復号器と、
複数のレジスタを有するレジスタバンクと、
前述の命令復号器及び前述のレジスタバンクと連結され、前述のレジスタバンク内に格納された１つ又はそれ以上のデータ値に関する前述のプログラム命令に対応するデータ処理演算を実行するために、前述の１つ又はそれ以上の制御信号に応答する処理回路構成であって、
前述の命令復号器は、分母多項式による分子多項式の２つの要素のフィールドに亘る多項式除算の商の多項式を表わす少なくとも１つの商の値を前記複数のレジスタに格納された出力として生成するために前述の処理回路構成を制御する、１つ又はそれ以上の制御信号を生成するための単一の命令としての多項式除算命令に応答しており、前述の分母多項式は、Ｎ≧ｉ≧０に対するｃｉｘｉの和により与えられるＮ次数多項式であって、ｃ０までのｃ（Ｎ−１）は、前述のレジスタバンクのレジスタに格納される個別のビットであり、ｃＮ＝１は、前述のレジスタの中には格納されない、処理回路構成と、を備えている。
るコンピュータプログラム製品。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】変更
【補正の内容】
【００１６】
【００１６】
別の態様から見れば、本発明は、データを処理する方法を提供しており、当該方法は、
１つ又はそれ以上の制御信号を生成するためにプログラム命令を復号化する工程と、
前述の１つ又はそれ以上の制御信号に応えて、複数のレジスタを有するレジスタバンク内に格納された１つ又はそれ以上のデータ値に関する前述のプログラム命令に対応するデータ処理演算を実行する工程であって、
前述の復号化は、分母多項式によって分子多項式の２つの要素のフィールドに亘る多項式除算のための商の多項式を表わす少なくとも１つの商の値の、前記複数のレジスタに格納された出力としての生成を制御する、１つ又はそれ以上の制御信号を生成する単一の命令としての多項式除算命令に応答しており、前述の分母多項式は、Ｎ≧ｉ≧０に対するｃｉｘｉの和によって与えられるＮ次数多項式であって、ここにｃ０までのｃ（Ｎ−１）は、前述のレジスタバンクのレジスタに格納されるそれぞれのビットであり、ｃＮ＝１は、前述のレジスタ内には格納されない、データ処理演算を実行する工程と、から成る。
【国際調査報告】
2011517496.tif 000024
2011517496.tif 000025
2011517496.tif 000026