JP2000172520A - ガロア体演算プロセッサ - Google Patents

ガロア体演算プロセッサ

Info

Publication number
JP2000172520A
JP2000172520A JP10345463A JP34546398A JP2000172520A JP 2000172520 A JP2000172520 A JP 2000172520A JP 10345463 A JP10345463 A JP 10345463A JP 34546398 A JP34546398 A JP 34546398A JP 2000172520 A JP2000172520 A JP 2000172520A
Authority
JP
Japan
Prior art keywords
galois field
operand
vector
arithmetic processor
data
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.)
Pending
Application number
JP10345463A
Other languages
English (en)
Inventor
Shunsuke Kamijo
俊介 上條
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP10345463A priority Critical patent/JP2000172520A/ja
Priority to US09/437,473 priority patent/US6523054B1/en
Publication of JP2000172520A publication Critical patent/JP2000172520A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)

Abstract

(57)【要約】 【課題】 簡単な構成で高速動作が可能でReed-Solomon
復号処理などをすべて処理できる実用的なガロア体演算
プロセッサの実現。 【解決手段】 命令デコーダ1と、少なくともガロア体
ベクトル加算器31とガロア体ベクトル乗算器32を有
し、第1及び第2オペランドに対してガロア体演算を実
行する演算ユニット30とを備えるガロア体演算プロセ
ッサにおいて、第2オペランドを、指数表現からベクト
ル表現に変換する指数−ベクトル変換回路22を備え、
ベクトル表現された第1オペランドと指数表現された第
2オペランドに対してガロア体演算を行う命令を備え
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、各種のガロア体の
演算を行えるガロア体演算プロセッサに関する。
【0002】
【従来の技術】近年、通信のディジタル化や記憶装置の
信頼正の向上などの点から、誤り訂正符号技術が注目さ
れている。現在、モデムなどの通信やCDなどの記憶媒
体にデータを記憶する際に誤り訂正符号技術が使用され
ている。特に、ディジタルテレビ放送などの普及が望ま
れる21世紀においては、誤り訂正符号技術はなくては
ならない技術になると予想される。
【0003】この誤り訂正符号の中核をなすのが、ガロ
ア体GF(28 )の演算である。例えば、ガロア体GF
(28 )のReed-Solomon符号は、ADSLや衛星放送な
どの標準規格にも採用されて、将来的には地上波のディ
ジタルテレビなどにも採用されるものと思われる。
【0004】
【発明が解決しようとする課題】従来、ガロア体演算を
行う符号器や復号器は、専用回路で実現するのが一般的
であった。しかし、専用回路の場合、異なる仕様の信号
には対処できないという問題がある。誤り訂正符号は、
用途によって符号長や訂正の多重度が異なり、専用回路
で実現する場合、様々な仕様に対応することが難しとい
う問題があった。
【0005】ガロア体演算命令を有するプロセッサは、
これまでほとんどなかったが、近年一部の限られた処理
を行うガロア体演算プロセッサが登場している。しか
し、このプロセッサは、例えばReed-Solomon復号などを
一貫して処理できるものではなく、その処理の一部を実
行するものである。そのため、乗算がガロア体ベクトル
表現の乗算か、指数表現の算術演算のいずれか一方のみ
をサポートしているだけで、必要な処理を行うためには
プロセッサに入力するデータに各種の前処理を施す必要
があった。プロセッサの命令のみで柔軟にプログラムす
る場合、一貫してプログラムを実行できるだけの性能と
命令体系が必要である。プロセッサと一部の処理を行う
専用回路とを連携させるのは、制御が難しく性能の低下
も問題になる。プロセッサでガロア体演算の処理系を実
現する場合には、処理の高速化、専用回路以上に回路規
模の低減、既存のパイプラインへの親和正を両立させる
ことが課題である。
【0006】また、累乗演算に関しては、(αi j
αi*j のように、指数同士の255を法とする算術演算
を行うのが一般的であり、シンドローム演算などを行う
場合には、演算結果を次の演算に仕様する場合変換が必
要であり、プロセッサのみでは処理できなかった。累乗
演算を指数同士の乗算で行う場合、演算器の増大が問題
となる。つまり、ガロア体GF(28 )演算器の中に、
255を法とする算術乗算器という特殊回路を含める必
要があるため、ハードウエアの利用効率の点で非常に不
利であるという問題があった。
【0007】本発明は、以上のような問題点を解決した
実用的なプロセッサを簡単な構成で実現することを目的
とする。
【0008】
【課題を解決するための手段】図1は、本発明のガロア
体演算プロセッサの第1原理構成図である。図示のよう
に、本発明のガロア体演算プロセッサは、データの変換
回路を、一つのオペランドに対してのみ行うように設
け、異なる表現のオペランドをそのまま演算できるよう
にしたことを特徴とする。
【0009】すなわち、本発明のガロア体演算プロセッ
サは、命令デコーダ1と、ガロア体ベクトル加算器31
やガロア体ベクトル乗算器32やガロア体指数加減算器
33などを有し、第1及び第2オペランドに対してガロ
ア体演算を実行する演算ユニット30とを備えるガロア
体演算プロセッサである。例えば、演算ユニット30
が、少なくともガロア体ベクトル加算器31とガロア体
ベクトル乗算器32を有する場合には、第2オペランド
を指数表現からベクトル表現に変換する指数−ベクトル
変換回路22を設け、ベクトル表現された第1オペラン
ドと指数表現された第2オペランドに対してガロア体演
算を行う命令を設けることを特徴とする。この構成であ
れば、第1オペランドとしてベクトル表現されたデータ
が、第2オペランドとして指数表現されたデータが入力
された場合に、第2オペランドが変換回路によりベクト
ル表現に変換された後、ガロア体ベクトル加算器又はガ
ロア体ベクトル乗算器で演算が行われる。このような機
能は、例えば、ベクトル表現のrと指数表現のiからr
*Gαi を演算する時に有効であり、プロセッサにこの
ような演算を1命令で実行する命令を実現できる。
【0010】第2オペランドと指数−ベクトル変換回路
22の出力のいずれかを選択して第2オペランドとして
演算ユニット30に供給するセレクタ55を設ければ、
第2オペランドとして、ベクトル表現されたデータと指
数表現されたデータのいずれも入力可能になり、プロセ
ッサにベクトル表現された2つのデータに対してガロア
体演算を行う命令を設けることができる。更に、第2オ
ペランドと演算結果のいずれかを選択して第2オペラン
ドとして出力する第2入力データセレクタ51を設けれ
ば、変換の必要な演算結果に対しても繰り返し演算が行
える。
【0011】また、演算ユニット30が少なくともガロ
ア体指数加減算器33を有する演算ユニットを有する場
合には、第2オペランドをベクトル表現から指数表現に
変換するベクトル−指数変換回路21を設け、指数表現
された第1オペランドとベクトル表現された第2オペラ
ンドに対してガロア体演算を行う命令を備えたことを特
徴とする。この構成であれば、第1オペランドとして指
数表現されたデータが、第2オペランドとしてベクトル
表現されたデータが入力された場合に、第2オペランド
が変換回路により指数表現に変換された後、ガロア体指
数加減算器で演算が行われる。GF(28 )の場合に
は、この加減算は255を法として、例えば以下のよう
に行われる。
【0012】(100+30)mod255=(13
0)mod255=130 (200+57)mod255=(257)mod25
5=2 (57−200)mod255=(−143)mod2
55=112 このような機能は、例えば、ベクトル表現のa(αi
と指数表現のjからi+Aj又はi−Aj(指数iとj
の加減算)を演算する時に有効であり、プロセッサにこ
のような演算を1命令で実行する命令を実現できる。更
に、j=0とすれば、単なるベクトル表現から指数表現
への変換となる。
【0013】同様にセレクタ55を設けて、第2オペラ
ンドとベクトル−指数変換回路21の出力のいずれかを
選択し、第2オペランドとして演算ユニット30に供給
するようにすれば、第2オペランドとして、指数表現さ
れたデータとベクトル表現されたデータのいずれも入力
可能にし、プロセッサに指数表現された2つのデータに
対してガロア体演算を行う命令を設けることができる。
【0014】上記の構成では、変換テーブルを一方のオ
ペランドに対してのみ設けるだけであるため、第1及び
第2オペランドの表現が規制されるが、表現に応じて入
力するオペランドを選択すればよいので、十分に様々な
演算に対応でき、実用上は問題ない。本発明の構成であ
れば、両方のオペランドに対して変換を行う必要はほと
んどなく、またあったとしても2つの命令を組み合わせ
ることで対処できる。もし、より汎用性が必要であれ
ば、上記の2つの構成を合わせて、図1に示すように、
演算ユニット30にガロア体ベクトル加算器31とガロ
ア体ベクトル乗算器32とガロア体指数加減算器33を
設け、更にベクトル−指数変換回路21と指数−ベクト
ル変換回路22を設ければ、より多数の演算命令が実現
できる。なお、参照番号11は第1オペランドを一時的
に保持する第1オペランドレジスタであり、12は第2
オペランドを一時的に保持する第2オペランドレジスタ
であり、61は第1オペランドレジスタ11の出力と前
の演算結果のいずれかを選択して演算ユニット30に第
1オペランドとして出力する第1演算データセレクタで
あり、62はセレクタ55の出力と前の演算結果のいず
れかを選択して演算ユニット30に第2オペランドとし
て出力する第2演算データセレクタであり、これらによ
り変換の必要のない演算結果の繰り返し演算が行える。
また、参照番号65は使用した演算器の出力を選択する
セレクタである。
【0015】図2は、本発明のガロア体演算プロセッサ
の第2の原理構成図である。このプロセッサは、演算ユ
ニットがガロア体指数加減器33を有し、変換テーブル
としてベクトル−指数変換回路21を有するもので、更
に入力される第1及び第2オペランドを選択する第1入
力セレクタ52と、第1及び第2オペランドを選択する
第2入力セレクタ53とを備えることを特徴とする。こ
のような構成により、ベクトル表現のa(αi )と指数
表現のjが与えられた時に、上記のように、i+Aj又
はi−Aj(指数iとjの加減算)だけでなく、j+A
i又はj−Aiを演算できるようにする。j−Aiの演
算で、j=0とすることによりベクトル表現のa
(αi )の逆元の指数表示を1命令で実行できる命令を
実現できる。例えば、図1の構成に図2の構成を加え、
上記のようにして求めたベクトル表現のaの逆元の指数
表示を、図1の構成において第2オペランドとして入力
すれば、2命令でガロア体の除算を実行できる。これま
ではベクトル表現の逆元を求める場合には、逆元テーブ
ルを設けていたが、このテーブルはその目的にのみ使用
するだけであり、その分回路規模が大きくなるという問
題があったが、本発明ではそのような問題を生じない。
【0016】図3は、本発明のガロア体演算プロセッサ
の第3の原理構成図である。図示のように、このプロセ
ッサは、第3オペランドが入力され、演算ユニット30
は、第1及び第2演算データがガロア体ベクトル乗算器
32に入力され、ガロア体ベクトル乗算器32の出力と
第3オペランドがガロア体ベクトル加算器34に出力さ
れるように構成されていることを特徴とする。図3の構
成では、更にガロア体ベクトル加算器34の出力を一時
的に保持するアキュームレータ35と、第1オペランド
の出力とアキュームレータ35の出力のいずれかを選択
して第1オペランドとしてガロア体ベクトル乗算器32
に出力する第1オペランドセレクタ62と、第3オペラ
ンドとアキュームレータ35の出力のいずれかを選択し
て第3オペランドとしてガロア体ベクトル加算器34に
出力する第3オペランドセレクタ63が設けられてい
る。また、第3オペランドレジスタ13は、第3オペラ
ンド一時的に保持する。
【0017】図3に示すような構成により、(第1オペ
ランド)*G(第2オペランド)+G(第3オペラン
ド)→第1オペランドや通常の(第1オペランド)*G
(第2オペランド)の積和の演算が可能になる。例え
ば、Reed-Solomon符号で誤り訂正を行う時のシンドロー
ム演算では、次のような演算が必要である。
【0018】
【数1】 この演算では、(第1オペランド)*G(第2オペラン
ド)+G(第3オペランド)→第1オペランドの演算が
有効である。この演算で、αi はガロア体GF(28
のベクトル表現で与えられる場合と、指数で与えられる
場合があり、本発明であればどちらの表現でも対応でき
る。この演算であれば第3オペランドセレクタ63は必
要ないが、第3オペランドセレクタ63を設けることに
より通常の積和演算が可能になる。この場合は、第1オ
ペランドセレクタ62は必要ない。なお、Reed-Solomon
符号で誤り訂正を行う時のチェン探索は多項式への代入
演算であり、積和演算で行える。
【0019】図3の構成では、アキュームレータ35を
設けたが、アキュームレータ35を設けずに第1オペラ
ンドと演算結果を選択するセレクタ又は第3オペランド
と演算結果を選択するセレクタを設けて、演算結果を第
1又は第3オペランドとして戻すようにしてもよい。上
記のような変換テーブルを有するガロア体演算プロセッ
サでは、変換処理と演算ユニットによる演算処理を2つ
のステージに分け、パイプライン処理により並行して行
うことにより、高速化が図れる。
【0020】パイプライン処理を行う場合には、フリッ
プ・フロップなどにより一時的にデータを保持する一時
保持レジスタが各ステージの接続部分に必要であるが、
命令デコーダ1は、そのような一時保持レジスタを制御
する制御データを出力する。更に、前の演算結果を使用
して繰り返し演算を行うため、演算結果を第2オペラン
ドとして戻すためのセレクタを有するフィードバック機
構を設けた場合には、このフィードバック機構の制御デ
ータも命令デコーダ1から出力される。そして、各一時
保持レジスタ及びフィードバック機構のセレクタに対応
して各ステージに制御データを順次伝送するように設け
た伝送レジスタで構成される制御判定回路を設け、制御
データが対応するレジスタ及びセレクタを制御するデー
タであるか判定して、判定結果に応じて対応するレジス
タ及びセレクタを制御する制御信号を発生する。演算結
果を次の第2オペランドとして使用する場合、変換が必
要な場合と必要でない場合がある。その場合、フィード
バック機構のセレクタの制御データには第1ステージで
の処理の有無を示すステージフラグを含ませ、フィード
バック機構に対応して設けられた制御判定回路は、ステ
ージフラグに応じて第1ステージでの処理を行わずにバ
イパスする制御信号を発生させる。
【0021】GF(2m )の演算においては、オペラン
ドとしての指数はmビットを越えることはなく、加減算
の結果も2m −1を法とするので、mビットを越えるこ
とはない。当然、ベクトル演算はmビットの演算であ
る。従って、演算におけるデータ幅は常に固定である。
従って、mビットの演算をn個並行に行うといったこと
が、固定のm×nのデータ幅で行える。例えば、データ
(レジスタ)の幅が32ビットのプロセッサにGF(2
8 )のReed-solomon符号演算を組み込む場合、4並列で
実行してもレジスタポート、オペランドバス、リザルト
(結果)バス、バイパス機構などに変更を加える必要は
なく、変換テーブルと演算器を4並列に設ければよい。
【0022】上記のように、n個並列で処理を行う場
合、n個の演算器の演算結果がゼロになったことを示す
nビットのフラグを連続領域に記憶するフラグ格納レジ
スタを設けることが望ましい。これにより、フラグが分
散している場合に比べて、チェン探索における代入演算
の処理が容易なプログラムが実現できる。また、ガロア
体ベクトル加算器の出力の前回の出力との論理和を算出
してゼロフラグを蓄積する累積フラグを設けることが望
ましく、上記のようにn個並列で処理する場合には、累
積フラグをn個設け、第2オペランドの即値として示さ
れる任意のmビットデータをn箇所に記憶する即値コピ
ーレジスタを設けることが望ましい。これにより、Reed
-solomonの符号化や復号化におけるユークリッドの互除
法などで必要な多項式の除算が容易になる。
【0023】また、上記の変換回路をメモリによるテー
ブルで実現する場合、プロセッサに内蔵されたメモリを
流用することが考えられる。しかし、n個の処理を並列
に行う場合、n個の異なるアドレスを入力する必要があ
る。そこで、データ幅がmのn個のメモリで構成してn
個のバンクを有するようにし、n個のメモリとしてアク
セス可能であると共に、共通のアドレスを入力してデー
タ幅がm×nのメモリとしてもアクセス可能にする。
【0024】また、ガロア体演算プロセッサでは、指数
表現の2m −1とベクトル表現の0が対応さることが、
ガロア体指数加減算器は、入力が2m −1の時には2m
−1を出力することが望ましい。GF(2m )のゼロベ
クトルはαi の指数表示では表せない。。GF(2m
のでは、2m −1をtとすると、αt =α0 であるが、
これでは演算上都合が悪い。例えば、GF(2m )のRe
ed-solomon復号アルゴリズムのチェン探索において、多
項式の代入演算を4個並列で行い、上記のように、結果
がゼロになった時にフラグ格納レジスタに格納する場合
を考える。i=4k〜4k+3の単位で代入処理を行う
とすると、i=252,253,254,255を1命
令で処理することになる。もし、i=0が探索の解とす
ると、i=255も解としてメモリに記憶されてしま
う。これを除外するには、i=255に対して特別な処
理を行うプログラムを各必要がある。これに対して、i
=255からベクトルの0に変換されるようにすると、
チェン探索における代入演算の結果はかならずα0
(00000001)となり、原理的に0にならない。
よってi=255を除外するプログラムを作らなくても
探索が行える。
【0025】一方、ベクトル表現の0を指数表現に変換
する場合は、データを出力しない方法も考えられるが、
確定した値を出力する方が有用である。例えば、指数加
算において、オペランドレジスタに255が入力される
と、加算の結果にかかわらず出力を255とすることが
考えられる。これはガロア体GF(28 )の乗算におい
ては、0ベクトルを乗算した結果が必ず0ベクトルにな
ることに相当する。また、指数減算においても、どちら
かのオペランドレジスタに255が入力した場合でも結
果を255とすることが考えられる。被減数に255が
入力した場合は、0ベクトルを何で除しても結果は0ベ
クトルとなることに相当する。減数に255が入力した
場合は、0ベクトルによる除算で、そもそも定義されな
い。
【0026】更に、本発明の別の態様のガロア体演算プ
ロセッサは、命令デコーダと、第1オペランドが両入力
に入力される第1ガロア体ベクトル乗算器と、一方に第
1オペランドが他方に演算結果が入力される第2ガロア
体ベクトル乗算器とを有する演算ユニットと、第2オペ
ランドで示される回数を計数する1ビットシフタと、第
2ガロア体ベクトル乗算器の出力を一時的に保持し、第
2ガロア体ベクトル乗算器の他方の入力に供給するアキ
ュームレータと、第1オペランドと第1ガロア体ベクト
ル乗算器の出力を選択する第1入力セレクタと、第2オ
ペランドと1ビットシフタの出力を選択して第2オペラ
ンドとして出力する第2入力セレクタとを備えることを
特徴とする。このガロア体演算プロセッサは、ベクトル
表現されたaと累乗数pからap を求めるのに適してい
る。
【0027】この構成においても、データ幅がmのn個
の演算を並列に行うことができる。また、第1オペラン
ドとしてαを、第2オペランドとして指数2を入力すれ
ば、指数表現からベクトル表現への変換が行われること
になる。もしこの変換をメモリを用いたテーブル変換で
行う場合には、2m ×mビットの容量が必要になり、m
に応じてハードウエア量が指数関数的に増大する。この
ため、この構成は特にmが大きい時に有効である。
【0028】
【発明の実施の形態】図4は、本発明の第1実施例のG
F(28 )ガロア体演算プロセッサの構成を示す図であ
る。第1実施例のプロセッサは、図1から図3に示した
基本構成を実現したものであり、変換処理と演算処理を
2つのステージに分けて、並列に行われるようにしてい
る。
【0029】図示のように、第1実施例のガロア体演算
プロセッサは、命令デコーダ1と、第1入力データが入
力され、演算ユニットに供給する第1オペランドとして
一時的に保持する第1オペランドレジスタ11と、第2
入力データが入力され、演算ユニットに供給する第2オ
ペランドとして一時的に保持する第2オペランドレジス
タ12と、第3入力データが入力され、演算ユニットに
供給する第3オペランドとして一時的に保持する第3オ
ペランドレジスタ13と、ベクトル−指数変換回路21
と、指数−ベクトル変換回路22と、ガロア体ベクトル
加算器31と第1ガロア体ベクトル乗算器32とガロア
体指数加減算器33と第2ガロア体ベクトル乗算器34
とを有する演算ユニット30と、出力レジスタ41と、
第2オペランドセレクタ51と、セレクタ55と、セレ
クタ61〜63と、ガロア体ベクトル加算器31とガロ
ア体指数加減算器33と第2ガロア体ベクトル乗算器3
4のいずれかの演算結果を選択するセレクタ65とを有
する。これらの要素については図1と図3を参照して既
に説明したか、又は説明したものと同じ働きをするの
で、ここでは説明を省略する。
【0030】第1実施例のガロア体演算プロセッサは、
RステージとE1ステージの間で第1から第3オペラン
ドを一時的に保持するラッチ71〜73と、E1ステー
ジとE2ステージの接続部で第1から第3オペランドを
一時的に保持するラッチ75〜77と、E2ステージの
演算結果を一時的に保持するラッチ78が設けられてい
る。これらのラッチ71〜73、75〜78は、次段の
ステージへのデータの供給タイミングを一致させるよう
に、前段の出力データを一時的に保持する。これらのラ
ッチのラッチ動作と次段への出力を制御する信号は、命
令デコーダ1から出力される。前の演算結果を使用して
繰り返し演算を行うため、第2オペランドセレクタ51
やセレクタ61〜63などのフィードバック機構を設け
た場合には、このフィードバック機構の制御データも命
令デコーダ1から出力される。そして、各ラッチ及びフ
ィードバック機構のセレクタに対応して各ステージに制
御データを順次伝送するように伝送レジスタ81〜8
6、88〜93、97〜99を設け、制御データが対応
するラッチやセレクタを制御するデータであるか判定し
て、判定結果に応じて対応するラッチやセレクタを制御
する制御信号を発生する。演算結果を次の第2オペラン
ドとして使用する場合、変換が必要な場合と必要でない
場合がある。その場合、フィードバック機構のセレクタ
の制御データには、第1ステージでの処理の有無を示す
ステージフラグを含ませ、フィードバック機構のセレク
タに対応して設けられた伝送レジスタ83、90は、ス
テージフラグに応じて第1ステージでの処理を行わずに
バイパスする制御信号を発生させる。参照番号87、9
4〜96は、ステージフラグを含んだ制御データとその
ステージの処理を行わずにバイパスする処理タイミング
であるかを示す制御データからバイパスするかどうかを
判定するバイパス判定ロジックを示す。
【0031】GF(28 )ガロア体ベクトル加算器31
は、例えば、図5に示すような構成を有し、GF
(28 )ガロア体ベクトル乗算器31は、例えば、図6
に示すような構成を有する。これらの構成については広
く知られているので、ここでは説明を省略する。また、
GF(28 )ガロア体指数加減算器は通常の加減算器で
実現できるのでここでは説明を省略する。
【0032】第1実施例のガロア体演算プロセッサは、
図1及び図2に示した構成を合わせ持っているので、ベ
クトル表現と指数表現の同じ表現のデータ同士及び異な
る表現のデータ同士であっても演算が行え、更に演算結
果をフィードバックして次の演算に使用する演算でも、
演算結果をそのまま使用したり変換して使用するといっ
たことが可能である。なお、図4の第1実施例では、ス
ペースの関係で図2に示した第1入力セレクタ52と第
2入力セレクタ53については図示を省略しているが、
図2と同様に設けられている。
【0033】次に、第1実施例のガロア体演算プロセッ
サのパイプライン処理について説明する。演算結果は、
E2ステージで出力される。オペランドの読み出しはR
ステージで行われるが、第1オペランドの方はテーブル
変換がないため、E1ステージでは使用されず、E2ス
テージで初めて使用される。このため、データのバイパ
スもE1/E2の2つのステージに対して行われる。例
えば、前述のガロア体の除算を行う方法に基づいて、図
7に示すような2命令でガロア体GF(2m )のベクト
ル除算(b/Ga)を行うことを考えてみる。この場
合、第1命令の結果を第2命令の第2オペランドとして
使用するということは、E2ステージからRステージへ
バイパスすることを意味する。例えば、図4において、
第2オペランド値に関する1ビットのステージフラグが
1の時、E1ステージで演算に使用し、ステージフラグ
が0の時E2ステージで使用するとする。除算を行うた
めの第2命令では、テーブル参照を行うため、第2オペ
ランドが必要なのはE1ステージである。従って、バイ
パス判定ロジック87は、レジスタ番号が一致し且つス
テージフラグが1の時バイパスを選択すると判定する。
この例の場合、原理的には1サイクルのインターロック
が必要である。しかし、演算結果に関係しない命令を2
つの命令の間に挿入すれば、このインターロックは避け
られる。
【0034】次に、(b/Ga)*Gcを演算する場合
を考える。この場合、図7の2命令に加えて、図8の第
3命令が必要になる。この場合、第2命令の結果を第2
オペランドとしてステージE2へバイパスすればインタ
ーロックは避けられることになる。図4において、ステ
ージフラグが0であり、バイパス判定ロジック87はバ
イパスを検出しないが、バイパス判定ロジック96のス
テージフラグが1である。もし、ステージフラグがない
とすると、通常はデータはE1ステージにバイパスされ
ることになり、不必要なインターロックがかかって性能
が低下することになる。
【0035】なお、第1及び第3オペランドについて
は、E1ステージで必要となることがないため、ステー
ジフラグは必要なく、バイパス判定ロジック94、95
はレジスタ番号の比較のみを行う。図9は、本発明の第
2実施例のガロア体演算プロセッサのデータ変換部と演
算ユニットの部分の構成を示す図である。第2実施例の
ガロア体演算プロセッサは、GF(28 )の演算を4個
並列に行う。32ビットのプロセッサであれば、レジス
タポート、オペランドバスなどはすべて32ビットのデ
ータ幅を有するので、データ変換部と演算部のみを4個
のGF(28 )の演算が並列に行えるようにするだけで
よい。図示のように、データ変換部は4個のデータ変換
ユニット20a〜20dを有し、演算ユニット30は4
個の演算回路30a〜30dを有する。各データ変換ユ
ニットは、8ビットのベクトル表現の第2オペランドを
指数表現に変換するベクトル−指数変換テーブルと、指
数表現の第2オペランドをベクトル表現に変換する指数
−ベクトル変換テーブルとを有する。また、各演算回路
は、8ビットの第1ガロア体ベクトル加算器31と、ガ
ロア体ベクトル乗算器32と、ガロア体指数加減算器3
3と、第2ガロア体ベクトル加算器34を有する。他の
部分は、第1実施例と同じである。
【0036】第2実施例のガロア体演算プロセッサに
は、演算結果のゼロフラグを図示していないフラグレジ
スタの連続したビットに格納する機能が設けられてい
る。Reed-Solomon復号処理アルゴリズムのチェン探索に
おいて行われる多項式への代入演算で、結果が0である
場合には、代入したαi 又はiを保存する処理が必要で
ある。この時、ゼロフラグがフラグレジスタの連続した
ビットに格納されていると、図10に示すようなプログ
ラムが可能である。このようなプログラムにすること
で、フラグが分散している時に比べてチェン探索が容易
に処理できる。
【0037】次に、第1実施例及び第2実施例のガロア
体演算プロセッサで、多項式の除算を行う例を説明す
る。このガロア体演算プロセッサには除算の余りの前回
との論理和をとる累積フラグの機能が設けられている。
例えば、被除多項式と除多項式が次の式で表されるとす
る。
【0038】
【数2】 この多項式除算のアルゴリズムは、まずbp-1/aq-1
qを求め、除多項式のすべての計数にqを乗じて被除多
項式の係数から引き、bp-1 +Gq*Gaq-1,bp-2
+Gq*Gaq-2 などを求める。これを次数一つずつず
らして行うと、多項式除算が実行できる。この時、多項
式除算の余りが0であるかどうかは、1回のループの中
でフラグがすべて0になったかどうかで判定できるの
で、累積フラグで判定できる。
【0039】また、第2実施例のガロア体演算プロセッ
サで上記の多項式の除算をn桁まとめて行う場合を考え
る。例えば、32ビットのデータバスで8ビットのReed
-Solomon復号演算を行う場合は、4桁まとめて行うこと
になる。この場合も、0フラグは、32ビットまとめて
0フラグを累積する方法で実現できる。ただし、この場
合は、bp-1/aq-1 =qが求まったら、4桁(32ビッ
ト)分の係数にコピーする機能を設けることが必要であ
る。
【0040】図11は、第2実施例のガロア体演算プロ
セッサの4個のデータ変換ユニット20a〜20dを実
現するメモリ構成を示す図である。指数表現とベクトル
表現の間の変換をメモリによるテーブルで実現する場
合、ROMを図示のようなパイプラインの内部に組み込
むことが考えられる。しかし、通常プロセッサはメモリ
を内蔵しており、この内蔵メモリを流用してテーブルを
参照した方がコスト的には有利である。また、ROMな
どをCPUのデータバスに内蔵するのはCPUの構造を
複雑にし、動作周波数の低下などの問題を生じる。この
ような理由で、内蔵メモリをテーブル参照に流用するこ
とが考えられるが、図9に示すような構成でGF
(2m )のテーブル変換をn並列で行う場合、問題を生
じる。このプロセッサのデータ幅は32ビットであり、
メモリは32ビットのデータ幅で使用されるが、8ビッ
トの4個のテーブル参照動作を並列に行う場合には8ビ
ットずつのアドレスに対してテーブル参照動作を行う必
要があるためである。このような問題を解決するため、
第2実施例では、図11のようなメモリ構成を使用して
いる。
【0041】例えば、GF(28 )のReed-Solomon符号
のテーブル変換を4並列で、8kバイトの内蔵メモリを
流用して行うことを考える。テーブル変換の基となるオ
ペランドは、8ビット×4の合計32ビットで表され
る。各8ビットが異なるアドレスを参照できるように、
メモリを4バンク25a〜25dに分割する。通常のメ
モリ参照の時には、11ビットの共通アドレスがアドレ
スバス23に出力され、セレクタ28a〜28dを介し
て各バンクに入力する。これに応じて、各バンクはそれ
ぞれDD〔31:24〕,DD〔23:16〕,DD
〔15:8〕,DD〔7:0〕のデータをデータバス2
4に出力する。ガロア体のテーブル参照時には、前述の
オペランドがアドレスバス23に出力され、セレクタ2
8a〜28dを介して各バンクにAD〔31:24〕,
AD〔23:16〕,AD〔15:8〕,AD〔7:
0〕の8ビットアドレスが与えられる。その際、アドレ
スの上位には、アドレスベースレジスタ27からベース
アドレスとして3ビットのアドレスが付加され、メモリ
内でのテーブルの位置に自由度が持てるようになってい
る。この独立した4系統のアドレスによって、DD〔3
1:24〕,DD〔23:16〕,DD〔15:8〕,
DD〔7:0〕のデータはそれぞれ独立に読み出され、
データバス24に出力される。
【0042】図12は、本発明の第3実施例のガロア体
演算プロセッサの演算ユニットの部分の構成を示す図で
ある。この演算ユニットは、第1オペランドに対して第
2オペランドで示された回数だけ累乗を行う。図示のよ
うに、演算ユニットは第1ガロア体ベクトル乗算器10
1と第2ガロア体ベクトル乗算器102を有し、第1ガ
ロア体ベクトル乗算器101の両方の入力にはラッチ1
13の出力が供給され、第2ガロア体ベクトル乗算器1
02の一方の入力にはラッチ113の出力が供給され、
他方の入力には第2ガロア体ベクトル乗算器102の出
力を一時的に保持するラッチ115の出力が供給され
る。ラッチ115の出力が累乗の結果である。ラッチ1
13の入力には、図示していないオペランドレジスタか
らの第1オペランドと第1ガロア体ベクトル乗算器10
1の出力のいずれかを選択するセレクタ111が設けら
れている。更に、ラッチ114の出力を1ビットずつ下
位にシフトする1ビット下位シフタ103が設けられて
おり、ラッチ114の入力には、図示していないオペラ
ンドレジスタからの第2オペランドと1ビット下位シフ
タ103の出力のいずれかを選択するセレクタ112が
設けられている。これにより、第2オペランドで指示さ
れた回数分だけのサイクルがカウントされる。
【0043】1サイクル目は、セレクタ111、112
で第1及び第2オペランドが選択され、ラッチ113に
被累乗数aがセットされ、ラッチ114に累乗数pがセ
ットされる。また、初期状態では、ラッチ115はα0
にセットされる。これはReed-Solomon符号では(0000000
1)である。1ビット下位シフタ103は、ラッチ114
の値を1ビット下位へシフトし、シフトアウトした値が
1になるとラッチ115をイネーブルにする。1ビット
下位シフタ103は、Reed-Solomon符号を例にすると、
8ビットの論理シフトで構成される。シフト結果の8ビ
ットはラッチ114の入力にフィードバックされ、2サ
イクル目以降はこのフィードバックがラッチ114へ選
択入力される。
【0044】第1ガロア体ベクトル乗算器101は、各
サイクル毎にa1→a2→a4→a8…というように、
順次aの2i 乗を求めて、結果はラッチ113に選択入
力される。第2ガロア体ベクトル乗算器102は、ラッ
チ113と115の値を乗算する。1ビット下位シフタ
103からkビット目がシフトアウトした時には、ラッ
チ113から第2ガロア体ベクトル乗算器102に入力
する値はaの2k になり、シフトアウトしたビットが1
の時に乗算結果がラッチ15に保持され、apが求ま
る。
【0045】なお、ガロア体GF(2m )の演算では、
データ幅は常にmビットであり、算術演算のように桁あ
ふれすることはない。このため、前述と同様に、m×n
ビットのデータバスでn並列の演算を行うことができ
る。第3実施例で、第1オペランドとしてαを入力し、
第2オペランドとして指数を入力すれば、指数表現から
ベクトル表現への変換が行われることになる。この変換
をメモリを用いたテーブル変換で行おうとすると、2m
×mビットの容量が必要になり、ハードウエア両が指数
関数的に増大する。従って、この構成は特にmが大きい
場合に有効である。
【0046】以上説明した第1実施例から第3実施例の
構成は、合わせて実現することが可能である。第1実施
例から第3実施例の構成を合わせて実現したガロア体演
算プロセッサの命令セットを表1から表3に示す。
【0047】
【表1】
【0048】
【表2】
【0049】
【表3】 表1はガロア体ベクトル演算命令を、表2はガロア体指
数演算命令を、表3はデータ転送・コピー命令を示す。
各命令についての詳しい説明は省略する。
【0050】上記の第1実施例から第3実施例の構成を
合わせて実現したガロア体演算プロセッサで、Reed-Sol
omon符号の復号処理を行う場合の処理について簡単に説
明する。Reed-Solomon復号処理では、まずシンドローム
演算を行うが、この演算では、図3の構成による積和演
算が有効であり、GMADE r1,r2,r3の命令を使用すれば容
易に行える。演算結果がシンドローム演算すべてのiに
ついて演算結果がゼロであれば誤りがないことになる。
4並列で演算する場合には、図10に示したプログラム
により演算結果の判定が容易に行える。
【0051】もし演算結果がゼロでない場合には、誤り
位置多項式を導出するが、この際にはユークリッド法が
使用され、多項式除算が行われるが、前述のフラグ累積
の機能により多項式除算が容易になる。次に誤り位置の
探索のために、チェン探索が行われるが、この場合も積
和演算が有効であり、更に4並列で演算する場合には、
図10に示したプログラムにより演算結果の判定が容易
に行える。
【0052】以上のように、本発明のガロア体演算プロ
セッサを使用すれば、Reed-Solomon復号処理がすべて容
易に行うことが可能である。
【0053】
【発明の効果】以上説明したように、本発明によれば、
簡単な構成で高速動作が可能な実用的なガロア体演算プ
ロセッサが実現でき、Reed-Solomon復号処理などをすべ
てプロセッサのみで処理できるようになる。
【図面の簡単な説明】
【図1】本発明の第1の原理構成図である。
【図2】本発明の第2の原理構成図である。
【図3】本発明の第3の原理構成図である。
【図4】本発明の第1実施例のガロア体演算プロセッサ
の構成を示すブロック図である。
【図5】実施例のガロア体ベクトル加算器の構成例を示
す図である。
【図6】実施例のガロア体ベクトル乗算器の構成例を示
す図である。
【図7】第1実施例でのパイプライン処理による並列処
理の例を説明する図である。
【図8】第1実施例でのパイプライン処理による並列処
理の例を説明する図である。
【図9】本発明の第2実施例のガロア体演算プロセッサ
の一部構成を示すブロック図である。
【図10】第2実施例での代入演算のプログラム例を示
す図である。
【図11】第2実施例での変換テーブルのメモリ構成を
示す図である。
【図12】本発明の第3実施例のガロア体演算プロセッ
サの一部構成を示すブロック図である。
【符号の説明】
1…命令デコーダ 11…第1オペランドレジスタ 12…第2オペランドレジスタ 13…第3オペランドレジスタ 21…ベクトル−指数変換テーブル 22…指数−ベクトル変換テーブル 30…演算ユニット 31…ガロア体ベクトル加算器 32…ガロア体ベクトル乗算器 33…ガロア体指数加減算器 34…第2ガロア体ベクトル加算器

Claims (28)

    【特許請求の範囲】
  1. 【請求項1】 命令デコーダと、 少なくともガロア体ベクトル加算器とガロア体ベクトル
    乗算器を有し、第1及び第2オペランドに対してガロア
    体演算を実行する演算ユニットとを備えるガロア体演算
    プロセッサにおいて、 前記第2オペランドを、指数表現からベクトル表現に変
    換する指数−ベクトル変換回路を備え、 ベクトル表現された前記第1オペランドと指数表現され
    た前記第2オペランドに対してガロア体演算を行う命令
    を備えることを特徴とするガロア体演算プロセッサ。
  2. 【請求項2】 請求項1に記載のガロア体演算プロセッ
    サであって、 前記第2オペランドと前記指数−ベクトル変換回路の出
    力のいずれかを選択し、前記第2オペランドとして前記
    演算ユニットに供給するセレクタを備え、 前記第2オペランドとして、ベクトル表現されたデータ
    と指数表現されたデータのいずれも入力可能にし、ベク
    トル表現された2つのオペランドに対してガロア体演算
    を行う命令を備えるガロア体演算プロセッサ。
  3. 【請求項3】 請求項1に記載のガロア体演算プロセッ
    サであって、 前記第1及び第2オペランドが前記ガロア体ベクトル乗
    算器に入力され、該ガロア体ベクトル乗算器の出力と第
    3オペランドが前記ガロア体ベクトル加算器に入力され
    るガロア体演算プロセッサ。
  4. 【請求項4】 請求項3に記載のガロア体演算プロセッ
    サであって、 前記第1オペランドと前記ガロア体ベクトル加算器の出
    力のいずれかを選択し、選択したデータを前記第1オペ
    ランドとして前記ガロア体ベクトル乗算器に出力する第
    1演算データセレクタを備えるガロア体演算プロセッ
    サ。
  5. 【請求項5】 請求項3に記載のガロア体演算プロセッ
    サであって、 前記第3オペランドと前記ガロア体ベクトル加算器の出
    力のいずれかを選択し、選択したデータを前記第3オペ
    ランドとして前記ガロア体ベクトル加算器に出力する第
    3演算データセレクタを備えるガロア体演算プロセッ
    サ。
  6. 【請求項6】 請求項3に記載のガロア体演算プロセッ
    サであって、 前記ガロア体ベクトル加算器の出力を一時的に保持する
    アキュームレータを備えるガロア体演算プロセッサ。
  7. 【請求項7】 請求項6に記載のガロア体演算プロセッ
    サであって、 前記第1オペランドと前記アキュームレータの出力のい
    ずれかを選択し、選択したデータを前記第1オペランド
    として前記ガロア体ベクトル乗算器に出力する第1デー
    タセレクタを備えるガロア体演算プロセッサ。
  8. 【請求項8】 請求項6に記載のガロア体演算プロセッ
    サであって、 前記第3オペランドと前記アキュームレータの出力のい
    ずれかを選択し、選択したデータを前記第3オペランド
    として前記ガロア体ベクトル加算器に出力する第3デー
    タセレクタを備えるガロア体演算プロセッサ。
  9. 【請求項9】 命令デコーダと、 少なくともガロア体指数加減算器を有し、第1及び第2
    オペランドに対してガロア体演算を実行する演算ユニッ
    トとを備えるガロア体演算プロセッサにおいて、 前記第2オペランドを、ベクトル表現から指数表現に変
    換するベクトル−指数変換回路を備え、 指数表現された前記第1オペランドとベクトル表現され
    た前記第2オペランドに対してガロア体演算を行う命令
    を備えたことを特徴とするガロア体演算プロセッサ。
  10. 【請求項10】 請求項9に記載のガロア体演算プロセ
    ッサであって、 前記第2オペランドと前記ベクトル−指数変換回路の出
    力のいずれかを選択し、前記第2オペランドとして前記
    演算ユニットに供給するセレクタを備え、 前記第2オペランドとして、指数表現されたデータとベ
    クトル表現されたデータのいずれも入力可能にし、指数
    表現された2つのデータに対してガロア体演算を行う命
    令を備えるガロア体演算プロセッサ。
  11. 【請求項11】 請求項9又は10に記載のガロア体演
    算プロセッサであって、 前記第1及び第2オペランドを選択する第1入力セレク
    タと、前記第1及び第2オペランドを選択する第2入力
    セレクタとを備えるガロア体演算プロセッサ。
  12. 【請求項12】 命令デコーダと、 少なくともガロア体ベクトル加算器とガロア体ベクトル
    乗算器とガロア体指数加減算器を有し、第1及び第2オ
    ペランドに対してガロア体演算を実行する演算ユニット
    とを備え、 ベクトル表現と指数表現のオペランドに対してガロア体
    演算を行う命令を備えることを特徴とするガロア体演算
    プロセッサ。
  13. 【請求項13】 請求項12に記載のガロア体演算プロ
    セッサであって、 前記第2オペランドを、指数表現からベクトル表現に変
    換する指数−ベクトル変換回路と、 前記第2オペランドを、ベクトル表現から指数表現に変
    換するベクトル−指数変換回路を備え、 ベクトル表現と指数表現の異なる表現のオペランドに対
    してガロア体演算を行う命令を備えるガロア体演算プロ
    セッサ。
  14. 【請求項14】 請求項13に記載のガロア体演算プロ
    セッサであって、 前記第2オペランドと前記指数−ベクトル変換回路の出
    力と前記ベクトル−指数変換回路の出力のいずれかを選
    択し、前記第2オペランドとして前記演算ユニットに供
    給するセレクタを備え、 前記第2オペランドとして、ベクトル表現されたデータ
    と指数表現されたデータのいずれも入力可能にしたガロ
    ア体演算プロセッサ。
  15. 【請求項15】 請求項14に記載のガロア体演算プロ
    セッサであって、 前記第1及び第2オペランドを選択する第1入力セレク
    タと、前記第1及び第2オペランドを選択する第2入力
    セレクタとを備え、 ベクトル表現された入力データによる除算命令を備える
    ガロア体演算プロセッサ。
  16. 【請求項16】 請求項1から15のいずれか1項に記
    載のガロア体演算プロセッサであって、 各ステージのデータを保持する一時保持レジスタを備
    え、 前記第2オペランドの変換を行う第1ステージと、前記
    演算ユニットにおける処理を行う第2ステージとに分
    け、前記第1ステージと前記第2ステージをパイプライ
    ン処理により並行して行うガロア体演算プロセッサ。
  17. 【請求項17】 請求項16に記載のガロア体演算プロ
    セッサであって、 演算結果を前記第2オペランドとしてフィードバックす
    るフィードバック機構を備え、 前記命令デコーダは、前記一時保持レジスタと各セレク
    タと前記フィードバック機構を制御する制御データを出
    力し、 各一時保持レジスタと各セレクタと前記フィードバック
    機構に対応して各ステージに前記制御データを順次伝送
    するように設けられ、前記制御データが対応する一時保
    持レジスタ又はセレクタ又は前記フィードバック機構を
    制御するデータであるか判定して、判定結果に応じて対
    応する一時保持レジスタ又はセレクタ又は前記フィード
    バック機構を制御する制御信号を発生する制御判定回路
    を備え、 前記フィードバック機構の前記制御データは、前記第1
    ステージでの処理の有無を示すステージフラグを含み、
    前記第2オペランドに対応して設けられた前記制御判定
    回路は、前記ステージフラグに応じて前記第1ステージ
    での処理を行わずにバイパスする制御信号を発生するガ
    ロア体演算プロセッサ。
  18. 【請求項18】 請求項5から11、16及び17のい
    ずれか1項に記載のガロア体演算プロセッサであって、 前記オペランドはm×n(m,nは正の整数)のデータ
    幅を有し、 前記変換回路は、データ幅がmのn個の変換回路を有
    し、 前記演算ユニットは、データ幅がmのn個の演算器を有
    し、 データ幅がmのガロア体演算をn組並行に行えるガロア
    体演算プロセッサ。
  19. 【請求項19】 請求項1から4及び12から15のい
    ずれか1項に記載のガロア体演算プロセッサであって、 前記オペランドはm×n(m,nは正の整数)のデータ
    幅を有し、 前記変換回路は、データ幅がmのn個の変換回路を有
    し、 前記演算ユニットは、データ幅がmのn個の演算器を有
    し、 データ幅がmのガロア体演算をn組並行に行えるガロア
    体演算プロセッサ。
  20. 【請求項20】 請求項19に記載のガロア体演算プロ
    セッサであって、 データ幅がmのn個の演算器の演算結果がゼロになった
    ことを示すnビットのフラグを連続領域に記憶するフラ
    グ格納レジスタを備えるガロア体演算プロセッサ。
  21. 【請求項21】 請求項19に記載のガロア体演算プロ
    セッサであって、 演算データのデータ幅はm×nであり、 データ幅がmのn個の前記ガロア体ベクトル加算器の出
    力の前回の出力との論理和を算出してゼロフラグを蓄積
    する累積フラグと、 前記第2オペランドの即値として示される任意のmビッ
    トデータをn箇所に記憶する即値コピーレジスタとを備
    えるガロア体演算プロセッサ。
  22. 【請求項22】 請求項18又は19に記載のガロア体
    演算プロセッサであって、 前記変換回路は、データ幅がmのn個のメモリで構成し
    たn個のバンクを有するメモリであり、n個のメモリと
    してアクセス可能であると共に、共通のアドレスを入力
    してデータ幅がm×nのメモリとしてもアクセス可能で
    あるガロア体演算プロセッサ。
  23. 【請求項23】 請求項1から4及び12から15のい
    ずれか1項に記載のガロア体演算プロセッサであって、 前記ガロア体ベクトル加算器の出力の前回の出力との論
    理和を算出してゼロフラグを蓄積する累積フラグを備え
    るガロア体演算プロセッサ。
  24. 【請求項24】 命令デコーダと、 少なくともガロア体ベクトル加算器とガロア体ベクトル
    乗算器とガロア体指数加減算器を有する演算ユニット
    と、 データを指数表現からベクトル表現に変換する指数−ベ
    クトル変換回路と、 データをベクトル表現から指数表現に変換するベクトル
    −指数変換回路を備え、ベクトル表現と指数表現の入力
    データに対してガロア体演算を行う命令を備えるガロア
    体演算プロセッサにおいて、 指数表現の2m −1とベクトル表現の0が対応すること
    を特徴とするガロア体演算プロセッサ。
  25. 【請求項25】 請求項24に記載のガロア体演算プロ
    セッサであって、 前記ガロア体指数加減算器は、入力が2m −1の時には
    m −1を出力するガロア体演算プロセッサ。
  26. 【請求項26】 命令デコーダと、 第1オペランドが両入力に入力される第1ガロア体ベク
    トル乗算器と、一方に前記第1オペランドが他方に演算
    結果が入力される第2ガロア体ベクトル乗算器とを有す
    る演算ユニットと、 第2オペランドで示される回数を計数する1ビットシフ
    タと、 前記第2ガロア体ベクトル乗算器の出力を一時的に保持
    し、前記第2ガロア体ベクトル乗算器の他方の入力に演
    算結果として供給するアキュームレータと、 前記第1オペランドと前記第1ガロア体ベクトル乗算器
    の出力を選択する第1入力セレクタと、 第2オペランドと前記1ビットシフタの出力を選択して
    前記第2オペランドとして出力する第2入力セレクタと
    を備えるガロア体演算プロセッサ。
  27. 【請求項27】 請求項26に記載のガロア体演算プロ
    セッサであって、 前記第1及び第2オペランド、アキュームレータ、第1
    及び第2入力セレクタは、m×n(m,nは正の整数)
    のデータ幅を有し、 前記演算ユニットは、データ幅がmのn個の第1ガロア
    体ベクトル乗算器とn個の第2ガロア体ベクトル乗算器
    を演算器を有するガロア体演算プロセッサ。
  28. 【請求項28】 請求項26又は27に記載のガロア体
    演算プロセッサであって、 前記第1オペランドとしてベクトル表現の原始元αを入
    力し、前記第2オペランドとして指数pを入力すること
    により、指数表現のデータをベクトル表現のデータに変
    換するガロア体演算プロセッサ。
JP10345463A 1998-12-04 1998-12-04 ガロア体演算プロセッサ Pending JP2000172520A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP10345463A JP2000172520A (ja) 1998-12-04 1998-12-04 ガロア体演算プロセッサ
US09/437,473 US6523054B1 (en) 1998-12-04 1999-11-10 Galois field arithmetic processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10345463A JP2000172520A (ja) 1998-12-04 1998-12-04 ガロア体演算プロセッサ

Publications (1)

Publication Number Publication Date
JP2000172520A true JP2000172520A (ja) 2000-06-23

Family

ID=18376776

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10345463A Pending JP2000172520A (ja) 1998-12-04 1998-12-04 ガロア体演算プロセッサ

Country Status (2)

Country Link
US (1) US6523054B1 (ja)
JP (1) JP2000172520A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006503382A (ja) * 2002-10-09 2006-01-26 アナログ デバイシーズ インク 小型ガロア体乗算器エンジン
CN100422926C (zh) * 2001-02-21 2008-10-01 美普思科技有限公司 多项式算术运算
JP2010102352A (ja) * 2003-05-16 2010-05-06 Analog Devices Inc 複合ガロア体エンジンおよびガロア体除算器および平方根エンジンおよび方法
JP2011517496A (ja) * 2008-03-26 2011-06-09 アーム・リミテッド 多項式データ処理演算
JP2016507831A (ja) * 2013-01-23 2016-03-10 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Vectorgaloisfieldmultiplysumandaccumulate命令を処理するためのコンピュータ・システム、コンピュータ・プログラム及び方法

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6876991B1 (en) * 1999-11-08 2005-04-05 Collaborative Decision Platforms, Llc. System, method and computer program product for a collaborative decision platform
US7599981B2 (en) * 2001-02-21 2009-10-06 Mips Technologies, Inc. Binary polynomial multiplier
US7181484B2 (en) * 2001-02-21 2007-02-20 Mips Technologies, Inc. Extended-precision accumulation of multiplier output
US7162621B2 (en) 2001-02-21 2007-01-09 Mips Technologies, Inc. Virtual instruction expansion based on template and parameter selector information specifying sign-extension or concentration
US7206410B2 (en) * 2001-10-10 2007-04-17 Stmicroelectronics S.R.L. Circuit for the inner or scalar product computation in Galois fields
JP4288486B2 (ja) * 2003-11-17 2009-07-01 日本電気株式会社 ディスクアレイ装置,raid用パリティデータ生成回路およびガロア体乗算回路
US7346761B2 (en) * 2005-10-08 2008-03-18 National Chung Cheng University Alu with auxiliary units for pre and post processing of operands and immediate value within same instruction cycle
US9513906B2 (en) 2013-01-23 2016-12-06 International Business Machines Corporation Vector checksum instruction
US9471308B2 (en) 2013-01-23 2016-10-18 International Business Machines Corporation Vector floating point test data class immediate instruction

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS554623A (en) 1978-06-27 1980-01-14 Kokusai Electric Co Ltd Decoder circuit for bch code
JPS60230719A (ja) 1984-04-28 1985-11-16 Nec Home Electronics Ltd リ−ドソロモン符号・復号方式のエラ−パタ−ン演算回路
JPS62268215A (ja) 1986-05-16 1987-11-20 Fuji Electric Co Ltd ガロア体演算回路
JPS63276923A (ja) 1987-04-15 1988-11-15 Oki Electric Ind Co Ltd ガロア体演算器
JPH10112659A (ja) * 1996-10-08 1998-04-28 Canon Inc 誤り訂正復号装置
US6134572A (en) * 1997-09-30 2000-10-17 Texas Instruments Incorporated Galois Field arithmetic apparatus and method
US6199086B1 (en) * 1997-12-24 2001-03-06 Motorola, Inc. Circuit and method for decompressing compressed elliptic curve points
JPH11196006A (ja) * 1997-12-26 1999-07-21 Nec Corp 並列処理シンドロ−ム計算回路及びリ−ド・ソロモン複合化回路
US6141786A (en) * 1998-06-04 2000-10-31 Intenational Business Machines Corporation Method and apparatus for performing arithmetic operations on Galois fields and their extensions
US6199087B1 (en) * 1998-06-25 2001-03-06 Hewlett-Packard Company Apparatus and method for efficient arithmetic in finite fields through alternative representation

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100422926C (zh) * 2001-02-21 2008-10-01 美普思科技有限公司 多项式算术运算
JP2006503382A (ja) * 2002-10-09 2006-01-26 アナログ デバイシーズ インク 小型ガロア体乗算器エンジン
JP4739020B2 (ja) * 2002-10-09 2011-08-03 アナログ デバイシーズ インク 小型ガロア体乗算器エンジン
JP2010102352A (ja) * 2003-05-16 2010-05-06 Analog Devices Inc 複合ガロア体エンジンおよびガロア体除算器および平方根エンジンおよび方法
JP2010102351A (ja) * 2003-05-16 2010-05-06 Analog Devices Inc 複合ガロア体エンジンおよびガロア体除算器および平方根エンジンおよび方法
JP2011517496A (ja) * 2008-03-26 2011-06-09 アーム・リミテッド 多項式データ処理演算
US8700688B2 (en) 2008-03-26 2014-04-15 U-Blox Ag Polynomial data processing operation
JP2016507831A (ja) * 2013-01-23 2016-03-10 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Vectorgaloisfieldmultiplysumandaccumulate命令を処理するためのコンピュータ・システム、コンピュータ・プログラム及び方法

Also Published As

Publication number Publication date
US6523054B1 (en) 2003-02-18

Similar Documents

Publication Publication Date Title
JP3241210B2 (ja) ビタビ復号方法及びビタビ復号回路
CN102084335B (zh) 任意伽罗瓦域算术在可编程处理器上的实施
JP4064989B2 (ja) パック・データの乗加算演算を実行する装置
JP2000172520A (ja) ガロア体演算プロセッサ
US7590930B2 (en) Instructions for performing modulo-2 multiplication and bit reflection
JP2835153B2 (ja) 高基数除算器
US5633897A (en) Digital signal processor optimized for decoding a signal encoded in accordance with a Viterbi algorithm
US7707483B2 (en) Technique for performing cyclic redundancy code error detection
US6754689B2 (en) Method and apparatus for performing subtraction in redundant form arithmetic
EP1941378A2 (en) Improved pipelined digital signal processor
CN114063973B (zh) 伽罗华域乘法器及纠删编解码系统
US20090063606A1 (en) Methods and Apparatus for Single Stage Galois Field Operations
WO1999066423A1 (fr) Dispositif pour calcul de donnees
US7711763B2 (en) Microprocessor instructions for performing polynomial arithmetic operations
JP3850511B2 (ja) リードソロモン復号装置
CA2329104C (en) Method and apparatus for calculating a reciprocal
US6609142B1 (en) Method of performing multiplication with accumulation in a Galois body
JP2842947B2 (ja) ガロアフィールド多項式乗算/除算回路およびそれを組込むディジタル信号プロセッサ
TW531710B (en) System and method for modular multiplication
EP0936537B1 (en) Cyclic redundancy check in a computer system
CN113485751A (zh) 执行伽罗瓦域乘法的方法、运算单元和电子装置
WO2000067125A1 (fr) Processeur
JP3850512B2 (ja) リードソロモン復号装置
Garcia et al. RNS scaling based on pipelined multipliers for prime moduli
JP2907138B2 (ja) 誤り訂正の演算処理方法及び処理回路

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051020

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051025

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060307