JP5112325B2 - 参照テーブルアドレス指定システム及び方法 - Google Patents

参照テーブルアドレス指定システム及び方法 Download PDF

Info

Publication number
JP5112325B2
JP5112325B2 JP2008537761A JP2008537761A JP5112325B2 JP 5112325 B2 JP5112325 B2 JP 5112325B2 JP 2008537761 A JP2008537761 A JP 2008537761A JP 2008537761 A JP2008537761 A JP 2008537761A JP 5112325 B2 JP5112325 B2 JP 5112325B2
Authority
JP
Japan
Prior art keywords
data
register
reference table
field
data word
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.)
Expired - Fee Related
Application number
JP2008537761A
Other languages
English (en)
Other versions
JP2009514096A (ja
JP2009514096A5 (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 JP2009514096A publication Critical patent/JP2009514096A/ja
Publication of JP2009514096A5 publication Critical patent/JP2009514096A5/ja
Application granted granted Critical
Publication of JP5112325B2 publication Critical patent/JP5112325B2/ja
Expired - Fee Related 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/30018Bit or string instructions
    • 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/3004Arrangements for executing specific machine instructions to perform operations on memory
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing
    • G06F9/3552Indexed addressing using wraparound, e.g. modulo or circular addressing
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/122Hardware reduction or efficient architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Executing Machine-Instructions (AREA)
  • Detection And Correction Of Errors (AREA)
  • Advance Control (AREA)
  • Bus Control (AREA)
  • Error Detection And Correction (AREA)

Description

本発明は、改良された参照テーブルアドレス指定システム及び方法に関係する。
コンピュータの速度が33[MHz]から1.0[GHz]に、そしてそれを超えて増加したので、コンピュータ動作は、1サイクルの間に完了されないであろう。その結果、パイプライン方式で運ぶ技術が、更に高いプロセッサ性能を最も効率的に使用して、そしてスループットを改善するために採用された。現在、パイプライン方式の深さは、少なくとも15ステージか、それ以上を使用する。一般的に、パイプライン方式で構成された計算システムでは、同時に動作するいくつかのパラレル構成のブロックが存在し、そこでは各ブロックが全体プロセスの異なる部分を処理する。例えば、そこには、計算を実行する計算ユニット(CU)、選択されたアドレスモードに従って、データをフェッチすると共にメモリに格納するデータアドレス生成器(DAG)を含むアドレスユニット、そして命令を解読すると共に分配するシーケンサまたは制御回路が存在する。DAGは、メモリを扱うことができる唯一の構成要素である。従って、深いパイプライン方式で構成された計算システムでは、もし命令が以前の命令の結果に依存している場合、動作を再開する前に、問題となっている命令が終了するのを待ってそのパイプラインが止まることになる、パイプラインの機能停止が起こることになる。例えば、もし計算の後でCUの出力が次のデータフェッチのためにDAGによって必要とされる場合に、それは、データフェッチに備えて調整されるように直接DAGに届けられることができず、次のデータフェッチをするために、それがDAGによって処理され得る前に、それはパイプラインを通じて伝搬されなければならない。つまりこれは、DAGのみが、メモリにアクセスすることができると共に、所望のデータの場所を示すために、計算ユニットの結果をアドレスポインタに変換することができるからである。マルチタスク汎用コンピュータにおいて、この機能停止は重要ではないかもしれないが、、例えば携帯電話、デジタルカメラにおいて使用されるような、リアルタイムコンピュータシステムでは、これらの機能停止は問題となる。“Wilson”等により2005年10月26日に出願されたと共に、その全体が参照によってここに組み込まれた、“IMPROVED PIPELINE DIGITAL SIGNAL PROCESSOR”と表題をつけられた米国特許出願シリアル番号第11/258,801号明細書を参照すること。
1つのアプリケーションにおいて、ビットの並べ換えが、データの暗号化を達成するために使用される。これは、CUにおいて実行され得るが、しかし、CUにおける演算論理回路(ALU)は、16、32、または64ビット動作のために最適化されているので、ビット単位の並べ換えは効率的ではない。例えば、もしその並べ換えがALUによって実行されるならば、各ビットは、“マスク”、“シフト”、そして“論理和(OR)”の3つの動作サイクルを必要とする。従って、1つの32ビットワードを並べ換えることは、96サイクルか、それ以上を必要とする。
並び替えをALUにおいて実行する代わりの別のアプローチにおいて、並び替えの値は、外部記憶装置に配置された参照テーブルに格納され得る。しかしながら、ここで、ALU内のRレジスタは、ワード、例えば32ビットのワードを、外部記憶装置の参照テーブルを扱うことができるDAG内のポインタ(P)レジスタに、供給しなければならない。しかし、これは、莫大な参照テーブル(LUT)、すなわち232ビットかそれ以上の処理で、その場合に33.5メガバイトのメモリを必要とする。この問題を解決するために、ALU内のRレジスタにおける32ビットワードは、例えば4個のバイト(8ビット)、または8個のニブル(4ビット)として処理され得る。これは、必要とされるメモリサイズを減少させ、4個のバイトでは、各々が32ビットの256個のエントリの4テーブル(または、4キロバイトLUT)が必要とされると共に、8個のニブルでは、各々が32ビットの16個のエントリの8テーブル(または、512バイトLUT)が必要とされる。しかし、これは、ここでALUが、1つの32ビットワードに対して、4個の(バイト)または8個の(ニブル)がDAGのPレジスタへ転送されることを必要とする、という更なる問題を生成する。上に論じられたように、同様に、各転送は多くのパイプラインの機能停止を引き起こす。
個々の、しかし関連する問題において、リニアフィードバックシフトレジスタ(linear feedback shift register:LFSR)、例えばCRC、スクランブラ、デスクランブラ、トレリス符号化が、広く通信システムにおいて使用される。同じ問題によって上で説明されたように、LFSRの動作は、CUによって、マスク/シフト/論理和のサイクルを使用して、1回に1ビットに縮小される。または、1サイクル当たり4、8、または16ビットを使用してLFSR問題を解決する特定のハードウェアブロック、例えばASIC、FPGAが使用され得る。CUにおけるマスク/シフト/論理和のアプローチ、そしてASICのアプローチの両方は、外部記憶装置の参照テーブルまたは複数の参照テーブルを使用することによって解決され得るが、しかし前述の欠点の全てを有している。
改良された参照テーブルアドレス指定システム及び方法を提供することが、従って本発明の目的である。
計算ユニットとデータアドレス生成器との間のパイプラインの機能停止を最小限にする、そのような改良された参照テーブルアドレス指定システム及び方法を提供することが、本発明の更なる目的である。
参照テーブルの大きさを最適化する、そのような改良された参照テーブルアドレス指定システム及び方法を提供することが、本発明の更なる目的である。
追加の専用のハードウェア、例えばASICまたはFPGAなしで、リニアフィードバックシフトレジスタの動作を加速する、そのような改良された参照テーブルアドレス指定システム及び方法を提供することが、本発明の更なる目的である。
更に高速で、そして比較的少ない電力を必要とする、そのような改良された参照テーブルアドレス指定システム及び方法を提供することが、本発明の更なる目的である。
現存するプロセッサコンポーネントを再使用し得る、そのような改良された参照テーブルアドレス指定システム及び方法を提供することが、本発明の更なる目的である。
追加のハードウェア、例えばASICまたはFPGAなしで、並べ換え動作を加速する、そのような改良された参照テーブルアドレス指定システム及び方法を提供することが、本発明の更なる目的である。
更に大きなメモリの要求を受け入れるのに十分に拡大縮小可能(scalable)である、そのような改良された参照テーブルアドレス指定システム及び方法を提供することが、本発明の更なる目的である。
様々な異なるアプリケーション、例えば、暗号化、並べ換え、そしてCRC、スクランブリング、デスクランブリング、及びトレリスを含むリニアフィードバックシフトレジスタの実装に適用可能である、そのような改良された参照テーブルアドレス指定システム及び方法を提供することが、本発明の更なる目的である。
本発明は、パイプラインの機能停止を最小限にし、参照テーブルの大きさを最適化し、より高速であり、少ない電力を使用し、現存するプロセッサコンポーネントを再使用し、拡大縮小可能であり、様々な異なるアプリケーションに適用可能である改良された参照テーブルアドレス指定システム及び方法が、データワードを計算ユニットからデータアドレス生成器内の入力レジスタに転送し、メモリ内のテーブルのセットの位置を識別するためのテーブルベースフィールドを有するデータアドレス生成器内の少なくとも1つのデポジットインクリメントインデックスレジスタに、テーブルの特定のセットの位置を識別するためのテーブルインデックスフィールドと、変位フィールドを提供し、テーブルにおける特定のエントリの位置を識別するために、データワードのセクションをデポジットインクリメントインデックスレジスタの変位フィールドに配置することによって達成され得る、という認識に起因する。
しかしながら、従属する発明は、他の実施例において、全てのこれらの目的を達成する必要があるとは限らず、そしてこれに関する請求項は、これらの目的を達成することが可能である構造及び方法に制限されるべきでない。
この発明は、計算ユニットからデータワードを受け取るための入力レジスタを有するデータアドレス生成器と、メモリ内のテーブルのセットの位置を識別するためのテーブルベースを有するデポジットインクリメントインデックスレジスタとを備える、外部メモリ内の参照テーブルのセットを有する参照テーブルアドレス指定システムを特徴として有している。変位フィールドは、その特定のテーブルにおける特定のエントリの位置を識別すると共に、データアドレス生成器は、特定のエントリにアクセスするために、データワードのセクションを変位フィールドに配置するように構成される。
好ましい実施例において、それらのエントリは、データワードの対応するセクションの部分的な結果を含む。計算ユニットは、アキュムレータレジスタ、参照テーブル宛先レジスタ、及び結合回路を備え得ると共に、計算ユニットは、最終結果を獲得するために、データワードの全セクションからの部分的な結果を累算するように構成され得る。宛先レジスタは、計算ユニットデータレジスタファイルのあらゆる宛先レジスタであり得る。データアドレス生成器は、複数のポインタレジスタを備え得ると共に、デポジットインクリメントインデックスレジスタは、ポインタレジスタの内の1つによって実現され得る。データアドレス生成器は、同様に、複数のポインタレジスタを備え得ると共に、デポジットインクリメント入力レジスタは、ポインタレジスタの内の1つによって実現され得る。デポジットインクリメントインデックスレジスタのインデックスフィールドは、セットにおける次のテーブルを識別するためにインクリメントするように構成され得る。部分的な結果が、対応するセクションのデータビットを含み得ると共に、データアドレス生成器が、更に、それらのビットを所定の出力ワードに割り当てるように構成され得る。宛先ワード及びデータワードは、同一のビット数を有し得る。宛先ワード及びデータワードは、同一でないビット数を有し得る。結合回路は、排他的論理和回路であり得る。結合回路は、加算回路であり得る。データアドレス生成器は、第2のデポジットインクリメントインデックスレジスタを備え得ると共に、データアドレス生成器は、データワードの第2のセクションを第2のデポジットインクリメントインデックスレジスタの変位フィールドに配置するように構成され得る。データアドレス生成器は、インデックスレジスタ既知のテーブルアドレスあらかじめ読み込むように構成され得る。既知のテーブルアドレスは、開始アドレスであり得る。ビットフィールドは、1バイトであり得る。ビットフィールドは、1ニブルであり得る。
本発明は、同様に、データワードを計算ユニットからデータアドレス生成器内の入力レジスタに転送する段階を含む外部メモリ内の参照テーブルのセットを使用可能にするための参照テーブルアドレス指定方法を特徴として有している。データアドレス生成器内の少なくとも1つのインデックスレジスタに、メモリ内のテーブルのセットの位置を識別するためのテーブルベースフィールド、及びテーブルにおける特定のエントリの位置を識別するための変位フィールドを含む段階が提供される。
好ましい実施例において、エントリは、データワードの対応するセクションの部分的な結果を含み得る。最終結果を獲得するために、データワードの全セクションからの部分的な結果が累算され得る。セットにおける次のテーブルを識別するために、データアドレス生成器において、テーブルベースフィールドがインクリメントされ得る。部分的な結果は、データビットを含み得ると共に、方法は、それらのビットを所定の出力ワードに割り当てる段階を更に含み得る。出力ワード及びデータワードは、同一のビット数を有し得る。出力ワード及びデータワードは、同一でないビット数を有し得る。累算することは、排他的論理和を計算することを含み得る。累算することは、加算することを含み得る。方法は、データワードのセクションをインデックスレジスタ内の変位フィールドに配置するのと並行して、データワードの第2のセクションを、別の特定のエントリの位置を識別するための別のインデックスレジスタの変位フィールドに配置する段階を含み得る。方法は、インデックスレジスタ既知のテーブルアドレスあらかじめ読み込む段階を含み得る。インデックスレジスタは、開始アドレスあらかじめ読み込まれ得る。セクションは、ビットフィールドであり得る。ビットフィールドは、1バイトか、または1ニブルであり得る。
他の目的、特徴、及び利点が好ましい実施例、及び添付された図面の以下の説明から当業者の心に浮かぶであろう。
以下で開示された好ましい実施例または複数の実施例以外に、本発明は、他の実施例が可能であると共に、様々な方法で実施するか、または実行されることが可能である。従って、本発明は、その適用において、以下の説明で述べられるか、または図面の中で例示される、構成及び部品の配置の詳細に制限されない、ということが理解されるべきである。もし一実施例だけがここで説明される場合、ここでの請求項は、その実施例に制限されるべきではない。更に、ここでの請求項は、特定の除外、制限、または注意書きを明らかにする、明瞭で説得力のある証拠がない限り、制限的に読まれるべきではない。
図1において示されるように、外部メモリ16内の参照テーブルのセットを使用可能にするための、既存のデータアドレス生成器(DAG)12及び計算ユニット(CU)14によって実行された本発明による参照テーブルアドレス指定システム10が存在する。DAG12、及びCU14は、ディジタルシグナルプロセッサ(DSP)のような従来のプロセッサの一部分であり得る。DAGには、1つ目はデータワード入力レジスタ18としてのレジスタであり、2つ目はデポジットインクリメントインデックスレジスタ20としてのレジスタである2つのポインタ(P)レジスタと、インクリメント回路(incrementing circuit)22と、プリロード回路(preload circuit)24とが存在する。CU14には、参照テーブル(LUT)宛先レジスタ26と、アキュムレータ28と、ここではGF−2加算器(排他的論理和回路:XOR)または加算回路として簡単に示される結合回路30とが存在する。CU14において、そのレジスタファイルのうちのどれでもが、LUT宛先レジスタ26として使用され得る。外部メモリ16は、そこに格納されるデータの残りの中に、多くの個々のテーブルを含む参照テーブル32のセットを備える。例えば、もし参照テーブルアドレス指定システム10が、ニブル、すなわち4ビットのグループによって、32ビットデータワードに作用することであるならば、その場合に、それぞれ16個のエントリを有する8つのテーブルか、または、もしバイトによって32ビットデータワードに作用することであるならば、それぞれ256個のエントリを有する4つのテーブルが存在するであろう。
LUTデポジットインクリメントインデックスレジスタ20は、テーブルベースビットフィールド38、テーブルインデックスビットフィールド40、デポジットビットフィールド36、及びゼロビットフィールド41の関数として、効果的なメモリアドレスを生成する。動作中、CU14が提供するデータワードは、DAGデータ入力ワードレジスタ18に供給される。例えば、それの1つのセクションである第1のニブル34は、直接変位ビットフィールド36に配置される。テーブルベースビットフィールド38は、外部メモリ16内のテーブル32のセットの開始位置を識別する。インデックスフィールド40は、テーブルセット32における特定のテーブル32−1からテーブル32−8までの位置を識別すると共に、ゼロフィールド41は、LUTのエントリの幅に対応する。もし32ビットLUTアクセスが使用されるならば、ゼロフィールドは2つのゼロを含み、もし16ビットLUTアクセスが使用されるならば、ゼロフィールドは1つのゼロを含むであろう。変位フィールド36に配置されたセクションまたはニブル34は、特定のテーブルにおける特定のエントリ、例えばエントリ42のアドレスの変位である。システムがDAGの入力レジスタ18に転送された32ビットワードを1度に1ニブル並び換えるために使用されていると仮定すると、その場合に、エントリ42は、更に32ビットワードに4ビットのマッピングロケーションを含むことになる。4ビットは、変位フィールド36に配置されるニブル34におけるビットの並び換えである。これらの4ビット及び32ビットワードにおいてそれらの位置を割り当てる情報は、CU14内の32ビットLUT宛先レジスタ26に供給される。特定のエントリ42が提供する4ビットは、エントリ42におけるマッピング情報に従って、それらの32個の位置の内の4つに読み込まれることになる。この部分的な結果は、結合回路またはGF−2加算器30(排他的論理和回路:XOR)によって、アキュムレータレジスタ28の内容と結合される。これが動作の最初のサイクルであるので、レジスタ28はゼロを含む。従って、加算器30において2つのレジスタの出力を結合した後で、レジスタ28における累算された結果は、LUT宛先レジスタ26の内容でしかない。次に、インクリメント回路22は、システムがテーブル2(符号32−2)に移動するように、テーブルインデックス40の値を1つだけインクリメントすると共に、それを新しいテーブルインデックスとしてフィードバックする。同時に、データワード入力レジスタ18におけるデータワードの次のセクション、すなわちデータワード入力レジスタ18の次のセクション44におけるニブルは、変位フィールド36に供給される。これは、直ちに、LUT宛先レジスタ26に割り当てられる、テーブル2における別の特定のエントリ46を識別する。レジスタ26が提供する出力は、再度GF−2加算器30(排他的論理和回路:XOR)によって、レジスタ28の内容と結合されると共に、結合結果は、レジスタ28に累算されて、格納される。ここで、レジスタ28は、その4ビットが32ビットワードフォーマットの中の4つの他の位置に割り当てられる特定のエントリ46と結合された、32ビットワードフォーマットに割り当てられた特定のエントリ42が提供するデータの組み合わせを含む。これが、レジスタ18に存在する32ビットワードの全ての8個のニブルが完了されるまで続く。インクリメント回路が“8”に到達した時点で、プリロード回路24は、テーブルベースをテーブルのセットの最初に戻すようにあらかじめ読み込む(プリロードする)ことになる。プリロード回路24は、実際には、テーブルベースフィールド38をあらゆる特定の場所にあらかじめ読み込む(プリロードする)であろう。
本発明の利点は、それを従来の動作と比較することによって発見され得る。従来の動作において、データワードは、CU内のRレジスタからDAG内のインプットP入力レジスタに対して、一度に1ニブルか、または1バイト移動される。深いパイプライン動作において、これは、そのように転送される各ニブルまたはバイトに対していくつかの機能停止があることを意味する。更に、ニブルまたはバイトデータを変位フィールドに配置すると共に、次のテーブルにインクリメントする動作は、DAGによってマニュアルで実行されなければならない。一方、この発明に関して、全体のデータワードは、CUにおけるRレジスタからDAGにおけるP入力レジスタに対して、一度に転送され、従って、許容されなければならないいくつかの機能停止は、各8ニブルまたは各4バイトに対して1度よりむしろ、全体のデータワードに対して1度だけ許容される。更に、ニブルまたはバイトデータを変位フィールドに配置すると共に、次のテーブルにインクリメントする動作は、DAG自身の回路によって、ここでは毎回自動的に実行されることができる。
DAGには、1を超える利用可能な入力レジスタ18a及びデポジットインクリメントインデックスレジスタ20aがあり得る。入力レジスタ18及び18aは、実際には、デポジットインクリメントインデックスレジスタ20とデポジットインクリメントインデックスレジスタ20aとを使用可能にする単一のレジスタであり得る。同様に、追加のインクリメント回路22a、及びプリロード回路24aが存在し得る。
そのような場合に、CU14内の第2のLUT宛先レジスタ26aを用いて、その動作は2倍速く実行され得る。入力レジスタ18及び入力レジスタ18aに設定された同じデータワードに関して、システムは、レジスタ18内のニブル34を検査すると共に、それをレジスタ20内の変位フィールド36に供給することができ、一方レジスタ18a内のニブル44aは、変位フィールド36aに供給されることができる。従って、レジスタ26に割り当てられたニブルとレジスタ26aに割り当てられたニブルが一緒にアキュムレータレジスタ28の内容と結合されるように、そしてシステムが2倍速く動くことができるように、図1におけるDAG12がテーブル1内の特定のエントリ42を取り出す一方、DAG12aは、テーブル2内の特定のエントリ46を取り出すと共に、それをLUT宛先レジスタ26aに供給することができる。次のサイクルにおいて、システムは、テーブル3及びテーブル4に移動し、次にテーブル5及びテーブル6に移動し、最終的にテーブル7及びテーブル8に移動することになる。
符号18のような32ビット入力レジスタの並べ換えは、例えば、入力レジスタを8つのニブル、すなわち8つの4ビットのグループに分割すると共に、全ての並べ替えられたニブルの部分的な結果を結合することによって実行される。図1のレジスタ18におけるニブル34のような第1のニブルは、図2に示されるように、図1のアキュムレータレジスタ28における32ビットワードフォーマット50に割り当てられて示される。この第1の動作の4つの割り当てられたビットは、“1”の表示を有する“X”の印で示される。次のニブル44に関して、図2の符号52で示されるように、“2”の表示が添付してある“X”の印で示されるビットは、LUT宛先レジスタ26に割り当てられると共に、図2の32ビットフォーマット52に、結合結果が示される。第3のニブルの後で、アキュムレータレジスタ28におけるワードフォーマットは、図2の符号54で示される。全ての8つの動作サイクルの後で、図1のレジスタ28の内容は、4ビットの8つのグループまたはニブル内の全ての32ビットが、符号50、符号52、符号54で示されるそれぞれの部分的な結果を結合することによって、それぞれ符号56で示される最終結果に割り当てられた、図2のワードフォーマット56で示されたように現れると共に、ここでは中間の状態は単純化のために示されなかった。
代替の構成では、図3の2つのPインデックスレジスタ20b、20bbが存在し得ると共に、それは、参照テーブルセット32bからエントリを取り出すために、インタリーブされた方式で動作する。例えば、示されるように、32ビットデータワードの並べ換えの場合において、インデックスレジスタ20b内のゼロフィールド41bは、32ビットデータワードの全ての偶数ビットをフェッチするために、全て“0”を含み得ると共に、一方インデックスレジスタ20bb内のゼロフィールド41bbは、32ビットデータワードの全ての奇数ビットをフェッチするために、後ろに2つの“0”が続く“1”を含み得る。そして、インデックスレジスタ20bbがその変位フィールド36bb内のニブル34を処理すると共に、テーブル2から特定のエントリ42bを取り出す一方、その変位フィールド36bにニブル44を受け取ったインデックスレジスタ20bは、テーブル1から特定のエントリ46bを探すことになる。テーブル3とテーブル4、テーブル5とテーブル6、テーブル7とテーブル8のアドレス指定可能なデータ入力がインタリーブされたのと同様に、テーブル1とテーブル2のアドレス指定可能なデータ入力がインタリーブされたことに注意が必要である。テーブルインデックスをインクリメントした後で、インデックスレジスタ20は、今度はインデックスレジスタ20’として現れる。この場合、第2のPインデックスレジスタ20bbを使用することによって、32ビット入力レジスタは、2倍速く並べ換えられ得る。これまでのところ本発明は並べ換え動作に関してのみ説明されたが、それは、大きい利点に対する多くの他の応用において使用され得る。例えば、図4において、本発明の参照テーブルアドレス指定システム10aは、参照テーブルアドレス指定システムを2回使用することによって、DES暗号化システム60を実現するために使用される。第1の参照テーブルセットは、32ビット入力レジスタ18を48ビット表示に並べ換えて拡張すると共に、DESシステム60のレジスタ70に配置される。それは、その場合に、加算回路74を用いて、レジスタ72に格納される48ビット巡回鍵(round key)と結合される。本発明によるPの並べ換えを従えているS−Boxを実装する第2の参照テーブルセット10bは、DESシステム60のレジスタ70から6個のビットグループを取得すると共に、特定のDES規則に従って、それらを32ビットに戻るように変換し、アキュムレータレジスタ28bに最終結果を配置するために使用され得る。図4のDESアプリケーションにおいて、結合回路は排他的論理和ゲート30aとして実装されることに注意が必要である。
本発明は、一般的に、そこからシステムが出力112及び“Sn+1”として指定される新しいトレリス状態出力114を生成する、“u3”、“u2”、及び“u1”として指定された1つ以上のトレリスビットストリーム内の多数の入力ビット、及び“Sn”として指定されたマトリクスのトレリス状態出力を受信するトレリスシステムである、図5におけるガロアフィールド線形変換(Galois Field Linear Transformer:GFLT)LFSR110のような、線形フィードバックシフトレジスタ(LFSR)に関連する大きい利点に同じく使用され得る。図6のCRC、図7のスクランブラ、図8のデスクランブラ、図9のトレリスを含む多くの異なる種類の線形フィードバックシフトレジスタが存在する。本発明のそのようなシステムへの応用は、ここで図9から図13を参照して説明されることになる。
図9において示されるように、ADSLモデムトレリス120のような一般的なトレリスシステムは、線形フィードバックシフトレジスタ(LFSR)122としてハードウェアで実現される。線形フィードバックシフトレジスタ122は、線形フィードバックシフトレジスタの状態“s0”、状態“s1”、状態“s2”、及び状態“s3”を表す4つの記憶装置、フリップフロップ124、フリップフロップ126、フリップフロップ128、及びフリップフロップ130を備える。トレリスビットストリーム“u3”、トレリスビットストリーム“u2”、及びトレリスビットストリーム“u1”は、それぞれビット“u3、u3、u3、u3...u3...”、ビット“u2、u2、u2、u2...u2...”、ビット“u1、u1、u1、u1...u1...”のストリームとして入力132に現れる。ビットストリーム“u3”は、直接入力132で出力“v0”を供給する。出力“v1”は、“u3”入力と“u1”入力に応答する排他的論理和ゲート134によって生成される。出力“w0”は、“u3”入力と“u2”入力に応答する排他的論理和ゲート136によって生成される。出力“w1”は、入力“u3”、“u2”、“u1”にライン140上の線形フィードバックシフトレジスタ122の出力状態“s3”を加えた全てに応答する排他的論理和ゲート138によって供給される。
クロックの各サイクルの動作において、図10の列150のように、“u1〜u3”入力の関数としての状態“s0”、状態“s1”、状態“s2”、及び状態“s3”と、以前の“S1〜S3”状態が図表Iに示されることになる。
図11のガロアフィールド線形変換器トレリスシステム110aは、特定のアプリケーションに受け入れ可能なガロアフィールド線形変換器のマトリクスのサイズに応じて、同時に4、8、12、16、またはあらゆるビット数を処理し得る。これは図11において示されると共に、ここでは、一般化されたトレリスビットストリーム入力“u1〜u1”、“u2〜u2”、“u3〜u3”が全て同時に受け入れられたことが示される。特定のビットは、第1の目盛り(tick)またはクロックサイクルに関して、“z1”から“z1”、そして“y2”から“y2”、及び“x3”から“x3”として示される。この特別な例において、GFLTトレリスシステム10が一度に4ビットを受け入れているので、真のガロアフィールド変換器形式におけるその出力は、図10の図表Iにおける四角で囲まれたエリア152において、第4のクロックサイクルまたはクロックサイクル番号“3”に対応する出力を提示することになる。符号154、符号156、符号158、及び符号160で示された、状態“s0”、状態“s1”、状態“s2”、及び状態“s3”に関するこれらの値は、従って、図11の新しいトレリス状態154a、新しいトレリス状態156a、新しいトレリス状態158a、及び新しいトレリス状態160aである。それらは、新しいトレリス状態“s0n+1”、新しいトレリス状態“s1n+1”、新しいトレリス状態“s2n+1”、新しいトレリス状態“s3n+1”であると共に、トレリス入力“s3、s2、s1、s0”にフィードバックされる。
図12の図表IIのクロックサイクル“1”で示される次のクロックサイクルまたは第2のクロックサイクルにおいて、s3、y2(y2はu2の現在の値である)、s0、y2(y2はu2の現在の値である)、及びz1(z1はu1の現在の値である)の排他的論理和結合として、状態“s0n+1”が列151に示される。これは、次のトレリス状態を提供するために、第2の列153において示されたように拡張され、その後第3の列155において示されたように消去された冗長性(2つの加算のモジュロ演算)を有すると共に、“s1n+1”、“s2n+1”、及び“s3n+1”に関して同じ事が実行され得る。例えば図13のガロアフィールド線形変換トレリスシステムマトリクス160に示されたように、出力v0、出力v1、出力w0、及び出力w1は、それらが信号の簡単な排他的論理和結合であるので、図表形式において一覧にされない。ここで、マトリクス160の行と列の選択された接合点において排他的論理和ゲートセル162を有効にすることによって、図表I及び図表IIにおいて要求された出力が獲得されるということがわかる。例えば、図12の図表IIを参照すると、s0の値は、s1、s2、s3、u2、u2、u1の排他的論理和結合と見なされ得ると共に、w0に関して、例えばその表現は、単にu3とu2とが排他的に論理和結合され、v1に関して、例えばその表現は、単にu3とu1とが排他的に論理和結合される等と見なされ得る。
更なる説明のためには、“Stein”等によって2004年1月7日に出願されたと共に、参照によってその全体がここに組み込まれた、“GALOIS FIELD LINEAR TRANSFORMER TRELLIS SYSTEM”と表題をつけられた米国特許出願番号第10/753,301号明細書を参照すること。
この環境における本発明の使用の1つの利点は、排他的論理和ゲートの32×32のマトリクス、または232の容量を有する参照テーブルの必要性が回避され得るということである。これは、図14において教えられ、ここで、その1つがu1として表現された、図13が提供する1ニブルは、その4つの列の32行を必要とする全ての排他的論理和ゲート162を繰り返して再度示している。この発明に従って、4ビットのニブルにおいて発生し得る“1”と“0”との16個の異なる可能な組み合わせが、列182の16個の行180で示される。LUT出力184は、列186の対応する行180において示される。例えば、符号180aで示されるように、“u1”に関してビット“0011”の組み合わせを選択すると、1つが“0”ポジションに、もう一つが“3”ポジションに配置された2つの排他的論理和ゲートを含む12番目の行188に対するLUT出力は、“1”である。同じビットの組み合わせ“0011”を有する、1つの排他的論理和ゲートを含む19番目の行190に関して、LUTの出力は“1”である。従って、排他的論理和ゲートの全体のマトリクスは、参照テーブルと交換され得ると共に、この発明に従って、その参照テーブルは、各々が32ビットである232のエントリを必要としないが、各々が32ビットである16個エントリを有する8つのテーブル(または、512バイトLUT)を含むテーブルのセットのグループであり得る。
本発明は、DAG12、CU14、及びメモリ16が、相互に、そしてシーケンサ202と、様々なバス204を用いて通信する図15のデジタルシグナルプロセッサDSP200のようなプロセッサにおいて都合よく実行され得る。DAG12は、入力レジスタ18とデポジットインクリメントインデックスレジスタ20とを含むポインタレジスタファイル206と、従来のIレジスタ、Lレジスタ、そしてMレジスタのような他のレジスタ208を備える。CU14は、乗算及び累算ユニット210、演算論理回路212、及びシフタ214と一緒に、LUT宛先レジスタ26及びアキュムレータレジスタ28のようなデータレジスタファイル209を備え得る。
本発明による、図16の参照テーブルアドレス指定方法300の1つの実施例は、データワードを計算ユニットからデータアドレス生成器内の入力レジスタに転送する転送段階302を含む。段階304において、DAG内の各インデックスレジスタに、テーブルベースフィールド、テーブルインデックスフィールド、及び変位フィールドが提供される。段階306において、外部メモリ内の参照テーブルにおける特定のエントリの場所を示すために、データワードの1バイトまたは1ニブルのようなセクションが、変位フィールドに配置される。段階308において、各セクションから出力ワードに特定のエントリが割り当てられる。段階310において、テーブルインデックスフィールドが次のテーブルへインクリメントされる。この後、完了するべき残されたセクションが存在する限り、システムは段階306に戻る。その後で、段階312において、出力ワードを完成するために、全てのセクションから、特定のエントリが、例えば合計演算、加算、排他的論理和演算によって累算される。最終的に、段階314において、インデックスレジスタ、既知のアドレス、例えばスタートアドレスあらかじめ読み込まれる(プリロードされる)と共に、システムは、データワードを取得して転送する段階302に、再度戻る。
本発明の特定の特徴が他のものではなく、いくつかの図面において表されるが、各特徴が本発明による他の特徴の一部もしくは全部と結合され得るように、これは利便性のためだけのものである。ここで使用されるように、用語“含む”、“備える”、“持つ”、及び“有する”は、広く、そして分かりやすく解釈されるべきであると共に、物理的な相互接続に全く制限されない。更に、対象の特許出願において開示された実施例は、唯一の可能な実施例と考えられるべきではない。
更に、この特許のための特許出願の審査手続の間に提示されたあらゆる補正は、出願された特許出願において提示されたあらゆる請求項要素の否定ではなく、当業者は、文字通りに全ての可能な等価物を包囲するであろう請求項を起草すると合理的に予測できず、(どちらかといえば)多くの等価物は、補正の時に予測不可能であり、何が諦められるべきであるかの公正な解釈を越えており、補正の基礎となる論理的根拠は多くの等価物とわずかな接線の関係しか持たないか、及び/または、そこには出願人が補正されたあらゆる請求項要素に対する特定の実体のない代わりの物を説明すると期待されることができない多くの他の理由がある。
他の実施例が当業者の心に浮かぶと共に、それらは添付の特許請求の範囲の中にある。
DSPのDAG及びCUに実装された本発明による参照テーブルアドレス指定システムの構成図である。 32ビットワードフォーマットにおける最終結果に対する多くの部分的な結果の累積的なマッピングの表現を示す図である。 図1のシステムのDAG部分の代替実施例の概要の構成図である。 図3の実施例によって修正された、図1の参照テーブルアドレス指定システムを2つ用いて実施されるDES暗号化システムの概要の構成図である。 本発明によって実現可能な線形フィードバックシフトレジスタトレリスシステムのガロアフィールド線形変換器の実施の概要の構成図である。 LFSRによるCRCの概要の構成図である。 LFSRによるスクランブラの概要の構成図である。 LFSRによるデスクランブラの概要の構成図である。 LFSRによるトレリスの概要の構成図である。 8つのクロックサイクルに関する図9のADSLモデムトレリスの4つの階層の状態を例証する図表Iである。 図5の再構成可能なガロアフィールド線形変換器トレリスシステムの更に詳細な概要の構成図である。 図11のガロアフィールド線形変換器システムにおいて発生する状態を例証する図表IIである。 1つのサイクルにおける入力ビットからトレリス出力チャネル記号を生成するように構成されたガロアフィールド線形変換器マトリクスの更に詳細な構成図である。 図13のマトリクスの1ニブルから本発明による参照テーブルアドレス指定システムへの変換を描写する図である。 本発明を実施するために使用されるデジタルシグナルプロセッサの概要の構成図である。 本発明による参照テーブルアドレス指定方法の構成図である。
符号の説明
10 参照テーブルアドレス指定システム
10a 参照テーブルアドレス指定システム
12 データアドレス生成器(DAG)
12a DAG
14 計算ユニット(CU)
16 外部メモリ
18 データワード入力レジスタ
18a 入力レジスタ
20 デポジットインクリメントインデックスレジスタ
20a デポジットインクリメントインデックスレジスタ
20b、20bb Pインデックスレジスタ
20、20’ インデックスレジスタ
22 インクリメント回路
22a インクリメント回路
24 プリロード回路
24a プリロード回路
26 参照テーブル(LUT)宛先レジスタ
26a 第2のLUT宛先レジスタ
28 アキュムレータレジスタ
28b アキュムレータレジスタ
30 結合回路(排他的論理和ゲート)
30a 排他的論理和ゲート
32 参照テーブル
32−1 テーブル1
32−2 テーブル2
32−3 テーブル3
32−8 テーブル8
34 ニブル
36 変位ビットフィールド
36a 変位フィールド
36b、36bb 変位フィールド
38 テーブルベースビットフィールド
40 テーブルインデックスビットフィールド
41 ゼロビットフィールド
41b、41bb ゼロフィールド
42 特定のエントリ
42b 特定のエントリ
46b 特定のエントリ
44 次のセクション
44a ニブル
46 特定のエントリ
50、52、54、56 32ビットワードフォーマット
60 DES暗号化システム
70 レジスタ
72 レジスタ
74 加算回路
110 ガロアフィールド線形変換(GFLT)LFSR
110a ガロアフィールド線形変換器トレリスシステム
112 出力
114 新しいトレリス状態出力
120 ADSLモデムトレリス
122 線形フィードバックシフトレジスタ(LFSR)
124、126、128、130 フリップフロップ
132 入力
134、136、138 排他的論理和ゲート
140 ライン
160 ガロアフィールド線形変換トレリスシステムマトリクス
162 排他的論理和ゲートセル
200 デジタルシグナルプロセッサDSP
202 シーケンサ
204 様々なバス
206 ポインタレジスタファイル
208 他のレジスタ
209 データレジスタファイル
210 乗算及び累算ユニット
212 演算論理回路
214 シフタ

Claims (23)

  1. 外部メモリ内の参照テーブルのセットを有する参照テーブルアドレス指定システムであって、
    計算ユニットからデータワードを受け取るための入力レジスタ、
    及び前記外部メモリ内の前記参照テーブルのセットの位置を識別するためのテーブルベースフィールド、前記参照テーブルのセットのうちの1つの参照テーブルを順次識別するインデックスフィールドと、前記インデックスフィールドで識別される参照テーブルにおける特定のエントリの位置を識別するための変位フィールドとを含む第1のデポジットインクリメントインデックスレジスタを有するデータアドレス生成器を備え、
    前記データアドレス生成器が、
    前記データワードのセクションに対応する部分的な結果にアクセスするために、前記データワードのセクションを前記変位フィールドに配置し、
    前記参照テーブルのセットにおける各参照テーブルに関して前記データワードのセクションに対応する前記エントリから部分的な結果を取得し、
    前記インデックスフィールドをインクリメントする処理を前記データワードのセクションの数だけ繰り返すように構成され、
    前記計算ユニットが、最終結果を獲得するために、前記データワードの全セクションからの前記部分的な結果を累算するように構成される
    ことを特徴とする参照テーブルアドレス指定システム。
  2. 前記データアドレス生成器が、複数のポインタレジスタを備え、
    前記第1のデポジットインクリメントインデックスレジスタが、前記ポインタレジスタの内の1つによって実現される
    ことを特徴とする請求項1に記載の参照テーブルアドレス指定システム。
  3. 前記部分的な結果が、前記対応するセクションのデータビットを含むと共に、
    前記データアドレス生成器が、更に、それらのビットを所定の出力ワードに割り当てるように構成される
    ことを特徴とする請求項1に記載の参照テーブルアドレス指定システム。
  4. 前記出力ワード及び前記データワードが、同一のビット数を有している
    ことを特徴とする請求項3に記載の参照テーブルアドレス指定システム。
  5. 前記出力ワード及び前記データワードが、同一でないビット数を有している
    ことを特徴とする請求項3に記載の参照テーブルアドレス指定システム。
  6. 前記データアドレス生成器が、第2のデポジットインクリメントインデックスレジスタを備え、
    前記データアドレス生成器が、前記データワードの第2のセクションを前記第2のデポジットインクリメントインデックスレジスタの変位フィールドに配置するように構成される
    ことを特徴とする請求項1に記載の参照テーブルアドレス指定システム。
  7. 前記データアドレス生成器が、前記第1のデポジットインクリメントインデックスレジスタに既知の参照テーブルアドレスをあらかじめ読み込むように構成される
    ことを特徴とする請求項1に記載の参照テーブルアドレス指定システム。
  8. 前記既知の参照テーブルアドレスが、開始アドレスである
    ことを特徴とする請求項7に記載の参照テーブルアドレス指定システム。
  9. 前記セクションが、ビットフィールドである
    ことを特徴とする請求項1に記載の参照テーブルアドレス指定システム。
  10. 前記ビットフィールドが、1バイトである
    ことを特徴とする請求項9に記載の参照テーブルアドレス指定システム。
  11. 前記ビットフィールドが、1ニブルである
    ことを特徴とする請求項9に記載の参照テーブルアドレス指定システム。
  12. 外部メモリ内の参照テーブルのセットを使用可能にするための参照テーブルアドレス指定方法であって、
    データワードを計算ユニットからデータアドレス生成器内の入力レジスタに転送する段階と、
    前記データアドレス生成器内の第1のインデックスレジスタに、前記外部メモリ内の前記参照テーブルのセットの位置を識別するためのテーブルベースフィールドと、前記参照テーブルのセットのうちの1つの参照テーブルを順次識別するインデックスフィールドと、前記インデックスフィールドで識別される参照テーブルにおける特定のエントリの位置を識別するための変位フィールドを提供する段階と、
    前記データワードのセクションに対応する部分的な結果の位置を識別するために、前記データワードのセクションを前記変位フィールドに配置する段階と、
    前記参照テーブルのセットにおける各参照テーブルに関して前記データワードのセクションに対応する前記エントリから部分的な結果を取得する段階と、
    前記インデックスフィールドをインクリメントする処理を前記データワードのセクションの数だけ繰り返す段階と、
    最終結果を獲得するために、前記データワードの全セクションからの前記部分的な結果を累算する段階と、
    を含むことを特徴とする参照テーブルアドレス指定方法。
  13. 前記部分的な結果が、データビットを含むと共に、
    前記方法が、それらのビットを所定の出力ワードに割り当てる段階を更に含む
    ことを特徴とする請求項12に記載の参照テーブルアドレス指定方法。
  14. 前記出力ワード及び前記データワードが、同一のビット数を有している
    ことを特徴とする請求項13に記載の参照テーブルアドレス指定方法。
  15. 前記出力ワード及び前記データワードが、同一でないビット数を有している
    ことを特徴とする請求項13に記載の参照テーブルアドレス指定方法。
  16. 前記累算する段階が、排他的論理和を計算する段階を含む
    ことを特徴とする請求項12に記載の参照テーブルアドレス指定方法。
  17. 前記累算する段階が、加算する段階を含む
    ことを特徴とする請求項12に記載の参照テーブルアドレス指定方法。
  18. 前記データワードのセクションを前記第1のインデックスレジスタ内の変位フィールドに配置するのと並行して、前記データワードの第2のセクションを、別の特定のエントリの位置を識別するために、第2のインデックスレジスタの変位フィールドに配置する段階を更に含む
    ことを特徴とする請求項12に記載の参照テーブルアドレス指定方法。
  19. 前記第1のインデックスレジスタに既知の参照テーブルアドレスをあらかじめ読み込む段階を更に含む
    ことを特徴とする請求項12に記載の参照テーブルアドレス指定方法。
  20. 前記第1のインデックスレジスタに、開始アドレスがあらかじめ読み込まれる
    ことを特徴とする請求項19に記載の参照テーブルアドレス指定方法。
  21. 前記セクションが、ビットフィールドである
    ことを特徴とする請求項19に記載の参照テーブルアドレス指定方法。
  22. 前記ビットフィールドが、1バイトである
    ことを特徴とする請求項21に記載の参照テーブルアドレス指定方法。
  23. 前記ビットフィールドが、1ニブルである
    ことを特徴とする請求項21に記載の参照テーブルアドレス指定方法。
JP2008537761A 2005-10-26 2006-10-17 参照テーブルアドレス指定システム及び方法 Expired - Fee Related JP5112325B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/258,662 2005-10-26
US11/258,662 US8285972B2 (en) 2005-10-26 2005-10-26 Lookup table addressing system and method
PCT/US2006/040414 WO2007050349A2 (en) 2005-10-26 2006-10-17 Lookup table addressing system and method

Publications (3)

Publication Number Publication Date
JP2009514096A JP2009514096A (ja) 2009-04-02
JP2009514096A5 JP2009514096A5 (ja) 2011-10-20
JP5112325B2 true JP5112325B2 (ja) 2013-01-09

Family

ID=37968359

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008537761A Expired - Fee Related JP5112325B2 (ja) 2005-10-26 2006-10-17 参照テーブルアドレス指定システム及び方法

Country Status (6)

Country Link
US (1) US8285972B2 (ja)
EP (1) EP1941370A4 (ja)
JP (1) JP5112325B2 (ja)
CN (1) CN101341470B (ja)
TW (1) TWI333615B (ja)
WO (1) WO2007050349A2 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8024551B2 (en) 2005-10-26 2011-09-20 Analog Devices, Inc. Pipelined digital signal processor
US7728744B2 (en) * 2005-10-26 2010-06-01 Analog Devices, Inc. Variable length decoder system and method
US8301990B2 (en) * 2007-09-27 2012-10-30 Analog Devices, Inc. Programmable compute unit with internal register and bit FIFO for executing Viterbi code
US7877571B2 (en) * 2007-11-20 2011-01-25 Qualcomm, Incorporated System and method of determining an address of an element within a table
US20090245510A1 (en) * 2008-03-25 2009-10-01 Mathieu Ciet Block cipher with security intrinsic aspects
WO2010013092A1 (en) * 2008-07-30 2010-02-04 Telefonaktiebolaget Lm Ericsson (Publ) Systems and method for providing trusted system functionalities in a cluster based system
JP5755970B2 (ja) * 2011-08-26 2015-07-29 株式会社東芝 演算装置
GB2542220A (en) * 2013-09-13 2017-03-15 Smg Holdings-Anova Tech Llc Packet sharing data transmission system and relay to lower latency
GB2533531A (en) 2013-09-13 2016-06-22 Smg Holdings-Anova Tech Llc Self-healing data transmission system to achieve lower latency
US11106437B2 (en) * 2019-01-14 2021-08-31 Microsoft Technology Licensing, Llc Lookup table optimization for programming languages that target synchronous digital circuits
US11113176B2 (en) 2019-01-14 2021-09-07 Microsoft Technology Licensing, Llc Generating a debugging network for a synchronous digital circuit during compilation of program source code
US11144286B2 (en) 2019-01-14 2021-10-12 Microsoft Technology Licensing, Llc Generating synchronous digital circuits from source code constructs that map to circuit implementations
US11275568B2 (en) 2019-01-14 2022-03-15 Microsoft Technology Licensing, Llc Generating a synchronous digital circuit from a source code construct defining a function call
US11093682B2 (en) 2019-01-14 2021-08-17 Microsoft Technology Licensing, Llc Language and compiler that generate synchronous digital circuits that maintain thread execution order
CN109933301B (zh) * 2019-03-19 2023-04-14 中科亿海微电子科技(苏州)有限公司 可扩展可编程逻辑单元及可编程逻辑块结构
TWI754206B (zh) * 2020-01-10 2022-02-01 祥碩科技股份有限公司 資料儲存系統、資料儲存裝置及其管理方法
KR20220009643A (ko) * 2020-07-16 2022-01-25 삼성전자주식회사 스토리지 컨트롤러, 이를 포함하는 클라이언트 및 서버, 및 이의 동작 방법
CN114185486B (zh) * 2021-11-17 2024-07-30 深圳市德明利技术股份有限公司 一种dram存储器的数据写入方法和dram控制系统

Family Cites Families (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE1181461B (de) * 1963-10-08 1964-11-12 Telefunken Patent Adressenaddierwerk einer programm-gesteuerten Rechenmaschine
US3805037A (en) * 1972-02-22 1974-04-16 J Ellison N{40 th power galois linear gate
DE2407241A1 (de) * 1974-02-15 1975-08-21 Ibm Deutschland Verfahren und anordnung zur erhoehung der verfuegbarkeit eines digitalrechners
DE3600905A1 (de) 1986-01-15 1987-07-16 Ant Nachrichtentech Verfahren zum dekodieren von binaersignalen sowie viterbi-dekoder und anwendungen
JP2614916B2 (ja) * 1988-04-27 1997-05-28 日本電気株式会社 記憶アクセス制御装置
US5287511A (en) 1988-07-11 1994-02-15 Star Semiconductor Corporation Architectures and methods for dividing processing tasks into tasks for a programmable real time signal processor and tasks for a decision making microprocessor interfacing therewith
US5031131A (en) 1988-11-14 1991-07-09 Eaton Corporation Direct digital synthesizer
US5062057A (en) * 1988-12-09 1991-10-29 E-Machines Incorporated Computer display controller with reconfigurable frame buffer memory
DE3909996A1 (de) 1989-03-25 1990-10-04 Forschungszentrum Juelich Gmbh Rekuperativer keramischer waermeuebertrager
JPH0492921A (ja) 1990-08-03 1992-03-25 Fujitsu Ltd 指数関数演算器
CA2074769C (en) * 1991-08-09 2001-03-20 International Business Machines Corporation Formula processor
US5386523A (en) * 1992-01-10 1995-01-31 Digital Equipment Corporation Addressing scheme for accessing a portion of a large memory space
US5260898A (en) 1992-03-13 1993-11-09 Sun Microsystems, Inc. Result cache for complex arithmetic units
US5351047A (en) 1992-09-21 1994-09-27 Laboratory Automation, Inc. Data decoding method and apparatus
JPH06110852A (ja) 1992-09-29 1994-04-22 Hitachi Ltd ブロック状並列分散演算アレイプロセッサ
JP3124648B2 (ja) 1993-03-19 2001-01-15 富士通株式会社 色データ管理方法及び装置
KR0135846B1 (ko) * 1994-02-02 1998-06-15 김광호 룩-업-테이블장치
US5530825A (en) * 1994-04-15 1996-06-25 Motorola, Inc. Data processor with branch target address cache and method of operation
US5832290A (en) * 1994-06-13 1998-11-03 Hewlett-Packard Co. Apparatus, systems and method for improving memory bandwidth utilization in vector processing systems
US5507000A (en) 1994-09-26 1996-04-09 Bull Hn Information Systems Inc. Sharing of register stack by two execution units in a central processor
US5689452A (en) * 1994-10-31 1997-11-18 University Of New Mexico Method and apparatus for performing arithmetic in large galois field GF(2n)
US5710939A (en) 1995-05-26 1998-01-20 National Semiconductor Corporation Bidirectional parallel data port having multiple data transfer rates, master, and slave operation modes, and selective data transfer termination
US6029242A (en) * 1995-08-16 2000-02-22 Sharp Electronics Corporation Data processing system using a shared register bank and a plurality of processors
US5666116A (en) 1995-12-01 1997-09-09 U.S. Philips Corporation High speed variable-length decoder arrangement
JP3634379B2 (ja) * 1996-01-24 2005-03-30 サン・マイクロシステムズ・インコーポレイテッド スタックキャッシングのための方法及び装置
US5675332A (en) 1996-02-01 1997-10-07 Samsung Electronics Co., Ltd. Plural-step chunk-at-a-time decoder for variable-length codes of Huffman type
US5996066A (en) * 1996-10-10 1999-11-30 Sun Microsystems, Inc. Partitioned multiply and add/subtract instruction for CPU with integrated graphics functions
US6009499A (en) 1997-03-31 1999-12-28 Sun Microsystems, Inc Pipelined stack caching circuit
GB9707861D0 (en) * 1997-04-18 1997-06-04 Certicom Corp Arithmetic processor
US5961640A (en) 1997-04-22 1999-10-05 Vlsi Technology, Inc. Virtual contiguous FIFO having the provision of packet-driven automatic endian conversion
US6061749A (en) 1997-04-30 2000-05-09 Canon Kabushiki Kaisha Transformation of a first dataword received from a FIFO into an input register and subsequent dataword from the FIFO into a normalized output dataword
US5937438A (en) * 1997-06-30 1999-08-10 Lucent Technologies Inc. Sine/cosine lookup table
US6263420B1 (en) * 1997-09-17 2001-07-17 Sony Corporation Digital signal processor particularly suited for decoding digital audio
US6151705A (en) * 1997-10-30 2000-11-21 Hewlett-Packard Company Efficient use of the base register auto-increment feature of memory access instructions
US5970241A (en) * 1997-11-19 1999-10-19 Texas Instruments Incorporated Maintaining synchronism between a processor pipeline and subsystem pipelines during debugging of a data processing system
US6094726A (en) 1998-02-05 2000-07-25 George S. Sheng Digital signal processor using a reconfigurable array of macrocells
US6223320B1 (en) * 1998-02-10 2001-04-24 International Business Machines Corporation Efficient CRC generation utilizing parallel table lookup operations
GB9806687D0 (en) * 1998-03-27 1998-05-27 Memory Corp Plc Memory system
US6272452B1 (en) 1998-04-02 2001-08-07 Ati Technologies, Inc. Universal asynchronous receiver transmitter (UART) emulation stage for modem communication
US6067609A (en) * 1998-04-09 2000-05-23 Teranex, Inc. Pattern generation and shift plane operations for a mesh connected computer
US6138208A (en) * 1998-04-13 2000-10-24 International Business Machines Corporation Multiple level cache memory with overlapped L1 and L2 memory access
US5996057A (en) * 1998-04-17 1999-11-30 Apple Data processing system and method of permutation with replication within a vector register file
JP3154991B2 (ja) * 1998-04-27 2001-04-09 松下電器産業株式会社 暗号処理装置、暗号処理方法、及び、暗号処理プログラムを記憶した記憶媒体
US6134676A (en) 1998-04-30 2000-10-17 International Business Machines Corporation Programmable hardware event monitoring method
US6332188B1 (en) * 1998-11-06 2001-12-18 Analog Devices, Inc. Digital signal processor with bit FIFO
US6829695B1 (en) 1999-09-03 2004-12-07 Nexql, L.L.C. Enhanced boolean processor with parallel input
US6771196B2 (en) 1999-12-14 2004-08-03 Broadcom Corporation Programmable variable-length decoder
JP2001210357A (ja) 2000-01-28 2001-08-03 Hitachi Maxell Ltd アルカリ蓄電池
US6539477B1 (en) * 2000-03-03 2003-03-25 Chameleon Systems, Inc. System and method for control synthesis using a reachable states look-up table
US6480845B1 (en) * 2000-06-14 2002-11-12 Bull Hn Information Systems Inc. Method and data processing system for emulating virtual memory working spaces
US6430672B1 (en) 2000-07-17 2002-08-06 International Business Machines Corporation Method for performing address mapping using two lookup tables
US7251672B2 (en) * 2001-05-16 2007-07-31 Nxp B.V. Reconfigurable logic device
US6587057B2 (en) 2001-07-25 2003-07-01 Quicksilver Technology, Inc. High performance memory efficient variable-length coding decoder
KR100437609B1 (ko) 2001-09-20 2004-06-30 주식회사 하이닉스반도체 반도체 메모리 장치의 어드레스 변환 방법 및 그 장치
US6587864B2 (en) * 2001-11-30 2003-07-01 Analog Devices, Inc. Galois field linear transformer
US7283628B2 (en) * 2001-11-30 2007-10-16 Analog Devices, Inc. Programmable data encryption engine
US7508937B2 (en) * 2001-12-18 2009-03-24 Analog Devices, Inc. Programmable data encryption engine for advanced encryption standard algorithm
US6829694B2 (en) 2002-02-07 2004-12-07 Analog Devices, Inc. Reconfigurable parallel look up table system
JP2003264467A (ja) 2002-03-08 2003-09-19 Matsushita Electric Ind Co Ltd ビタビ復号回路
US20030196072A1 (en) * 2002-04-11 2003-10-16 Chinnakonda Murali S. Digital signal processor architecture for high computation speed
US7127667B2 (en) 2002-04-15 2006-10-24 Mediatek Inc. ACS circuit and viterbi decoder with the circuit
US6865659B2 (en) 2002-06-07 2005-03-08 Sun Microsystems, Inc. Using short references to access program elements in a large address space
US7173985B1 (en) 2002-08-05 2007-02-06 Altera Corporation Method and apparatus for implementing a Viterbi decoder
US7424597B2 (en) * 2003-03-31 2008-09-09 Hewlett-Packard Development Company, L.P. Variable reordering (Mux) instructions for parallel table lookups from registers
US7693928B2 (en) * 2003-04-08 2010-04-06 Analog Devices, Inc. Galois field linear transformer trellis system
JP2005134477A (ja) * 2003-10-28 2005-05-26 Sony Corp 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US20050228966A1 (en) 2004-03-16 2005-10-13 Kabushiki Kaisha Toshiba Processor system and data processing method
US7506239B2 (en) 2004-12-23 2009-03-17 Raghavan Sudhakar Scalable traceback technique for channel decoder
US7243210B2 (en) * 2005-05-31 2007-07-10 Atmel Corporation Extracted-index addressing of byte-addressable memories
US7765459B2 (en) 2005-09-28 2010-07-27 Samsung Electronics Co., Ltd. Viterbi decoder and viterbi decoding method
US7728744B2 (en) * 2005-10-26 2010-06-01 Analog Devices, Inc. Variable length decoder system and method
US8024551B2 (en) * 2005-10-26 2011-09-20 Analog Devices, Inc. Pipelined digital signal processor
US7882284B2 (en) * 2007-03-26 2011-02-01 Analog Devices, Inc. Compute unit with an internal bit FIFO circuit
US8301990B2 (en) * 2007-09-27 2012-10-30 Analog Devices, Inc. Programmable compute unit with internal register and bit FIFO for executing Viterbi code

Also Published As

Publication number Publication date
JP2009514096A (ja) 2009-04-02
EP1941370A4 (en) 2009-04-15
CN101341470B (zh) 2010-09-29
WO2007050349A3 (en) 2007-11-29
WO2007050349A2 (en) 2007-05-03
TWI333615B (en) 2010-11-21
TW200745850A (en) 2007-12-16
EP1941370A2 (en) 2008-07-09
US8285972B2 (en) 2012-10-09
CN101341470A (zh) 2009-01-07
US20070094474A1 (en) 2007-04-26

Similar Documents

Publication Publication Date Title
JP5112325B2 (ja) 参照テーブルアドレス指定システム及び方法
US10454669B2 (en) SM4 acceleration processors, methods, systems, and instructions
JP3150286B2 (ja) データストリング生成方法、コンピュータ動作方法、コンピュータシステムによるマトリックス乗算方法、及びコンピュータ
US7174014B2 (en) Method and system for performing permutations with bit permutation instructions
JP3138209B2 (ja) マトリックス転置方法
US6952478B2 (en) Method and system for performing permutations using permutation instructions based on modified omega and flip stages
US20220171885A1 (en) Co-processor for cryptographic operations
EP2889760B1 (en) SMS4 acceleration processors, methods, systems, and instructions
JPH08328849A (ja) コンピュータ及びコンピュータ動作方法
US20020027988A1 (en) Cryptographic accelerator
US20060039555A1 (en) Method and system for performing permutations using permutation instructions based on butterfly networks
JPH08314717A (ja) コンピュータ及びコンピュータ動作方法
KR20060135642A (ko) 레지스터와 메모리 사이에 데이터를 이동시키는 데이터처리장치 및 방법
KR20170033890A (ko) 비트 셔플 프로세서, 방법, 시스템, 및 명령어
US20090168999A1 (en) Method and apparatus for performing cryptographic operations
CN118132146A (zh) 用于下转换以及交错多个浮点值的装置和方法
JP6088655B2 (ja) 単一の命令に応じて回転及びxorを実行するためのシステム、装置及び方法
US20230067896A1 (en) Processor with block cipher algorithm, and a data encryption and decryption method operated by the processor
US7260217B1 (en) Speculative execution for data ciphering operations
CN117792730A (zh) 一种嵌入式系统中基于指令集的对称加密方法
JP4955149B2 (ja) ビットfifoを有するディジタル信号プロセッサ
Fiskiran et al. Fast parallel table lookups to accelerate symmetric-key cryptography
CN110034918B (zh) 一种sm4加速方法和装置
US6865272B2 (en) Executing permutations
CN1635731A (zh) 可重构密码协处理器电路

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110308

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110608

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110615

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110707

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110714

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20110902

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120529

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120820

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: 20120911

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121010

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

Free format text: PAYMENT UNTIL: 20151019

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees