JPS59125437A - ハツシユ回路 - Google Patents
ハツシユ回路Info
- Publication number
- JPS59125437A JPS59125437A JP58172346A JP17234683A JPS59125437A JP S59125437 A JPS59125437 A JP S59125437A JP 58172346 A JP58172346 A JP 58172346A JP 17234683 A JP17234683 A JP 17234683A JP S59125437 A JPS59125437 A JP S59125437A
- Authority
- JP
- Japan
- Prior art keywords
- register
- bit
- hash
- circuit
- shift
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9014—Indexing; Data structures therefor; Storage structures hash tables
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔技術分野〕
本発明は、ディジタル計算機にお(・て「・・ランス」
演算を行なうハードウェア装置に関する。
演算を行なうハードウェア装置に関する。
ハツシュ関数の基本的な目的は、未知のそしておそらく
歪んだ分布の数値をより一様な分布の、しばしばより小
さな範囲内の数値に変換する事である。・・ツシュ関数
の1つの応用は連想記憶の分野にある。そこでは人物の
名前又は口座番号等の識別子がハツシュ関数によって計
算機のメモリのアドレスに変換される。このアドレスは
、その識別子に関係するデータを操索するための開始点
として用いられる。連想記憶が効率的に働くためには、
例え識別子が高度の相関を有する時でも、・・ツシュ関
数によって与えられるアドレスが可能なアドレス上に比
較的均一に拡がる事が重要である。
歪んだ分布の数値をより一様な分布の、しばしばより小
さな範囲内の数値に変換する事である。・・ツシュ関数
の1つの応用は連想記憶の分野にある。そこでは人物の
名前又は口座番号等の識別子がハツシュ関数によって計
算機のメモリのアドレスに変換される。このアドレスは
、その識別子に関係するデータを操索するための開始点
として用いられる。連想記憶が効率的に働くためには、
例え識別子が高度の相関を有する時でも、・・ツシュ関
数によって与えられるアドレスが可能なアドレス上に比
較的均一に拡がる事が重要である。
ハツシュ関数には、オペレーティング−システム、コン
パイラ、インタープリタ、データ・ベース管理、暗号方
式、単語綴り検査、誤り訂正検出方式等の他の多くの用
途が存在する。
パイラ、インタープリタ、データ・ベース管理、暗号方
式、単語綴り検査、誤り訂正検出方式等の他の多くの用
途が存在する。
・・ツシュ関数の上記の用途に加えて、もう1つの非常
に重要な用途は、主記憶アドレスを含む・・ツシュ・イ
ンデックス表によって、仮想アドレスを主記憶の実アド
レスに効率的に変換する事に関するものである。ハツシ
ュ関数は、データ処理777人中の不均一な分布の仮想
アドレスから一様な分布のハツシュ・インデックス表の
エントリ・アドレスを生成するために与えられる。但し
、ハツシュ・インデックス表の大きさは可変であり、主
記憶の大きさに基づいて(・る。もし、適当な)・ツシ
ュ関数が選ばれるならば、ノ・ツシュ・インデックス表
は最小限の大きさに保たれ、非常に効率的に使用される
であろう。
に重要な用途は、主記憶アドレスを含む・・ツシュ・イ
ンデックス表によって、仮想アドレスを主記憶の実アド
レスに効率的に変換する事に関するものである。ハツシ
ュ関数は、データ処理777人中の不均一な分布の仮想
アドレスから一様な分布のハツシュ・インデックス表の
エントリ・アドレスを生成するために与えられる。但し
、ハツシュ・インデックス表の大きさは可変であり、主
記憶の大きさに基づいて(・る。もし、適当な)・ツシ
ュ関数が選ばれるならば、ノ・ツシュ・インデックス表
は最小限の大きさに保たれ、非常に効率的に使用される
であろう。
警
ハツシュ関数は普通、ソフトウェア(即ち計算機プログ
ラム)で実現されるが、本発明によればハツシュ演算を
実行する非常に用途の広い回路が提供される。ハツシン
グを実行する・・−ドウエアを製作する2つの重要な利
点が存在する。第1に・・ツシュ演算が相当スピード・
アップできる。第2に非常に巧妙なハツシング手続即ち
アルゴリズムを経済的に使用できる。
ラム)で実現されるが、本発明によればハツシュ演算を
実行する非常に用途の広い回路が提供される。ハツシン
グを実行する・・−ドウエアを製作する2つの重要な利
点が存在する。第1に・・ツシュ演算が相当スピード・
アップできる。第2に非常に巧妙なハツシング手続即ち
アルゴリズムを経済的に使用できる。
ハツシングをハードウェアで実行する事の潜在的欠点は
、選択された特定の関数は特定のデータの集合に対して
はうまく働かない可能性がある事である。
、選択された特定の関数は特定のデータの集合に対して
はうまく働かない可能性がある事である。
即ちハツシュすべき目的物が特定の分布を有する時、で
きの悪い分布のハツンユ出力が生じることがある。従っ
て、多くの従来技術のシステムでは、ハードウェア又は
固定式のハツシングは入力データが多少は既知の固定さ
れた特性を有する場合にのみ用いられてきた。逆により
精巧なノ・ツンングが必要な時は、より複雑で時間のか
かる・・ツシング會アルゴリズムが、ソフトウェアの形
で実施されてきた。その場合ハツシング演算の実行に必
要な時間は大幅に増加する。
きの悪い分布のハツンユ出力が生じることがある。従っ
て、多くの従来技術のシステムでは、ハードウェア又は
固定式のハツシングは入力データが多少は既知の固定さ
れた特性を有する場合にのみ用いられてきた。逆により
精巧なノ・ツンングが必要な時は、より複雑で時間のか
かる・・ツシング會アルゴリズムが、ソフトウェアの形
で実施されてきた。その場合ハツシング演算の実行に必
要な時間は大幅に増加する。
前述のように、メモリ・アドレスを生成す全目的で・・
ノ7ング演算を行なう事は従来周知である。
ノ7ング演算を行なう事は従来周知である。
同様にガロア体の乗算も周知の数学的手続きである。下
記の文献はその代表的な先行技術である。
記の文献はその代表的な先行技術である。
米国特許第4215402号は、あるアドレス指定動作
が種々の型の・・ツシング動作を経て行なわれる大規模
な割算機メモリ・システムを開示して℃・る。しかしな
がら、ノ・ツシングを行なうのにガロア体の乗算を用い
る事は、なされて(・ない。
が種々の型の・・ツシング動作を経て行なわれる大規模
な割算機メモリ・システムを開示して℃・る。しかしな
がら、ノ・ツシングを行なうのにガロア体の乗算を用い
る事は、なされて(・ない。
米国特許第4162480号はガロア体計算機を開示し
ている。しかしながらこの文献は本発明の回路にいかな
る類似性を有する回路構造も開示していない。またこの
文献は、)・ツシュ定数の種々のシフトの予備計算と組
み合せた別個のローディング動作は開示していない。
ている。しかしながらこの文献は本発明の回路にいかな
る類似性を有する回路構造も開示していない。またこの
文献は、)・ツシュ定数の種々のシフトの予備計算と組
み合せた別個のローディング動作は開示していない。
米国特許第4037093号及び同第6805037号
は共に特殊なガロア体回路を開示しているが、それらは
・・ツシング動作に関係もなければ、又本発明と類似し
た回路構成を開示しているわけでもない。
は共に特殊なガロア体回路を開示しているが、それらは
・・ツシング動作に関係もなければ、又本発明と類似し
た回路構成を開示しているわけでもない。
本発明の目的は、理論的限界に近い優秀な結果を与え且
つ多くの応用に関してソフトウェアによっては実用上実
現不可能な非常に効率的なノ・ツシュ手続の・・−ドウ
エア的実現を提供する事である。
つ多くの応用に関してソフトウェアによっては実用上実
現不可能な非常に効率的なノ・ツシュ手続の・・−ドウ
エア的実現を提供する事である。
本発明の1態様によれば、ノ・ツシュ定数を変化させる
事によって容易に変更可能なノ・ツゾユ機構が提供され
る。従って大幅に異なった分布特性を有する数(・・ツ
シュすべき対象)の入力ストリームのために非常に小さ
な遅延でシステムを調整して回路の性能を大幅に変更す
る事ができる。
事によって容易に変更可能なノ・ツゾユ機構が提供され
る。従って大幅に異なった分布特性を有する数(・・ツ
シュすべき対象)の入力ストリームのために非常に小さ
な遅延でシステムを調整して回路の性能を大幅に変更す
る事ができる。
また本発明の1態様によれば、大規模集積回路の形に容
易に実現でき且つ非常に小さな遅延で動作するノ・ツシ
ング回路が提供される。
易に実現でき且つ非常に小さな遅延で動作するノ・ツシ
ング回路が提供される。
本発明の目的は、Nビットのノ・ツシュ定数の制御の下
でハツシュすべきNビットの対象(オペランド)に高度
に並列的なガロア体乗算を行なう事のできるノ・ツゾユ
回路によって達成される。この回路は、ノ・ツクユすべ
きNビットの対象を記憶するためのNビットの標準的な
シフトレジスタ及びハツシュ定数を記憶するためのNビ
ットのレジスタを備えている。また、・・ツシュ動作の
結果を累算するために通常のNビットの出力レジスfが
用いられる。さらにノ・ツシュ定数を巡回させたものを
記憶するためにに個のNビット・フィードバック・シフ
トレジスタ(FSR)が用いられる。上記シフトレジス
タの内容は上記対象レジスタの選択されたビットの制御
の下に排他的論理和を取られ、中間的部分積を形成する
。この動作はN / K回継続し、この時そのノ・ツシ
ング対象は完全に評価され、結果レジスタ中に置かれる
。
でハツシュすべきNビットの対象(オペランド)に高度
に並列的なガロア体乗算を行なう事のできるノ・ツゾユ
回路によって達成される。この回路は、ノ・ツクユすべ
きNビットの対象を記憶するためのNビットの標準的な
シフトレジスタ及びハツシュ定数を記憶するためのNビ
ットのレジスタを備えている。また、・・ツシュ動作の
結果を累算するために通常のNビットの出力レジスfが
用いられる。さらにノ・ツシュ定数を巡回させたものを
記憶するためにに個のNビット・フィードバック・シフ
トレジスタ(FSR)が用いられる。上記シフトレジス
タの内容は上記対象レジスタの選択されたビットの制御
の下に排他的論理和を取られ、中間的部分積を形成する
。この動作はN / K回継続し、この時そのノ・ツシ
ング対象は完全に評価され、結果レジスタ中に置かれる
。
この回路の重要な特徴は、ノ・ツシング動作の終了時に
、(i−1,2・・・K−1に関して)レジスタFSR
iの最終内容をレジスタFSR(i−l−1)にコピー
しハツシュ定数レジスタの内容をレジスタFSR1にコ
ピーする事によってハツシュ定数の種々のシフト結果が
フィードバック・シフトレジスタに再ロードされる事で
ある。
、(i−1,2・・・K−1に関して)レジスタFSR
iの最終内容をレジスタFSR(i−l−1)にコピー
しハツシュ定数レジスタの内容をレジスタFSR1にコ
ピーする事によってハツシュ定数の種々のシフト結果が
フィードバック・シフトレジスタに再ロードされる事で
ある。
このハツシュ回路のもう1つの重要な特徴は、ローディ
ング動作の間に・・ツ7ユ定数の種々のシフトが事実上
事前に計算され、フィードバック・シフトレジスタの動
作に関する限りは実際σル・ツシュ動作と殆んど同一の
動作系列によってフィードバック・レジスタにロードさ
れる事である。この事前の計算を行なう事によって・・
ツ/ユ定数は事実上部分的に乗算され、後続する高度に
並列的な・・ツシング動作のために適当な形式でフィー
ドバック・シフトレジスタにロードされる。
ング動作の間に・・ツ7ユ定数の種々のシフトが事実上
事前に計算され、フィードバック・シフトレジスタの動
作に関する限りは実際σル・ツシュ動作と殆んど同一の
動作系列によってフィードバック・レジスタにロードさ
れる事である。この事前の計算を行なう事によって・・
ツ/ユ定数は事実上部分的に乗算され、後続する高度に
並列的な・・ツシング動作のために適当な形式でフィー
ドバック・シフトレジスタにロードされる。
本発明の技術思想によれば、ノ・−ドウエア的に実現さ
れた・・771回路の前記の欠点は、本明細書中で「選
択」動作と呼ぶ動作によってプログラムがその・・ツン
ユ関数(従って分布特性)を変化させる事を可能にする
役割により回避される。選択動作において、新しいハツ
シュ定数が容易且つ迅速に供給される。この事は、出力
従ってハツシュされた数値の分布を変化させる効果を有
する。
れた・・771回路の前記の欠点は、本明細書中で「選
択」動作と呼ぶ動作によってプログラムがその・・ツン
ユ関数(従って分布特性)を変化させる事を可能にする
役割により回避される。選択動作において、新しいハツ
シュ定数が容易且つ迅速に供給される。この事は、出力
従ってハツシュされた数値の分布を変化させる効果を有
する。
この41はどの従来技術のノ・−ドウエア・ハツシュ回
路にも存在する事が知られていない。入力値にかかわり
なく、ノ・ツシュ関数によって形成された数値の分布が
均等に分布する高い確率を持つ事を保証するために、本
発明はユニノ(−サル・)・ツシングの技術ヲ用(・る
。ユニバーサル・71ツシングの基本的な考えは、どの
よりな)・ツシュすべき値の集合に関しても、選択動作
で用いた特定のノ・ツシング定数によって指定されるノ
・ツシュ関数の可能な選択の殆んど全てが比較的均等な
出力値の分布を生じる事である。従って任意のランダム
に選ばれた・・ツシュ関数又はノ・ツシュ定数が良く働
く可能性は非常に高い。ユニバーサル・ノ・ツシングの
基礎概念につし・てのより深い説明については、J、L
、Carter and M、N、Wegman。
路にも存在する事が知られていない。入力値にかかわり
なく、ノ・ツシュ関数によって形成された数値の分布が
均等に分布する高い確率を持つ事を保証するために、本
発明はユニノ(−サル・)・ツシングの技術ヲ用(・る
。ユニバーサル・71ツシングの基本的な考えは、どの
よりな)・ツシュすべき値の集合に関しても、選択動作
で用いた特定のノ・ツシング定数によって指定されるノ
・ツシュ関数の可能な選択の殆んど全てが比較的均等な
出力値の分布を生じる事である。従って任意のランダム
に選ばれた・・ツシュ関数又はノ・ツシュ定数が良く働
く可能性は非常に高い。ユニバーサル・ノ・ツシングの
基礎概念につし・てのより深い説明については、J、L
、Carter and M、N、Wegman。
” Universal C1ashes of
HashFunctions”、Journal o
f Computerand System 5ci
ences、Vol、1B、pp。
HashFunctions”、Journal o
f Computerand System 5ci
ences、Vol、1B、pp。
146〜154(april 1979)を参照され
たい。
たい。
ここで開示されるノ・ツシュ回路は集積回路チップ技術
に適合し、少量の制御・・−トウエアを用いて2つの動
作を実行するように設割される。
に適合し、少量の制御・・−トウエアを用いて2つの動
作を実行するように設割される。
その2つの動作は「選択(A)」及び「/・ツ/ユ(B
)」である。但し引数A及びBは第1図のAレジスフ2
に記憶されて(・る・・ツシュ定数及びBレジスタ4に
記憶されている・・ツ7ング対象を意味する。「選択(
A)」は引数Aによって指定された関数(・・ソシュ関
数)が、次の・・ツシュ定数がシステムに導入され適当
な「選択」機能が実行されるまで後続する全ての・・ノ
ノユ動作のために使われるべき事を指定する。「選択」
機能はどのような計算結果も与えないが、同じ・・ツン
ユ定数を用いる全ての後続するノ・ンンユ動作をスピー
ド噂アップするための、ハードウェアによって実行され
る予備計算を行なう事を可能にする。「/・ツシュ(B
)」動作は、最も最近の「選択」動作によって指定され
たノ・ツシュ関数Aによって引数Bをハツシングする手
続きである。
)」である。但し引数A及びBは第1図のAレジスフ2
に記憶されて(・る・・ツシュ定数及びBレジスタ4に
記憶されている・・ツ7ング対象を意味する。「選択(
A)」は引数Aによって指定された関数(・・ソシュ関
数)が、次の・・ツシュ定数がシステムに導入され適当
な「選択」機能が実行されるまで後続する全ての・・ノ
ノユ動作のために使われるべき事を指定する。「選択」
機能はどのような計算結果も与えないが、同じ・・ツン
ユ定数を用いる全ての後続するノ・ンンユ動作をスピー
ド噂アップするための、ハードウェアによって実行され
る予備計算を行なう事を可能にする。「/・ツシュ(B
)」動作は、最も最近の「選択」動作によって指定され
たノ・ツシュ関数Aによって引数Bをハツシングする手
続きである。
以下の説明中で、Nはワード当りのビット数を表わし、
ノ・°ツシュ定数A、ノ・ツシュ対象B及ヒノ・ツンユ
動作によって得られた数値は全て同様にNビットである
。二の実施例ではNビットの結果がある応用にとって非
常に有用であるとして望まれていると仮定する。しかし
ながら他の用途特にアドレス・ハツシングについては、
ハツシュ動作釦よって得られる値はOll、2・・・2
−1の範囲内にある事が望ましいかもしれない。但しM
はNよりも小さい。もしそうであれば、所望の目的のた
めに所望のMビットが利用可能となるように、結果をN
−Mビット右又は左にシフトする事ができる。Mビット
の任意の他の連続的な又は不連続な部分集合を等しい信
頼性で同様に選択できる事に注意されたい。任意の入力
について良好な分布の結果が期待されるユニバーサル・
ハツシングの利点は、シフト動作又は他の向うかのビッ
ト選択手続きの後にも保持される。
ノ・°ツシュ定数A、ノ・ツシュ対象B及ヒノ・ツンユ
動作によって得られた数値は全て同様にNビットである
。二の実施例ではNビットの結果がある応用にとって非
常に有用であるとして望まれていると仮定する。しかし
ながら他の用途特にアドレス・ハツシングについては、
ハツシュ動作釦よって得られる値はOll、2・・・2
−1の範囲内にある事が望ましいかもしれない。但しM
はNよりも小さい。もしそうであれば、所望の目的のた
めに所望のMビットが利用可能となるように、結果をN
−Mビット右又は左にシフトする事ができる。Mビット
の任意の他の連続的な又は不連続な部分集合を等しい信
頼性で同様に選択できる事に注意されたい。任意の入力
について良好な分布の結果が期待されるユニバーサル・
ハツシングの利点は、シフト動作又は他の向うかのビッ
ト選択手続きの後にも保持される。
本発明のハツシュ回路はガロア体GF(2)における乗
算の動作を実行する。第1図を参照すると、[選択」動
作が装置のAレジスタ2に乗数をセットし、ある予備計
算の行なわれる事を可能にする。Bレジスタ4にロード
されたハツシュ動作の対象は被乗数として用いられる。
算の動作を実行する。第1図を参照すると、[選択」動
作が装置のAレジスタ2に乗数をセットし、ある予備計
算の行なわれる事を可能にする。Bレジスタ4にロード
されたハツシュ動作の対象は被乗数として用いられる。
ガロア体の演算を行なうハードウェア自体は新規ではな
い。
い。
しかし予備計算によって乗算動作の高速化をはかり且つ
乗数即ちハツシュ定数が変化する事を可能にする方法は
従来知られて(・なし・。
乗数即ちハツシュ定数が変化する事を可能にする方法は
従来知られて(・なし・。
ここに開示された・・ラフ1回路におし・て、体の要素
の乗算は通常の2進数の乗算によく似た方式で行なわれ
る。乗数は一時に1ビツトづつ左にシフトされ、現在評
価されている被乗数のビットが1かOかに依存して、上
記乗数の値が中間合計に加算されたり又は加算されなか
ったりする。ガロア体の演算と通常の演算との間の相違
は第1に加算が排他的0R(XOR)動作によって行な
われる事、第2に動作の進行と共に被乗数のビット値を
事実上変化させる適切に選択されたフィードバッグ・シ
フトレジスタによってシフト動作が行なわれなければな
らない事である。当然にこのシフトレジスタは通常のシ
フトレジスタとは大幅に異なっている。
の乗算は通常の2進数の乗算によく似た方式で行なわれ
る。乗数は一時に1ビツトづつ左にシフトされ、現在評
価されている被乗数のビットが1かOかに依存して、上
記乗数の値が中間合計に加算されたり又は加算されなか
ったりする。ガロア体の演算と通常の演算との間の相違
は第1に加算が排他的0R(XOR)動作によって行な
われる事、第2に動作の進行と共に被乗数のビット値を
事実上変化させる適切に選択されたフィードバッグ・シ
フトレジスタによってシフト動作が行なわれなければな
らない事である。当然にこのシフトレジスタは通常のシ
フトレジスタとは大幅に異なっている。
この・・ラフユ回路の重要な特徴は、被乗数のし・くつ
かのビットの評価を並列的に行なう事によってガロア体
の乗算が高速化される事である。上記ビットの数は、フ
ィードバック・シフトレジスタ(FSR)の数によって
決定される。
かのビットの評価を並列的に行なう事によってガロア体
の乗算が高速化される事である。上記ビットの数は、フ
ィードバック・シフトレジスタ(FSR)の数によって
決定される。
この動作を効率化するため、被乗数の選択されたビット
と乗数との適当な整合を得るために乗数の予備計算を行
なう必要がある。
と乗数との適当な整合を得るために乗数の予備計算を行
なう必要がある。
以前に述べたように、ここで開示するハソンユ回路はL
SI又はVLS Iの形で実現できる。従ってレジスタ
、データ経路、組み合せ論理等の全ては数個のLSI又
は1個のVLS Iチップ上に容易に配置できる。
SI又はVLS Iの形で実現できる。従ってレジスタ
、データ経路、組み合せ論理等の全ては数個のLSI又
は1個のVLS Iチップ上に容易に配置できる。
以下の説明中で次の用語が用いられる。Nは機械ワード
のビット数を表わす。従ってそれはハツシュ定数(被乗
数)を保持するAレジスタ及び・・ツシュ対象゛(乗数
)を保持するBレジスタ中のビット数と同じで゛ある。
のビット数を表わす。従ってそれはハツシュ定数(被乗
数)を保持するAレジスタ及び・・ツシュ対象゛(乗数
)を保持するBレジスタ中のビット数と同じで゛ある。
同様にフィードバック・シフトレジスタ1〜KAび結果
レジスタも全てNビット幅である。第1図に示したAN
Dゲート10〜16は、第1の入力としてフィートバッ
ク・/フトレジスタからのNビット及び第2の入力とし
てAND機能を制御するBレジスタからの適当なビット
を有するN個のANDゲートである。パリティ回路18
は回路の入力端子に奇数個の11」 ゛が生じた時には
論理11」を発生し、回路入力端子に偶数個の「1」が
生じた時は論理[−〇」を発生するN個のパリティ回路
の集合体である。N個のパリティ回路の各々は、K個の
フィードバック・シフトレジスタの各々及び結果レジス
タ6かも入力を受は取る。従って1番目のパリティ回路
はに個のフィードバック・/フトレジスタの各々から1
番目のビット及び結果レジスタか、ら1番目のビットを
受は取る。パリティ回路18の出力は、Nビットから成
り、結果レジスタ乙に人力さ」lその以前の内容を置き
換える。
レジスタも全てNビット幅である。第1図に示したAN
Dゲート10〜16は、第1の入力としてフィートバッ
ク・/フトレジスタからのNビット及び第2の入力とし
てAND機能を制御するBレジスタからの適当なビット
を有するN個のANDゲートである。パリティ回路18
は回路の入力端子に奇数個の11」 ゛が生じた時には
論理11」を発生し、回路入力端子に偶数個の「1」が
生じた時は論理[−〇」を発生するN個のパリティ回路
の集合体である。N個のパリティ回路の各々は、K個の
フィードバック・シフトレジスタの各々及び結果レジス
タ6かも入力を受は取る。従って1番目のパリティ回路
はに個のフィードバック・/フトレジスタの各々から1
番目のビット及び結果レジスタか、ら1番目のビットを
受は取る。パリティ回路18の出力は、Nビットから成
り、結果レジスタ乙に人力さ」lその以前の内容を置き
換える。
数には設計の大きさ及び速度に影響を与えるパラメータ
である。Kの値がより大きくなるにつれてより多くの部
品がチップ」−に必要になるが、乗算動作における並行
処理の程度が大ぎくなるためハツンユ動作はより速くな
る。特に第1図を参照すると、数には設計で用(・られ
ているフィードバック・シフトレジスタの数によって決
定される事が容易にわかる。各シフトレジスタはハツシ
ュ対象のN/にビットを評価するので、1実施例ではK
はNの約数であるべきである。言い換えると、N二32
であれば、Kは2.4.6.8又は16の値を取り得る
。
である。Kの値がより大きくなるにつれてより多くの部
品がチップ」−に必要になるが、乗算動作における並行
処理の程度が大ぎくなるためハツンユ動作はより速くな
る。特に第1図を参照すると、数には設計で用(・られ
ているフィードバック・シフトレジスタの数によって決
定される事が容易にわかる。各シフトレジスタはハツシ
ュ対象のN/にビットを評価するので、1実施例ではK
はNの約数であるべきである。言い換えると、N二32
であれば、Kは2.4.6.8又は16の値を取り得る
。
第1図に示した実施例の全てのレジスタはNビット・レ
ジスタである。ハツシュ定数を記憶するAレジスタ2並
びにハツシュ演算の中間結果及び最終結果を受は取る結
果レジスタ6は、並列式にアクセスできる単純なレジス
タである。Bレジスタ4は、K本の出力線を有しシフト
信号の制御の下に左から右ヘシフトするシフトレジスタ
である。
ジスタである。ハツシュ定数を記憶するAレジスタ2並
びにハツシュ演算の中間結果及び最終結果を受は取る結
果レジスタ6は、並列式にアクセスできる単純なレジス
タである。Bレジスタ4は、K本の出力線を有しシフト
信号の制御の下に左から右ヘシフトするシフトレジスタ
である。
フィードバック参ノットレジスタFSR1〜FSRK(
8a〜8d)はその名の通り、シフト信号が与えられた
時に右から左ヘシフトす−るシフトレジスタである。さ
らに、フィードバック・シフトレジスタは左端ビットを
右端ビットに戻し、そしである他のビット位置を変化さ
せる。そのような7フトレジスタの設計は公知であり、
特にBerlekamp著の前掲書中に詳細に説明され
て℃・る。
8a〜8d)はその名の通り、シフト信号が与えられた
時に右から左ヘシフトす−るシフトレジスタである。さ
らに、フィードバック・シフトレジスタは左端ビットを
右端ビットに戻し、そしである他のビット位置を変化さ
せる。そのような7フトレジスタの設計は公知であり、
特にBerlekamp著の前掲書中に詳細に説明され
て℃・る。
大きさNの適当なフィードバック・シフトレジスタを設
計するために、最初に、ガロア体GF(2)上のN次の
既約多項式を選択する。W、 W。
計するために、最初に、ガロア体GF(2)上のN次の
既約多項式を選択する。W、 W。
Peterson and E、J、Weldon
SJr。
SJr。
” Error Correcting Code
s”、MITPress、 Cambr idge、
Mass、 (1971)には種々のNにつ(・てその
ような多項式の表が示されて℃・る。与えられたNの値
に付き多項式をどのように選択してもよし・が、下記の
説明から明らかなように非0の係数の数が最小のものが
最も実用的である。
s”、MITPress、 Cambr idge、
Mass、 (1971)には種々のNにつ(・てその
ような多項式の表が示されて℃・る。与えられたNの値
に付き多項式をどのように選択してもよし・が、下記の
説明から明らかなように非0の係数の数が最小のものが
最も実用的である。
FSRはNビットのシフトレジスタで構成され、その位
置は右から左へD、1.2・・N−iと番号付けられて
いる。シフト動作はi番目のビットを(i+1)番目の
ビットに移動させ且つ(N−1)番目の位置のビットを
FSRの他のビットに排他的論理和する事から成る。排
他的論理和の行なわれるビット位置は、(最高次の係数
を除いて)非0の係数を持つ(選ばれた既約多項式の)
項の指数に相当するビット位置である。例えば多項式が
X 6」−X6−+−1の場合、ビット位置5がビット
位置3及びOにフィードバックされる。ビット位置3の
新しい値は上述のようにビット位置2及び5から導き出
される。これらの2つの値は排他的OR動作によって組
み合される。しかしながらビット位置0は、その位置に
来る他のビットが存在しないので、排他的ORは不要で
ある。
置は右から左へD、1.2・・N−iと番号付けられて
いる。シフト動作はi番目のビットを(i+1)番目の
ビットに移動させ且つ(N−1)番目の位置のビットを
FSRの他のビットに排他的論理和する事から成る。排
他的論理和の行なわれるビット位置は、(最高次の係数
を除いて)非0の係数を持つ(選ばれた既約多項式の)
項の指数に相当するビット位置である。例えば多項式が
X 6」−X6−+−1の場合、ビット位置5がビット
位置3及びOにフィードバックされる。ビット位置3の
新しい値は上述のようにビット位置2及び5から導き出
される。これらの2つの値は排他的OR動作によって組
み合される。しかしながらビット位置0は、その位置に
来る他のビットが存在しないので、排他的ORは不要で
ある。
第2図は、フィードバック・ビットを受は取るFSRの
ビット位置の1つを示す図である。2つの隣接ビット位
置も示されている。(排他的ORの起きない0番目のビ
ット位置以外の)ビット位置に入力されたフィードバッ
ク・ビットは、フィードバック位置の右隣の一ビットと
の排他的ORを取られ、その結果の値は排他的OR回路
の出力に接続されたラッチに°記憶される。そのような
回路の動作は周知のものである。
ビット位置の1つを示す図である。2つの隣接ビット位
置も示されている。(排他的ORの起きない0番目のビ
ット位置以外の)ビット位置に入力されたフィードバッ
ク・ビットは、フィードバック位置の右隣の一ビットと
の排他的ORを取られ、その結果の値は排他的OR回路
の出力に接続されたラッチに°記憶される。そのような
回路の動作は周知のものである。
Bレジスタにおいて、その出力は0番[]、(N/K)
番目、(2N/K)番目 ・のビット位置から取り出さ
れる事に注意された℃・1.N 6及びに=2の場合を
示す第3A図〜第3F図及び第4A図、第4B図では、
Bレジスタ4からの出力は上述のように0番目及び3番
目のビット位置から取り出されてし・る。
番目、(2N/K)番目 ・のビット位置から取り出さ
れる事に注意された℃・1.N 6及びに=2の場合を
示す第3A図〜第3F図及び第4A図、第4B図では、
Bレジスタ4からの出力は上述のように0番目及び3番
目のビット位置から取り出されてし・る。
Aレジスタ2及び全てのフィートバンク・/フトレジス
タ8a〜8dは並列にロード及びアノロードできる事に
も注意されたいっその回路は第1図に示されていないが
、後述の「選択」動作の例を示す第4A図及び第4B図
のデータ・フロー図に機械的に示されている。そのよう
なレジスタは周知のものである。この機能により、Aレ
ジスタ2からFSRl(8a)へ、FSRl (8a
)からFSR,2(8b)へ等、完全なNビットを迅速
に転送できる。
タ8a〜8dは並列にロード及びアノロードできる事に
も注意されたいっその回路は第1図に示されていないが
、後述の「選択」動作の例を示す第4A図及び第4B図
のデータ・フロー図に機械的に示されている。そのよう
なレジスタは周知のものである。この機能により、Aレ
ジスタ2からFSRl(8a)へ、FSRl (8a
)からFSR,2(8b)へ等、完全なNビットを迅速
に転送できる。
第1図において、太い線はNビットのバスを表わし、A
NDゲート10〜16の各々は実際は並列に配置された
ANDゲートの集合体である。それらはFSRの各ビッ
ト毎に設けられている。
NDゲート10〜16の各々は実際は並列に配置された
ANDゲートの集合体である。それらはFSRの各ビッ
ト毎に設けられている。
第1図の論理回路の機能を簡潔に説明するために、シフ
ト動作がちょうど完了し、その結果Bレジスタ4が右に
1ビツトシフトされフィードバック・シフトレジスタの
全てが左へ1ビツトシフトされ、Nビット・ケーブル3
0〜66に現われている値は現在のFSR1〜FSRK
の内容を表わして℃・ると仮定する。信号線20〜26
に接続されたBレジスタ40ビット位置の2進値が論理
「1」の場合、対応するANDゲート10〜16が活性
化され、対応するFSRの内容がバス30〜36に出力
される。逆にBレジスタのビット位置が論理「0」を含
む場合、信号線20〜26に出力されたその値は、対応
するANDゲー)10〜16を禁止し、バス30〜36
の出力を全「0」にする。パリティ回路1日内のN個の
論理回路の各々には付加的な即ち(K+1)番目の入力
が加えられ、結果レジスタ乙に新しい結果が与えられる
。
ト動作がちょうど完了し、その結果Bレジスタ4が右に
1ビツトシフトされフィードバック・シフトレジスタの
全てが左へ1ビツトシフトされ、Nビット・ケーブル3
0〜66に現われている値は現在のFSR1〜FSRK
の内容を表わして℃・ると仮定する。信号線20〜26
に接続されたBレジスタ40ビット位置の2進値が論理
「1」の場合、対応するANDゲート10〜16が活性
化され、対応するFSRの内容がバス30〜36に出力
される。逆にBレジスタのビット位置が論理「0」を含
む場合、信号線20〜26に出力されたその値は、対応
するANDゲー)10〜16を禁止し、バス30〜36
の出力を全「0」にする。パリティ回路1日内のN個の
論理回路の各々には付加的な即ち(K+1)番目の入力
が加えられ、結果レジスタ乙に新しい結果が与えられる
。
次に、この基本的な回路動作を反復的に用いてハツシュ
動作を行なう方法を説明する。
動作を行なう方法を説明する。
ハツシュ動作においてNビットの対象オペランドがBレ
ジスタ4にロードされる。動作が開始する前に、Aレジ
スタ2及びFSRl(8a)の両者は(先行する選択動
作によってセットされた)ハツンユ定数Aを含み、残り
のFSRの各々はその直前のレジスタ中の値にN/にフ
ィードバック・シフトを行なった結果を含んでし・る。
ジスタ4にロードされる。動作が開始する前に、Aレジ
スタ2及びFSRl(8a)の両者は(先行する選択動
作によってセットされた)ハツンユ定数Aを含み、残り
のFSRの各々はその直前のレジスタ中の値にN/にフ
ィードバック・シフトを行なった結果を含んでし・る。
ハツシュ(B)動作が開始されると、Nビットの対象B
がBレジスタ4に入力され、結果レジスタ6は全0にセ
ットされる。結果レジスタ及びFSRの内容はパリティ
回路1日で選択的に組み合される。但シ各F S Rの
内容は、対応するBレジスタのビットが論理「1」であ
る場合にのみパリティ回路18にゲートされる。次にシ
フト信号がシステムに加えられ、FSRは(フィードバ
ックを伴なって)その内容を1ビツト、シフトさせ同様
にBレジスタも1ビツトのシフトを行なう。Bレジスタ
、FSRレジスタ及び結果レジスタの内容はANDゲー
ト10〜16及びパリティ回路18によって組 −み
合され、結果レジスタに新しい値を与える。FSR及び
結果レジスタの内容をBレジスタの内容の制御の下に論
理的に組み合せる工程の後には、合計N/に回のBレジ
スタ及びFSRの1ビツト・シフトが続き、この時Bレ
ジスタ中の対象全体が評価される。この時、結果レジス
タはノ・ツシュ動作の所望の結果A%Bを含む。
がBレジスタ4に入力され、結果レジスタ6は全0にセ
ットされる。結果レジスタ及びFSRの内容はパリティ
回路1日で選択的に組み合される。但シ各F S Rの
内容は、対応するBレジスタのビットが論理「1」であ
る場合にのみパリティ回路18にゲートされる。次にシ
フト信号がシステムに加えられ、FSRは(フィードバ
ックを伴なって)その内容を1ビツト、シフトさせ同様
にBレジスタも1ビツトのシフトを行なう。Bレジスタ
、FSRレジスタ及び結果レジスタの内容はANDゲー
ト10〜16及びパリティ回路18によって組 −み
合され、結果レジスタに新しい値を与える。FSR及び
結果レジスタの内容をBレジスタの内容の制御の下に論
理的に組み合せる工程の後には、合計N/に回のBレジ
スタ及びFSRの1ビツト・シフトが続き、この時Bレ
ジスタ中の対象全体が評価される。この時、結果レジス
タはノ・ツシュ動作の所望の結果A%Bを含む。
この時、次のハツシュ動作を実行できるように、ハツシ
ュ定数Aを適当にシフトした値を有する初期設定状態に
全部のFSRをリセットする必要が□ ある。これは
、FSRlが非回転のノ・ツシュ定数Aを含みFSR2
がFSRlの以前の値を含むように全部のFSR及びA
レジスタを下向きに1ピツ1ト・シフトする事によって
行なわれる。FSRKの以前の内容は単に拾てられる。
ュ定数Aを適当にシフトした値を有する初期設定状態に
全部のFSRをリセットする必要が□ ある。これは
、FSRlが非回転のノ・ツシュ定数Aを含みFSR2
がFSRlの以前の値を含むように全部のFSR及びA
レジスタを下向きに1ピツ1ト・シフトする事によって
行なわれる。FSRKの以前の内容は単に拾てられる。
ノ・ツシュ動作の間、ハツシュ定数であるAレジスタの
内容は変化しない事に注意されたい。
内容は変化しない事に注意されたい。
下記のプログラム様の動作の記述は、上述の・・ツシュ
動作を要約するものである。この動作は6つの基本的な
ステップを含み、ステップ2はステップ3に進む前KN
/に回反復されるループである。このチャートの意1床
は明白であり特に説明は要しないであろう。
動作を要約するものである。この動作は6つの基本的な
ステップを含み、ステップ2はステップ3に進む前KN
/に回反復されるループである。このチャートの意1床
は明白であり特に説明は要しないであろう。
(1)Bレジスタにハツシュ対象データを、結果レジス
タに全0をロードする。
タに全0をロードする。
(2)N/に回、反復するニ
ーBレジスタの適当なビットによっ
てされたFSR′ff:結果レジスタと共にX0RL、
結果レジスタに記憶する。
結果レジスタに記憶する。
−Bレジスタ及びFSRを1ビツト
・ソフトする。
(6)全部のFSR及びAレジスタをルジスタ位置下に
移動させる。
移動させる。
次に選択動作について説明する。選択動作においては、
後続するハツシュ動作が最小限の遅延及び最大限の並列
性で実行されるように、Aレジスタに新しいハツシュ定
数Aiロードし、ハツシュ定数Aの種々のシフト値を事
実上予備計算して種々のFSRにロードする。ハツンユ
定数AはAレジスタにロードさt、次に完全なハツシュ
動作がに−i回実行される。各ノ・ツシュ動作はN/に
回のシフト動作及びそれに続<FSR及びAレジスタの
下向きの完全なシフトから成る事を想起されたい。従っ
て、選択動作の終了時には、全てのFSRに正しい回数
だけ巡回した・・ツシュ定数の正しい変形がロードされ
ており、具体的なノ・ツシュ対象に対してノ・ツシュ動
作を行なう事が可能となる。
後続するハツシュ動作が最小限の遅延及び最大限の並列
性で実行されるように、Aレジスタに新しいハツシュ定
数Aiロードし、ハツシュ定数Aの種々のシフト値を事
実上予備計算して種々のFSRにロードする。ハツンユ
定数AはAレジスタにロードさt、次に完全なハツシュ
動作がに−i回実行される。各ノ・ツシュ動作はN/に
回のシフト動作及びそれに続<FSR及びAレジスタの
下向きの完全なシフトから成る事を想起されたい。従っ
て、選択動作の終了時には、全てのFSRに正しい回数
だけ巡回した・・ツシュ定数の正しい変形がロードされ
ており、具体的なノ・ツシュ対象に対してノ・ツシュ動
作を行なう事が可能となる。
選択動作はFSRレジスタ及びAレジスタの内容に対し
てだけ作用する。Bレジスタ及び結果レジスタの内容は
選択動作では何の重要な役割りも演じない。ANDゲー
ト10〜16及びノくリテイ回路18も同様である。事
実、それらは機能的には省略してもよく、第4A図及び
第4B図では説明を簡単にするため省略されている。
てだけ作用する。Bレジスタ及び結果レジスタの内容は
選択動作では何の重要な役割りも演じない。ANDゲー
ト10〜16及びノくリテイ回路18も同様である。事
実、それらは機能的には省略してもよく、第4A図及び
第4B図では説明を簡単にするため省略されている。
下記に示すのは、前記のノ・ツシュ動作のプログラム様
のりストφ類似した選択動作の動作シーケンスの簡単な
リストである。明らかに選択動作には6つの基本的なス
テップがあり、6番目のステップはに一1回反復される
ループを含む。このループの内容は[・・ツシュ動作−
1と呼ばれている事に注意されたい。この場合、プログ
ラミング技術において通常そうであるように、この記述
は前記の完全な・・ツシュ動作を呼び出してその完全な
・・ツシュ動作を合計に一1回反復させる。
のりストφ類似した選択動作の動作シーケンスの簡単な
リストである。明らかに選択動作には6つの基本的なス
テップがあり、6番目のステップはに一1回反復される
ループを含む。このループの内容は[・・ツシュ動作−
1と呼ばれている事に注意されたい。この場合、プログ
ラミング技術において通常そうであるように、この記述
は前記の完全な・・ツシュ動作を呼び出してその完全な
・・ツシュ動作を合計に一1回反復させる。
(1) Aレジスタにノ・ツンユ定数Aをロードする
。
。
(2)AレジスタからFSRlにロードする。
(λ)下記の動作をK −1161反復する。
−ハツシュ動作
本発明の範囲から逸脱する事なく、これらの動作に種々
の変更を加える事ができる。例えば・・ツシュ手続中で
ステップ3は再配置可能であり、ステップ2とステップ
3を交換する事ができる。同様に選択動作のステップ2
は完全に抹消する事が゛できる。その他にも同様の変更
を加える事が可能である。
の変更を加える事ができる。例えば・・ツシュ手続中で
ステップ3は再配置可能であり、ステップ2とステップ
3を交換する事ができる。同様に選択動作のステップ2
は完全に抹消する事が゛できる。その他にも同様の変更
を加える事が可能である。
第3A図〜第6F図及び第4A図、第4B図には、実際
に具体的な2進数値金用いて本発明の詳細な説明されて
いる。
に具体的な2進数値金用いて本発明の詳細な説明されて
いる。
第3A図には、Bレジスタ4に・・ツシュ対象をロード
し、結果レジスタ6を初期設定した後の状態が示されて
いる。Aレジスタ2には既にハツシュ定数がロードされ
ている。第6B図は最初の中間結果を得た後の状態を示
す。第3C図は最初のシフト動作を行なった後の状態を
示す。第6D図は、2番目の中間結果を累算し、2番目
のシフトを行なった後の状態を示す。第3E図は3番目
の中間結果を累算し、3“番目のシフトを行なった後−
の状態を示す。第6F図は最終状態を示し、各FSRは
その上側のレジスタの内容をロードされ、第3A図のF
SRの内容と同一になっている。この状態では、Bレジ
スタに新しいノ・ツシュ対象をロードし次のノ・ツシュ
動作を行なう事ができる。
し、結果レジスタ6を初期設定した後の状態が示されて
いる。Aレジスタ2には既にハツシュ定数がロードされ
ている。第6B図は最初の中間結果を得た後の状態を示
す。第3C図は最初のシフト動作を行なった後の状態を
示す。第6D図は、2番目の中間結果を累算し、2番目
のシフトを行なった後の状態を示す。第3E図は3番目
の中間結果を累算し、3“番目のシフトを行なった後−
の状態を示す。第6F図は最終状態を示し、各FSRは
その上側のレジスタの内容をロードされ、第3A図のF
SRの内容と同一になっている。この状態では、Bレジ
スタに新しいノ・ツシュ対象をロードし次のノ・ツシュ
動作を行なう事ができる。
第4A図及び第4B図において、全ての非機能的な、従
って不必要な回路は図面から省略し、その代りにAレジ
スタ及びFSRを接続する2本のNビットのケーブル4
0及び42を示している。
って不必要な回路は図面から省略し、その代りにAレジ
スタ及びFSRを接続する2本のNビットのケーブル4
0及び42を示している。
この経路によってAレジスタ及びFSRの内容は、・・
ツシュ回路の選択動作中に各・・ツシュ動作の最終ステ
ップが行なわれる時に、順に下向きに転送される。第4
A図はAレジスタ2にハツシュ定数をロードし、その値
をFSRl(8a)にコピーした後の状態を示す。レジ
スタの内容が空欄になって℃・るのは、任意の値を意味
する。第4B図は最初のハツシュ動作を行なった後の状
態を示す。
ツシュ回路の選択動作中に各・・ツシュ動作の最終ステ
ップが行なわれる時に、順に下向きに転送される。第4
A図はAレジスタ2にハツシュ定数をロードし、その値
をFSRl(8a)にコピーした後の状態を示す。レジ
スタの内容が空欄になって℃・るのは、任意の値を意味
する。第4B図は最初のハツシュ動作を行なった後の状
態を示す。
この場合に=2なので、選択動作を完rするのに1回の
ハツシュ動作しか必要でない。
ハツシュ動作しか必要でない。
第3A図〜第3F図及び第4A図、第4B図に示した単
純なシステムは説明のためのものであって、実際は5ニ
ジ程度のNの値が普通であり、Kの典型的な値はおそら
く4又は8であろう。さらに、所定の値のNに関して2
以上の既約多項式がおそらく存在し、どのシフトノジス
タの構成を用いてもよいが、最適の構成は(回路のコス
トを下げるように)フィードバック点が最小のものであ
ろう。
純なシステムは説明のためのものであって、実際は5ニ
ジ程度のNの値が普通であり、Kの典型的な値はおそら
く4又は8であろう。さらに、所定の値のNに関して2
以上の既約多項式がおそらく存在し、どのシフトノジス
タの構成を用いてもよいが、最適の構成は(回路のコス
トを下げるように)フィードバック点が最小のものであ
ろう。
さらに、他の細部のハードウェアの変更、例えばシフト
の相対的方向並びに上位ビット及び下位ビットの指定等
は任意であり設計的事項である。
の相対的方向並びに上位ビット及び下位ビットの指定等
は任意であり設計的事項である。
但し完全なガロア体の乗算が行なわれるようにしなけれ
ばならない。
ばならない。
第2の変更は、Kを−Nの約継以外の数に選ぶ事であろ
う。その場合、N/によりも大きな最小の整数をLとす
ると、1回のノ・ツシュ演算を行なうためにL回のシフ
トが行なわれる。BレジスタからはLビット毎にAND
ゲートへの制御入力が取り出される。この時、Bレジス
タをシフトスる際にその上位ビットに対して0が入力さ
れる。
う。その場合、N/によりも大きな最小の整数をLとす
ると、1回のノ・ツシュ演算を行なうためにL回のシフ
トが行なわれる。BレジスタからはLビット毎にAND
ゲートへの制御入力が取り出される。この時、Bレジス
タをシフトスる際にその上位ビットに対して0が入力さ
れる。
第3の変更は、選択動作の実行中に・・ツシュ動作が行
なわれた回数をカウントするためにBレジスタを使う事
である。
なわれた回数をカウントするためにBレジスタを使う事
である。
第1図は、本発明のノ・ツシュ回路の図、第2図は、フ
ィードバック・シフトし/ジスタの一部分の図、 第3A図乃至第6F図は、単純化した・・ツシュ回路を
用いてノ・ツシュ動作を説明する図、第4A図及び第4
B図は、単純化したノ・ツシュ回路を用いて選択動作を
説明する図である。 2・・・・Aレジスタ、4・・・・Bレジスタ、6・・
・・結果レジスタ、8a〜8d・・・・フィードバック
・シフトレジスタ(FSR)、18・・・・パリティ回
路。 出願人 インターナショナル・ビジネス・マシーンズ
・コーポレーションFIG、2 FIG、3A FIG、3C FIG、3E FIG、4A
ィードバック・シフトし/ジスタの一部分の図、 第3A図乃至第6F図は、単純化した・・ツシュ回路を
用いてノ・ツシュ動作を説明する図、第4A図及び第4
B図は、単純化したノ・ツシュ回路を用いて選択動作を
説明する図である。 2・・・・Aレジスタ、4・・・・Bレジスタ、6・・
・・結果レジスタ、8a〜8d・・・・フィードバック
・シフトレジスタ(FSR)、18・・・・パリティ回
路。 出願人 インターナショナル・ビジネス・マシーンズ
・コーポレーションFIG、2 FIG、3A FIG、3C FIG、3E FIG、4A
Claims (1)
- Nビットのハツシュ定数の関数としてNビットのオペラ
ンドにハツシュ演算を行なうハツシュ回路であって、ハ
ツシュすべきオペランドを受は取るシフトレジスタと、
ハツシュ定数を受は取り記憶するレジスタと、ハツシュ
演算の結果を累算する結果レジスタと、複数個のフィー
ドバック・シフトレジスタと、上記フィードバック・シ
フトレジスタの隣接したものに関して所定の数のビット
位置だけ上記ハツシュ定数をシフトさせたものを上記フ
ィードバック・シフトレジスタの各々にロードする手段
と、上記フィードバック・シフトレジスタの内容を上記
オペランド・シフトレジスタ中の対応するビットの2進
状態及び直前の累算結果の関数として累算する手段と、
上記フィードバック・シフトレジスタ全部及び上記オペ
ランド・シフトレジスタをシフトさせ中間結果を上記所
定の回数累算する手段とを含むハツ7ユ回路。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US06/454,912 US4538240A (en) | 1982-12-30 | 1982-12-30 | Method and apparatus for performing hashing operations using Galois field multiplication |
| US454912 | 1999-12-02 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS59125437A true JPS59125437A (ja) | 1984-07-19 |
| JPH0243218B2 JPH0243218B2 (ja) | 1990-09-27 |
Family
ID=23806582
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP58172346A Granted JPS59125437A (ja) | 1982-12-30 | 1983-09-20 | ハツシユ回路 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US4538240A (ja) |
| EP (1) | EP0113032B1 (ja) |
| JP (1) | JPS59125437A (ja) |
| DE (1) | DE3377389D1 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS63136223A (ja) * | 1986-11-28 | 1988-06-08 | Nippon Telegr & Teleph Corp <Ntt> | ハツシユ回路 |
Families Citing this family (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2137782B (en) * | 1983-03-24 | 1986-11-26 | Int Computers Ltd | Data transformation circuits |
| US4891781A (en) * | 1987-03-04 | 1990-01-02 | Cylink Corporation | Modulo arithmetic processor chip |
| DE3855497T2 (de) * | 1988-10-18 | 1997-03-13 | Philips Electronics Nv | Datenverarbeitungsgerät zur Berechnung eines multiplikativ invertierten Elements eines endigen Körpers |
| US5003307A (en) * | 1989-01-13 | 1991-03-26 | Stac, Inc. | Data compression apparatus with shift register search means |
| GB9001724D0 (en) * | 1990-01-25 | 1990-03-28 | Int Computers Ltd | Hashing apparatus and method |
| US5204966A (en) * | 1990-03-09 | 1993-04-20 | Digital Equipment Corporation | System for controlling access to a secure system by verifying acceptability of proposed password by using hashing and group of unacceptable passwords |
| US5210710A (en) * | 1990-10-17 | 1993-05-11 | Cylink Corporation | Modulo arithmetic processor chip |
| US5406278A (en) * | 1992-02-28 | 1995-04-11 | Intersecting Concepts, Inc. | Method and apparatus for data compression having an improved matching algorithm which utilizes a parallel hashing technique |
| US5371499A (en) * | 1992-02-28 | 1994-12-06 | Intersecting Concepts, Inc. | Data compression using hashing |
| US5353024A (en) * | 1992-05-01 | 1994-10-04 | Intersecting Concepts, Inc. | Method for data compression having an improved encoding algorithm which utilizes a token stacking technique |
| US6434662B1 (en) * | 1999-11-02 | 2002-08-13 | Juniper Networks, Inc. | System and method for searching an associative memory utilizing first and second hash functions |
| US7302582B2 (en) | 2000-08-21 | 2007-11-27 | United States Postal Service | Delivery point validation system |
| US7168025B1 (en) * | 2001-10-11 | 2007-01-23 | Fuzzyfind Corporation | Method of and system for searching a data dictionary with fault tolerant indexing |
| US7085988B1 (en) * | 2002-04-08 | 2006-08-01 | Maxtor Corporation | Hashing system utilizing error correction coding techniques |
| US7984018B2 (en) * | 2005-04-18 | 2011-07-19 | Microsoft Corporation | Efficient point-to-multipoint data reconciliation |
| US8363827B2 (en) * | 2007-12-03 | 2013-01-29 | Intel Corporation | Method and apparatus for generic multi-stage nested hash processing |
| US8649509B2 (en) * | 2008-12-18 | 2014-02-11 | At&T Intellectual Property I, L.P. | Systems and computer program products for generating and verifying randomized hash values |
| US9195607B1 (en) * | 2012-05-15 | 2015-11-24 | Inphi Corporation | Content matching using a multi-hash function for replacement of a faulty memory cell |
| US9646105B2 (en) * | 2012-11-08 | 2017-05-09 | Texas Instruments Incorporated | Reduced complexity hashing |
| US9065632B2 (en) * | 2013-02-20 | 2015-06-23 | Qualcomm Incorporated | Message authentication using a universal hash function computed with carryless multiplication |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3311888A (en) * | 1963-04-12 | 1967-03-28 | Ibm | Method and apparatus for addressing a memory |
| US4037093A (en) * | 1975-12-29 | 1977-07-19 | Honeywell Information Systems, Inc. | Matrix multiplier in GF(2m) |
| GB1597218A (en) * | 1976-12-11 | 1981-09-03 | Nat Res Dev | Apparatus for electronic encypherment of digital data |
| US4251875A (en) * | 1979-02-12 | 1981-02-17 | Sperry Corporation | Sequential Galois multiplication in GF(2n) with GF(2m) Galois multiplication gates |
| JPS57155667A (en) * | 1981-03-23 | 1982-09-25 | Sony Corp | Arithmetic circuit of galois matter |
-
1982
- 1982-12-30 US US06/454,912 patent/US4538240A/en not_active Expired - Fee Related
-
1983
- 1983-09-20 JP JP58172346A patent/JPS59125437A/ja active Granted
- 1983-11-24 DE DE8383111762T patent/DE3377389D1/de not_active Expired
- 1983-11-24 EP EP83111762A patent/EP0113032B1/en not_active Expired
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS63136223A (ja) * | 1986-11-28 | 1988-06-08 | Nippon Telegr & Teleph Corp <Ntt> | ハツシユ回路 |
Also Published As
| Publication number | Publication date |
|---|---|
| US4538240A (en) | 1985-08-27 |
| EP0113032A2 (en) | 1984-07-11 |
| EP0113032B1 (en) | 1988-07-13 |
| JPH0243218B2 (ja) | 1990-09-27 |
| DE3377389D1 (en) | 1988-08-18 |
| EP0113032A3 (en) | 1985-10-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4538240A (en) | Method and apparatus for performing hashing operations using Galois field multiplication | |
| US5258936A (en) | Method and apparatus for generating pseudo-random numbers | |
| US9223720B2 (en) | Systems and methods for rapidly generating suitable pairs of hash functions | |
| US4493046A (en) | Apparatus for generation of binary pseudo-random numbers | |
| US20160259724A1 (en) | Systems and Methods for Implementing Low-Latency Lookup Circuits Using Sparse Hash Functions | |
| US6912683B2 (en) | Method, apparatus, and product for use in generating CRC and other remainder based codes | |
| US7519795B2 (en) | Method and system for performing permutations with bit permutation instructions | |
| CA1120595A (en) | Sequential galois multiplication in gf(2.sup.n) with gf(2.sup.m) galois multiplication gates | |
| EP0917047B1 (en) | Apparatus for modular inversion for information security | |
| JPH09507110A (ja) | 有限体反転 | |
| US12587356B2 (en) | Accelerator device and operating method of accelerator device | |
| US11093682B2 (en) | Language and compiler that generate synchronous digital circuits that maintain thread execution order | |
| CN113485751B (zh) | 执行伽罗瓦域乘法的方法、运算单元和电子装置 | |
| CN116318660B (zh) | 一种消息扩展与压缩方法及相关装置 | |
| JP2010513941A (ja) | 効率的なデータ完全性保護 | |
| US7340496B2 (en) | System and method for determining the Nth state of linear feedback shift registers | |
| CN114389752A (zh) | 循环冗余校验码生成方法、装置、设备、介质和程序产品 | |
| CN114270774A (zh) | 非线性反馈移位寄存器 | |
| US7296049B2 (en) | Fast multiplication circuits | |
| US20080010332A1 (en) | EFFICIENT COMPUTATION OF THE MODULO OPERATION BASED ON DIVISOR (2n-1) | |
| KR100274489B1 (ko) | 의사-난수 발생 장치 및 방법 | |
| Stroele | Bit serial pattern generation and response compaction using arithmetic functions | |
| US10644723B2 (en) | Component-efficient cyclic-redundancy-check-code-computation circuit | |
| Stroele | Arithmetic pattern generators for built-in self-test | |
| US20040117601A1 (en) | General-purpose processor that can rapidly perform binary polynomial arithmetic operations |