JP2011517496A - 多項式データ処理演算 - Google Patents

多項式データ処理演算 Download PDF

Info

Publication number
JP2011517496A
JP2011517496A JP2011501283A JP2011501283A JP2011517496A JP 2011517496 A JP2011517496 A JP 2011517496A JP 2011501283 A JP2011501283 A JP 2011501283A JP 2011501283 A JP2011501283 A JP 2011501283A JP 2011517496 A JP2011517496 A JP 2011517496A
Authority
JP
Japan
Prior art keywords
polynomial
value
register
bit
instruction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2011501283A
Other languages
English (en)
Other versions
JP5193358B2 (ja
Inventor
ドミニク・ヒューゴ・サイムス
ダニエル・カーショー
マルティヌス・コルネリス・ウェゼレンブルグ
Original Assignee
アーム・リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アーム・リミテッド filed Critical アーム・リミテッド
Publication of JP2011517496A publication Critical patent/JP2011517496A/ja
Application granted granted Critical
Publication of JP5193358B2 publication Critical patent/JP5193358B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/726Inversion; Reciprocal calculation; Division of elements of a finite field

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)
  • Executing Machine-Instructions (AREA)
  • Error Detection And Correction (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

データ処理システム(2)は、多項式除算演算を実行するために処理回路構成(26)を制御する制御信号を生成する多項式除算命令DI−VL.Pに応答する命令復号器(22)を含んでいる。分母多項式は、多項式の最高次数項が、常に「1」の係数を有しているので、この係数は、分母値を格納するレジスタ内に格納される必要がないと見なして、レジスタ内に格納された分母値によって表わされる。従って、分母多項式は、分母値だけを格納するレジスタ内のビット空間で起こり得る次数より1つ高い次数を有することができる。多項式除算命令は、商の多項式及び剰余多項式をそれぞれ表わす商の値及び剰余値を戻す。

Description

本発明は、データ処理システムの分野に関する。より厳密には、本発明は、多項式データ処理演算を支援するデータ処理システムに関する。
多項式演算に何らかの支援を提供することはデータ処理システムの中ではよく知られている。例えば、リードソロモン符号化又は楕円曲線暗号システムに関連付けられる多項式演算に支援を提供することは周知のことである。その様な支援を提供する周知のデータ処理システムの1つは、TMS320C64xとしてTexas Instruments社によって生産されるデジタルシグナルプロセッサである。これらのデジタルシグナルプロセッサは、演算を実行する命令を提供する。
a=bc mod p(ここに、bは32ビットであり、cは9ビットである)であって、
ここに、pは、特殊32ビットレジスタ(GPLYA又はGPLYB)で保持される。
多項式命令のこの周知の形態は、リードソロモン符号化に十分な支援を提供する多項式乗算の剰余部分を生み出す。これは、信号スクランブリング又は伝送符号の計算に関連付けられるような、多項式データ処理の他の形態には適していない。
信号スクランブリング又は伝送符号の生成の目的で特殊用途ハードウェアを提供することもよく知られている。その様な特殊用途ハードウェアは、必要な計算を高速で実行することができる形態で提供することができるが、この専用機能のためにかなりの回路リソースを消費することに加えて、更に比較的にフレキシビリティに欠けており、再利用及び/又は修正には不適当であるという不利点を有している。
1つの態様から見れば、本発明は、データを処理する装置を提供しており、その装置において、
1つ又はそれ以上の制御信号を生成するプログラム命令に応答する命令復号器と、
複数のレジスタを有するレジスタバンクと、
前述の命令復号器及び前述のレジスタバンクと連結され、前述のレジスタバンク内に格納された1つ又はそれ以上のデータ値に関する前述のプログラム命令に対応するデータ処理演算を実行するために、前述の1つ又はそれ以上の制御信号に応答する処理回路構成であって、
前述の命令復号器は、分母多項式による分子多項式の2つの要素のフィールドに亘る多項式除算の商の多項式を表わす少なくとも1つの商の値を生成するために前述の処理回路構成を制御する、1つ又はそれ以上の制御信号を生成するための多項式除算命令に応答しており、前述の分母多項式は、N≧i≧0に対するcの和により与えられるN次数多項式であって、cまでのc(N−1)は、前述のレジスタバンクのレジスタに格納される個別のビットであり、c=1は、前述のレジスタの中には格納されない、処理回路構成と、を備えている。
本技法は、例えば、命令復号器、レジスタバンク、及び多項式除算から生じる商の多項式を表わす商の値を少なくとも生成する多項式除算命令を追加的に提供することのできる処理回路構成などの汎用素子を有するプログラム可能なデータ処理装置を提供する。更に、分母多項式は、多項式の最高次数項の係数が、「1」に固定される形態でレジスタバンクのレジスタ内部に格納され、レジスタ内に格納される必要は無いと見なされる。これは、分母多項式が、分母の値を格納するために使用されるビット幅より1つ高い次数を有することを可能にし、その結果、起こり得る結果の最大ビット幅をより容易に適合させるように多項式除算の結果を表わすために、レジスタバンクのレジスタ内のビット空間をより効率的に使用することが可能になる。
分母多項式の係数を格納するレジスタは、Nビットレジスタであり得る。
操作される多項式は、様々な異なる方法でレジスタ内に格納される値によって表わされ得るが、レジスタ内に格納される値のそれぞれのビット位置に異なる項の係数を格納することによってそれらを表わしているのは、好都合である。
係数は、例えば、最上位ビット位置に格納された係数を有している最下次数項が、最下位ビット位置に格納されたその係数を備えて最高次数項へ進むように、レジスタ内に保持される値の中で異なる順序で、或いは反対の順序で(例えば、リトルエンディアン又はビッグエンディアン格納のように)格納することができる。
分子多項式は、分母多項式の次数よりも高い次数になる場合が多く、従って、好都合な実施形態は、その様なより幅の広いレジスタ(例えば、アキュムレータレジスタ)が、レジスタバンク内に提供される時には、レジスタバンク内の2つのNビットレジスタ又は2Nビットレジスタの何れかの中に格納された2Nビット分子値によって分子多項式を表わしている。
多項式除算命令は、更に、多項式除算から生じる剰余多項式を表わす剰余値の他に、商の多項式を表わす商の値を生成してもよい。商の多項式は、スクランブル信号、伝送符号などを生成するのに有用であるが、剰余多項式も、他の状況では有用であり、従って、多項式除算命令から両方が生成されれば好都合である。
剰余値及び商の値は、レジスタバンクのそれぞれのNビットレジスタの中に格納されれば好都合である。
本技法の実施効率は、使用されるレジスタバンクが、多項式除算命令以外のプログラム命令によって使用される複数の汎用スカラレジスタを備えている時には、向上する。
多項式除算命令及び様々な機能に本システムを再利用することのできる能力を組み込んでいるデータ処理システムの一般的適用性は、本システムが、先に述べた多項式除算命令と組み合わせて多項式乗算命令を更に提供する時に強化される。
多項式除算命令は、スカラ形式で要求されることが多いが、分母値が、まれに典型的に変化し、商の値のベクトル列を生成するために分子値の長いベクトル列に適用される必要があることがあるので、幾つかの実施形態では、多項式除算命令を分母値がスカラ値になっている状態でベクトル命令として提供することが望ましい場合もあり得る。
別の態様から見れば、本発明は、データを処理する方法を提供しており、当該方法は、
1つ又はそれ以上の制御信号を生成するためにプログラム命令を復号化する工程と、
前述の1つ又はそれ以上の制御信号に応えて、複数のレジスタを有するレジスタバンク内に格納された1つ又はそれ以上のデータ値に関する前述のプログラム命令に対応するデータ処理演算を実行する工程であって、
前述の復号化は、分母多項式によって分子多項式の2つの要素のフィールドに亘る多項式除算のための商の多項式を表わす少なくとも1つの商の値の生成を制御する、1つ又はそれ以上の制御信号を生成する多項式除算命令に応答しており、前述の分母多項式は、N≧i≧0に対するcの和によって与えられるN次数多項式であって、ここにcまでのc(N−1)は、前述のレジスタバンクのレジスタに格納されるそれぞれのビットであり、c=1は、前述のレジスタ内には格納されない、データ処理演算を実行する工程と、から成る。
本発明の更なる態様は、本技法によるハードウェアを制御する、先に論じた多項式除算命令を組み込んでいるコンピュータプログラムの提供であるものと理解頂けるであろう。
本発明の実施形態を、ほんの一例として、添付の図面を参照しながらこれより説明してゆく。
多項式除算命令への支援を含んでいるデータ処理装置を概略的に図解している。 多項式除算命令の構文を概略的に図解している。 例示的な多項式除算演算を概略的に図解している。 多項式除算命令に応えて多項式除算演算を実行する回路を概略的に図解している。 ベクトル多項式除算命令の例示的な構文を図解している。 多項式がレジスタ内に格納された値によって表わされ得る2つの代替的な方法を図解している。 多項式乗算命令の構文を概略的に図解している。
図1は、メモリ6と連結されるプロセッサ4の形態をしたデータ処理装置2を図解している。メモリ6は、例えば信号スクランブルを実行するプログラム命令の様なプログラム命令8と、例えばスクランブルをかけられるべき及び伝送されるべきストリームを形成するデータ値10の様な処理演算を施されるデータ値と、を格納する。
プロセッサ4は、Nビットレジスタ(例えば、32ビットレジスタ)と、(随意的には、)乗累算命令と関連してアキュムレータレジスタとして使用するために提供される幾つかの2Nビットレジスタ14と、で形成されるレジスタバンク12を含んでいる。乗算器16、シフター18、及び加算器20を含む処理素子は、メモリ6からフェッチされる時に、命令パイプライン24に沿って進むプログラム命令に応えて命令復号器22によって生成される制御信号の制御下で処理演算を実行する。プロセッサ4は、メモリ6からフェッチされるプログラム命令に応えて、例えば、標準的な論理及び算術演算の様な汎用目的データ処理作業を実行する、スカラレジスタバンク12、14を備えている汎用目的プロセッサである。命令復号器22によって生成される制御信号は、所望のデータ処理演算を実行するようにデータ処理素子16、18、20を設定する。
プロセッサ4の中に追加的に提供されるのは、多項式除算回路構成26であり、この回路構成は、(レジスタ12、14を介して)メモリ6から読み出されたデータ値に関して多項式除算演算を実行するために命令復号器22によって生成された制御信号に応答する。これらの多項式除算演算及び多項式除算命令を下文で更に説明してゆく。
図2は、多項式除算命令DIVL.Pnの構文を図解している。この構文DIVL.Pn(及び後で検討する符号のdivl_pn)では、「n」は、演算の幅(例えば、8、16、又は32)であり、レジスタの幅「N」を下回ってもよい。以下の実例では、N=nと仮定されているが、本技法は、N≠n(例えば、N=32並びにN=8、16又は32)の時でも適用できる。多項式除算命令は、その入力オペランドを保持するために3つのレジスタを使用する。これらのレジスタは、この実例のレジスタバンク12の中のNビットレジスタである。分子多項式を表わす分子値は、レジスタr0及びr1の中に格納される。分子値は、従って2Nビット値である。分母多項式を表わす分母値は、レジスタr2の中に格納される。分母値は、分母多項式が、「1」の係数を有する最高次数項から始まり、それに応じて分母値が最高次数項の後に続く項の係数を表わしさえすればよいと仮定して、分母多項式を表わす。これは、分母多項式が、レジスタr2の幅より1つ大きい項を含むことを可能にしている。その様な多項式除算から生じる剰余値は、分母値より1小さいビット長を有するであろうし、且つレジスタr2及び剰余値が格納されるレジスタ(r4)が、同じ幅を有している時には、適宜に、使われないレジスタのビット空間がない状態で自然にレジスタサイズに適合すると考えられるので、これは利点である。而して、32ビットレジスタの場合では、分母の商は、33個の項を有することが可能であり、剰余の商は、32個の項を有することが可能である。
図2で見られるように、多項式除算命令DIVL.Pnは、商の多項式を表わす商の値をレジスタr3へ、剰余多項式を表わす剰余値をレジスタr4へ戻す。図解される構文では、分母商は、レジスタr2内に格納された分母値のビットによって特定される係数を備える項に加えて最高次数項xを備えて拡張されるのが分かるであろう。分子多項式は、(xで乗算して高次数部分ヘ上げられるように示される)レジスタr1内に格納された係数によって特定される項を、その高次数部分と見なし、分子多項式の低次数部分は、レジスタr0から取り出された係数を有する項を備えて形成される。
処理されている多項式の次数は、この標準的な構文では変数Nで表わされていることが分かるであろう。これは、様々な異なる値をとることが可能であり、処理されている多項式は、データ処理要件に応じて、例えば、次数8、16又は32であり得るものと理解頂けるであろう。Nには他の値も可能である。
N=32の場合における多項式除算命令の1つの見方として、この命令は、以下のCプログラム符号と同等の結果を生じる。
Figure 2011517496
図3は、例示的な多項式除算演算を概略的に図解している。この事例では、N=4は、5個の項まで備える分母多項式と8個の項まで備える分子多項式が得られている。図解されるこの実例では、分母多項式の項x及びxの係数は共にゼロである。従って、分母多項式は、x+x+1である。レジスタr2内に格納される分母値は、「0101」であり、これは、分母多項式の中の最高次数項は、常に係数「1」を有していると仮定されるので、分母多項式の係数を提供するために、「1」の値によってその最上位端部で拡張される。当業者におかれては理解頂けるであろうが、この仮定が正しいものであるために、この仮定は、分母多項式の整列を任意の分子多項式の関連付けられた整列に合わせる必要があってもよい。しかしながら、分母多項式は、準固定値である場合が多く、従って、その様な分母多項式の整列は、通常では、計算毎に必要とされないであろう。更に、分子多項式は、データストリームである場合が多く、従ってその様なデータストリームの中の整列は、通常では、適切な開始点を選ぶことによって実現される。
多項式除算命令の働きは、長除算命令と類似している。2つの要素のフィールドに亘る多項式演算(即ち、項の係数が「0」又は「1」のどちらかであり得る)では、加算及び減算は、排他的OR機能と同等である。乗算は、AND演算と同等である。これらの演算は、同じ次数の項に対して実行される。図解される実例では、多項式除算命令によって生じる商の多項式は、「x+x+x」であり、これは、「1110」の商の値によって表わされる。剰余多項式は、「1」であり、これは「0001」の剰余値によって表わされる。
図4は、例えば、図1の多項式除算回路構成26によって提供されてもよい、次数4の多項式除算命令を実施する回路構成を図解している。見られるように、多項式除算命令に応えて多項式除算演算を実行する回路構成は、ANDゲート及びXORゲートの配列を備えている。それらのゲートへの入力は、分子値[n:n]及び分母値[1:p]である。
図4の回路構成は、回路構成が、使用するために作動され、分子値及び分母値が、レジスタバンク12から読み出され、図4の回路構成の入力へ供給されるのであるから、多項式除算命令に応えて命令復号器22によって生成される制御信号によって制御される。更に、商の値[q:q]及び剰余値[r:r]は、同様に、図4の回路構成の出力から読み取られレジスタバンク12内のレジスタへ戻されて格納される。この実例では、2つの書き込みポートは、商の値及び剰余値の両方がその中へ書き込まれることを可能にするために、レジスタバンク12に提供されている。
図4の回路は、4の次数を備えている多項式除算を計算するためのものであると理解頂けるであろう。しかしながら、この回路構成の規則正しい拡張は、より高い次数の多項式除算のための多項式除算命令演算を提供し、当業者にはよく知られているであろうが、実際には、同じ回路構成は、信号値の適切な乗算を用いて異なる次数のそれらの除算のために再利用することができる。
32、16又は8次数の何れかの多項式除算を実行する回路構成を画定するレジスタ転送言語(RTL)は、下記の通りである。
Figure 2011517496
Figure 2011517496
Figure 2011517496
Figure 2011517496
Figure 2011517496
Figure 2011517496
Figure 2011517496
図5は、ベクトル多項式除算命令に使用してもよい構文を図解している。この構文は、レジスタが、分子値並びに結果として生じる商の値及びベクトルレジスタによって置き換えられる剰余値を格納している以外は、図2に図解される構文と同様である。分母商及び分母値は、分子値の長いシーケンスに対して一定である場合が多いものと理解頂けるように、分母は、スカラレジスタに格納されたスカラ値のままである。これは、伝送されるべき信号データの並列多重ストリームで処理するスクランブラプログラムに関連付けられる動作の一種である。商の多項式と商の値は、生の分子数値よりも伝送により適した特徴を備えて伝送されるべきデータを形成する(例えば、分子値の中の固定ビット値の長いシーケンスは、商の値の中のビット値のより容易に伝送される代替的なパターンに変えられるであろう)。商の値を生成する本技法の多項式除算命令は、伝送されるべき信号にスクランブルをかけようとするその様なスクランブラプログラムと共に使用するのによく適している。
図6は、多項式の項の係数がレジスタ内に格納され得る2つの方法を図解している。特に、最高次数項の係数は、多項式係数を表わす値を格納するレジスタ内の最上位ビット位置又は最下位ビット位置の何れかに格納されてもよい。他の係数は、この該当する選択された端点から順々に後に続くことが可能である。これは、ビッグエンディアン又はリトルエンディアンの何れかの形態でレジスタ内に格納されている係数と同様である。
本技法の多項式除算命令は、同じプロセッサ4によって支援されることも可能である多項式乗算命令との好都合な組み合わせを提供する。この場合では、多項式乗算命令を支援するために、図1に図解される多項式除算回路構成26と類似している追加の処理ユニットを追加してもよい。図7は、その様な多項式乗算命令に使用してもよい構文を図解している。第1の多項式及び第2の多項式は、それぞれのレジスタr0及びr1内に格納された値によって表わされる。結果として生じる積の多項式は、レジスタr2内に格納された積の値によって表わされる。積の多項式値は、第1及び第2の多項式の長さの倍であり、従って、レジスタr2は、第1及び第2の多項式を表わす第1及び第2の値を格納するレジスタの長さの2倍である。実際には、レジスタr2は、2つの標準長さのレジスタを組み合わせることで提供することができる。或いは、レジスタバンク12は、図1に図解される2Nビットレジスタ14のような1つ又はそれ以上の倍幅のレジスタを含んでいてもよい。その様な倍幅のレジスタは、標準スカラ算術の乗塁算命令と共に使用するためにしばしば提供されるので、従ってこの種類の多項式乗算命令に再利用することが可能である。これらの倍幅レジスタは、これまでに検討した多項式除算命令に関して分子値を格納するのに使用することもできる。その場合では、倍幅レジスタは、図2に図解されるレジスタr0及びr1を単一のレジスタ内の分子多項式の全ての係数を表わしている値を、格納する単一の倍幅レジスタと置き換えるであろう。
異なる幅のバージョン及び累算機構を組み込んだバージョンを含む様々な形態の多項式乗算命令の演算は、以下の説明目的のC符号で提供されている。この符号は、多項式除算命令に類似する表現を更に含んでいる。この技術分野の従事者には理解されるように、これらの定義は、その演算を特定する関連付けられた命令に応えて、その様な演算を実行するために該当する回路構成を生成するのに使用することができるそれらの命令の働きである。
Figure 2011517496
Figure 2011517496
Figure 2011517496
Figure 2011517496
Figure 2011517496
Figure 2011517496
上記の技法は、ハードウェアが上述の命令を含む一連の固有の命令を実行することによって行うことができるが、代替的な実施形態では、その様な命令は、命令が仮想計算機に固有であっても、仮想計算機が別の固有の命令セットを有するハードウェア上でソフトウェアが動作することによって実装される、仮想計算機環境で実行されてもよいものと理解頂けるであろう。仮想計算機環境は、完全な命令セットの実行をエミュレートする完全な仮想計算機環境を提供してもよく、或いは、例えば、本技法の命令を含む幾つかの命令だけがハードウェアによって捕捉され、部分的な仮想計算機によってエミュレートされるように、部分的であってもよい。
より厳密には、上記の再配列命令は、仮想計算機が、内在するハードウェアプラットフォームと共に、上記の多項式処理を提供するために組み合わせて作動して、仮想計算機全体又はその一部の固有の命令として実行されてもよい。
6 メモリ
8 スクランブラプログラム
10 伝送されるべきデータストリーム
1つの態様から見れば、本発明は、データを処理する装置を提供しており、その装置において、
1つ又はそれ以上の制御信号を生成するプログラム命令に応答する命令復号器と、
複数のレジスタを有するレジスタバンクと、
前述の命令復号器及び前述のレジスタバンクと連結され、前述のレジスタバンク内に格納された1つ又はそれ以上のデータ値に関する前述のプログラム命令に対応するデータ処理演算を実行するために、前述の1つ又はそれ以上の制御信号に応答する処理回路構成であって、
前述の命令復号器は、分母多項式による分子多項式の2つの要素のフィールドに亘る多項式除算の商の多項式を表わす少なくとも1つの商の値を前記複数のレジスタに格納された出力として生成するために前述の処理回路構成を制御する、1つ又はそれ以上の制御信号を生成するための単一の命令としての多項式除算命令に応答しており、前述の分母多項式は、N≧i≧0に対するcの和により与えられるN次数多項式であって、cまでのc(N−1)は、前述のレジスタバンクのレジスタに格納される個別のビットであり、c=1は、前述のレジスタの中には格納されない、処理回路構成と、を備えている。
るコンピュータプログラム製品。
【0016】
【0016】
別の態様から見れば、本発明は、データを処理する方法を提供しており、当該方法は、
1つ又はそれ以上の制御信号を生成するためにプログラム命令を復号化する工程と、
前述の1つ又はそれ以上の制御信号に応えて、複数のレジスタを有するレジスタバンク内に格納された1つ又はそれ以上のデータ値に関する前述のプログラム命令に対応するデータ処理演算を実行する工程であって、
前述の復号化は、分母多項式によって分子多項式の2つの要素のフィールドに亘る多項式除算のための商の多項式を表わす少なくとも1つの商の値の、前記複数のレジスタに格納された出力としての生成を制御する、1つ又はそれ以上の制御信号を生成する単一の命令としての多項式除算命令に応答しており、前述の分母多項式は、N≧i≧0に対するcの和によって与えられるN次数多項式であって、ここにcまでのc(N−1)は、前述のレジスタバンクのレジスタに格納されるそれぞれのビットであり、c=1は、前述のレジスタ内には格納されない、データ処理演算を実行する工程と、から成る。

Claims (27)

  1. データを処理する装置において、
    1つ又はそれ以上の制御信号を生成するプログラム命令に応答する命令復号器と、
    複数のレジスタを有するレジスタバンクと、
    前記命令復号器及び前記レジスタバンクと連結され、前記レジスタバンク内に格納された1つ又はそれ以上のデータ値に関する前記プログラム命令に対応するデータ処理演算を実行するために、前記1つ又はそれ以上の制御信号に応答する処理回路構成であって、
    前記命令復号器は、分母多項式による分子多項式の2つの要素のフィールドに亘る多項式除算の商の多項式を表わす少なくとも1つの商の値を生成するために前記処理回路構成を制御する、1つ又はそれ以上の制御信号を生成するための多項式除算命令に応答しており、前記分母多項式は、N≧i≧0に対するcの前記和により与えられるN次数多項式であって、cまでのc(N−1)は、前記レジスタバンクのレジスタに格納される個別のビットであり、c=1は、前記レジスタの中には格納されない、処理回路構成と、を備えている装置。
  2. 前記レジスタは、Nビットレジスタである、請求項1に記載の装置。
  3. 前記レジスタバンクは、複数のNビットレジスタを備えている、請求項1に記載の装置。
  4. 多項式は、
    (i)Mビットレジスタのビットkである項xに対する係数cを備えている前記Mビットレジスタ内の値であって、(M−1)≧k≧0である値と、
    (ii)Mビットレジスタのビット(M−1)−kである項xに対する係数cを備えている前記Mビットレジスタ内の値であって、(M−1)≧k≧0である値と、のうちの1つによって表わされる、前述の請求項の何れか1つに記載の装置。
  5. 前記分子多項式は、前記複数のNビットレジスタの2つの中に格納された2Nビット分子値によって表わされる、請求項3に記載の装置。
  6. 前記分子多項式は、前記複数のレジスタの2Nビットレジスタ内に格納された2Nビット分子値によって表わされる、請求項1に記載の装置。
  7. 前記処理回路構成は、前記分母多項式による前記分子多項式の多項式除算によって生じる剰余多項式を表わす剰余値を生成する前記多項式除算命令に応えて前記命令復号器によって生成される前記制御信号によって制御される、前述の請求項の何れか1つに記載の装置。
  8. 前記剰余値は、前記複数のレジスタのNビットレジスタ内に格納されたNビット剰余値である、請求項7に記載の装置。
  9. 前記商の値は、前記複数のレジスタのNビットレジスタ内に格納されたNビット商の値である、前述の請求項の何れか1つに記載の装置。
  10. 前記多項式除算命令は、生成された商の値を利用して伝送されるべき信号にスクランブルをかけるために前記装置によって実行されるスクランブラプログラム符号の一部分である、前述の請求項の何れか1つに記載の装置。
  11. 前記レジスタバンクは、前記多項式除算命令以外のプログラム命令によって使用される複数の汎用スカラレジスタを備えている、前述の請求項の何れか1つに記載の装置。
  12. 前記命令復号器は、第2の多項式によって第1の多項式の2つの要素のフィールドに亘る多項式乗算に対する積の多項式を表わす少なくとも1つの積の値を生成するように前記処理回路構成を制御する1つ又はそれ以上の制御信号を生成する多項式乗算命令に応答する、前述の請求項の何れか1つに記載の装置。
  13. 前記多項式除算命令は、スカラ値である前記分母値と、前記商の値と、ベクトル値である前記分子多項式を表わす分子値と、を備えているベクトル命令である、前述の請求項の何れか1つに記載の装置。
  14. データを処理する方法であって、
    1つ又はそれ以上の制御信号を生成するためにプログラム命令を復号化する工程と、
    前記1つ又はそれ以上の制御信号に応えて、複数のレジスタを有するレジスタバンク内に格納された1つ又はそれ以上のデータ値に関する前記プログラム命令に対応するデータ処理演算を実行する工程であって、
    前記復号化は、分母多項式によって分子多項式の2つの要素のフィールドに亘る多項式除算のための商の多項式を表わす少なくとも1つの商の値の生成を制御する、1つ又はそれ以上の制御信号を生成する多項式除算命令に応答しており、前記分母多項式は、N≧i≧0に対するcの前記和によって与えられるN次数多項式であって、ここにcまでのc(N−1)は、前記レジスタバンクのレジスタに格納されるそれぞれのビットであり、c=1は、前記レジスタ内には格納されない、データ処理演算を実行する工程と、から成る方法。
  15. 前記レジスタは、Nビットレジスタである、請求項14に記載の方法。
  16. 前記レジスタバンクは、複数のNビットレジスタを備えている、請求項14に記載の方法。
  17. 多項式は、
    (i)Mビットレジスタのビットkである項xに対する係数cを備えている前記Mビットレジスタ内の値であって、(M−1)≧k≧0である値と、
    (ii)Mビットレジスタのビット(M−1)−kである項xに対する係数cを備えている前記Mビットレジスタ内の値であって、(M−1)≧k≧0である値と、の1つによって表わされる、前述の請求項の何れか1つに記載の方法。
  18. 前記分子多項式は、前記複数のNビットレジスタの2つの中に格納された2Nビット分子値によって表わされる、請求項16に記載の方法。
  19. 前記分子多項式は、前記複数のレジスタの2Nビットレジスタ内に格納された2Nビット分子値によって表わされる、請求項14に記載の方法。
  20. 前記多項式除算命令を復号化することによって生成される前記制御信号は、前記分母多項式による前記分子多項式の多項式除算によって生じる剰余多項式を表わす剰余値の生成を制御する、前述の請求項14から請求項19の何れか1つに記載の方法。
  21. 前記剰余値は、前記複数のレジスタのNビットレジスタ内に格納されたNビット剰余値である、請求項20に記載の方法。
  22. 前記商の値は、前記複数のレジスタのNビットレジスタ内に格納されたNビット商の値である、前述の請求項14から請求項21の何れか1つに記載の方法。
  23. 前記多項式除算命令は、生成された商の値を利用して伝送されるべき信号にスクランブルをかけるために実行されるスクランブラプログラム符号の一部分である、前述の請求項の14から請求項22の何れか1つに記載の方法。
  24. 前記レジスタバンクは、前記多項式除算命令以外のプログラム命令によって使用される複数の汎用スカラレジスタを備えている、前述の請求項14から請求項23の何れか1つに記載の方法。
  25. 前記復号工程は、第2の多項式によって第1の多項式の2つの要素のフィールドに亘る多項式乗算に対する積の多項式を表わす少なくとも1つの積の値の生成を制御する1つ又はそれ以上の制御信号を生成する多項式乗算命令に応答する、前述の請求項14から請求項24の何れか1つに記載の方法。
  26. 前記多項式除算命令は、スカラ値である前記分母値と、前記商の値と、ベクトル値である前記分子多項式を表わす分子値と、を備えているベクトル命令である、前述の請求項14から請求項25の何れか1つに記載の方法。
  27. 請求項14から請求項26の何れか1つに記載の方法によってデータを処理する装置を制御するコンピュータプログラムを記憶するコンピュータプログラム記憶媒体を備えているコンピュータプログラム製品。
JP2011501283A 2008-03-26 2009-01-26 多項式データ処理演算 Active JP5193358B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB0805491.8 2008-03-26
GB0805491.8A GB2458665B (en) 2008-03-26 2008-03-26 Polynomial data processing operation
PCT/GB2009/000209 WO2009118500A1 (en) 2008-03-26 2009-01-26 Polynomial data processing operation

Publications (2)

Publication Number Publication Date
JP2011517496A true JP2011517496A (ja) 2011-06-09
JP5193358B2 JP5193358B2 (ja) 2013-05-08

Family

ID=39386780

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011501283A Active JP5193358B2 (ja) 2008-03-26 2009-01-26 多項式データ処理演算

Country Status (11)

Country Link
US (1) US8700688B2 (ja)
EP (1) EP2255279B1 (ja)
JP (1) JP5193358B2 (ja)
KR (1) KR20100139072A (ja)
CN (1) CN101981542B (ja)
AT (1) ATE521936T1 (ja)
GB (1) GB2458665B (ja)
IL (1) IL207633A0 (ja)
MY (1) MY158872A (ja)
TW (1) TW200945062A (ja)
WO (1) WO2009118500A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2458665B (en) * 2008-03-26 2012-03-07 Advanced Risc Mach Ltd Polynomial data processing operation
US8370705B1 (en) * 2009-09-23 2013-02-05 Nvidia Corporation System and method for calculating a checksum address while maintaining error correction information
GB2483902B (en) * 2010-09-24 2018-10-24 Advanced Risc Mach Ltd Vector floating point argument reduction
IL267998B2 (en) * 2017-02-23 2023-12-01 Advanced Risc Mach Ltd Element by vector operations in a data processing device

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4852098A (en) * 1986-10-22 1989-07-25 Thomson-Csf Polynomial operator in galois fields and a digital signal processor comprising an operator of this type
US6009450A (en) * 1997-12-24 1999-12-28 Motorola, Inc. Finite field inverse circuit
JP2000172520A (ja) * 1998-12-04 2000-06-23 Fujitsu Ltd ガロア体演算プロセッサ
WO2000041068A1 (en) * 1998-12-31 2000-07-13 Cipherit Ltd. Method for generating a value for a multiplicative inverse of an element of a galois field
US6662346B1 (en) * 2001-10-03 2003-12-09 Marvell International, Ltd. Method and apparatus for reducing power dissipation in finite field arithmetic circuits
GB2389678A (en) * 2002-06-14 2003-12-17 Univ Sheffield Finite field processor reconfigurable for varying sizes of field.
US20040117601A1 (en) * 2002-12-12 2004-06-17 Spracklen Lawrence A General-purpose processor that can rapidly perform binary polynomial arithmetic operations
US20040267681A1 (en) * 2003-06-27 2004-12-30 Paul Savage Creating polynomial division logical devices

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5459681A (en) * 1993-12-20 1995-10-17 Motorola, Inc. Special functions arithmetic logic unit method and apparatus
US5602767A (en) * 1995-08-29 1997-02-11 Tcsi Corporation Galois field polynomial multiply/divide circuit and a digital signal processor incorporating same
CN1097882C (zh) * 1998-10-14 2003-01-01 三星电子株式会社 里德-索罗门解码器和解码方法
US6721771B1 (en) * 2000-08-28 2004-04-13 Sun Microsystems, Inc. Method for efficient modular polynomial division in finite fields f(2{circumflex over ( )}m)
US7346159B2 (en) * 2002-05-01 2008-03-18 Sun Microsystems, Inc. Generic modular multiplier using partial reduction
US7313583B2 (en) * 2002-10-22 2007-12-25 Broadcom Corporation Galois field arithmetic unit for use within a processor
US7403964B2 (en) * 2002-10-22 2008-07-22 Broadcom Corporation Galois field multiplier array for use within a finite field arithmetic unit
US7464128B1 (en) * 2004-03-12 2008-12-09 Altera Corporation Methods and apparatus for single stage Galois field operations
US7958436B2 (en) * 2005-12-23 2011-06-07 Intel Corporation Performing a cyclic redundancy checksum operation responsive to a user-level instruction
GB2458665B (en) * 2008-03-26 2012-03-07 Advanced Risc Mach Ltd Polynomial data processing operation

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4852098A (en) * 1986-10-22 1989-07-25 Thomson-Csf Polynomial operator in galois fields and a digital signal processor comprising an operator of this type
US6009450A (en) * 1997-12-24 1999-12-28 Motorola, Inc. Finite field inverse circuit
JP2000172520A (ja) * 1998-12-04 2000-06-23 Fujitsu Ltd ガロア体演算プロセッサ
WO2000041068A1 (en) * 1998-12-31 2000-07-13 Cipherit Ltd. Method for generating a value for a multiplicative inverse of an element of a galois field
US6662346B1 (en) * 2001-10-03 2003-12-09 Marvell International, Ltd. Method and apparatus for reducing power dissipation in finite field arithmetic circuits
GB2389678A (en) * 2002-06-14 2003-12-17 Univ Sheffield Finite field processor reconfigurable for varying sizes of field.
US20040117601A1 (en) * 2002-12-12 2004-06-17 Spracklen Lawrence A General-purpose processor that can rapidly perform binary polynomial arithmetic operations
US20040267681A1 (en) * 2003-06-27 2004-12-30 Paul Savage Creating polynomial division logical devices

Also Published As

Publication number Publication date
EP2255279B1 (en) 2011-08-24
KR20100139072A (ko) 2010-12-31
IL207633A0 (en) 2010-12-30
EP2255279A1 (en) 2010-12-01
GB0805491D0 (en) 2008-04-30
US20090248780A1 (en) 2009-10-01
WO2009118500A1 (en) 2009-10-01
ATE521936T1 (de) 2011-09-15
GB2458665B (en) 2012-03-07
JP5193358B2 (ja) 2013-05-08
MY158872A (en) 2016-11-30
US8700688B2 (en) 2014-04-15
CN101981542A (zh) 2011-02-23
GB2458665A (en) 2009-09-30
TW200945062A (en) 2009-11-01
CN101981542B (zh) 2013-10-16

Similar Documents

Publication Publication Date Title
KR102447636B1 (ko) 부동 소수점 수를 누산하기 위한 산술 연산을 수행하는 장치 및 방법
KR102492356B1 (ko) 데이터 처리장치에서의 산술 확대
US5583804A (en) Data processing using multiply-accumulate instructions
KR101202445B1 (ko) 프로세서
JP3891997B2 (ja) 可変幅の符号付きおよび符号なしオペランドのためのモジュラ2進乗算器
KR100953884B1 (ko) Raid 장치 및 갈로아체의 곱 연산 처리 방법
KR20220047797A (ko) 암호화 연산을 위한 코프로세서
WO2009140142A1 (en) Implementation of arbitrary galois field arithmetic on a programmable processor
JP7096828B2 (ja) 入力オペランド値を処理するための装置及び方法
KR102584031B1 (ko) 데이터 처리장치에서의 요소 바이 벡터 연산
JP5193358B2 (ja) 多項式データ処理演算
CN112650471A (zh) 用于处理掩蔽数据的处理器和方法
JPH07271556A (ja) 電子乗算および加算装置および方法
JP5133491B2 (ja) 単一命令多数データ処理
JP2004533671A (ja) 多項式演算オペレーション
CN110914800A (zh) 基于寄存器的复数处理
US20100115232A1 (en) Large integer support in vector operations
JP7324754B2 (ja) ベクトル・キャリー付き加算命令
WO2013145276A1 (ja) 演算処理装置及び演算処理装置の制御方法
Arnold An improved DNA-sticker addition algorithm and its application to logarithmic arithmetic
WO2003096182A1 (en) “emod” a fast modulus calculation for computer systems
WO2019232159A1 (en) Modulus calculation that leverages computer architecture and/or operand clustering
KR20020021078A (ko) 데이터 처리 시스템 및 복수의 부호 데이터 값의 산술연산 수행방법
JP2001229009A (ja) メモリーを利用したnビット(無限ビット)の乗除算をプログラムで実現する方法
JPH0683587A (ja) 乗算処理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121023

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121214

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130104

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130201

R150 Certificate of patent or registration of utility model

Ref document number: 5193358

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160208

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250