JP6756514B2 - エラー・プロテクション・キー生成方法及びシステム - Google Patents

エラー・プロテクション・キー生成方法及びシステム Download PDF

Info

Publication number
JP6756514B2
JP6756514B2 JP2016084992A JP2016084992A JP6756514B2 JP 6756514 B2 JP6756514 B2 JP 6756514B2 JP 2016084992 A JP2016084992 A JP 2016084992A JP 2016084992 A JP2016084992 A JP 2016084992A JP 6756514 B2 JP6756514 B2 JP 6756514B2
Authority
JP
Japan
Prior art keywords
error protection
data value
data
subkey
key
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.)
Active
Application number
JP2016084992A
Other languages
English (en)
Other versions
JP2016212851A (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 JP2016212851A publication Critical patent/JP2016212851A/ja
Application granted granted Critical
Publication of JP6756514B2 publication Critical patent/JP6756514B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/033Theoretical methods to calculate these checking codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • H03M13/356Unequal error protection [UEP]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/47Error detection, forward error correction or error protection, not provided for in groups H03M13/01 - H03M13/37
    • H03M13/49Unidirectional error detection or correction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/618Shortening and extension of codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6362Error control coding in combination with rate matching by puncturing
    • H03M13/6368Error control coding in combination with rate matching by puncturing using rate compatible puncturing or complementary puncturing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0078Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
    • H04L1/0079Formats for control data
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Storage Device Security (AREA)
  • Detection And Correction Of Errors (AREA)

Description

本技術は、入力されたデータ値に対するエラー・プロテクション・コードを計算する際に使用するキーを生成するための方法及びシステムに関すると共に、このキーを用いた計算を実行するためのエラー・プロテクション回路を組み込んだ、データ処理システムに関する。
データ処理システムには、その内部で伝達される多様なデータ値のエラーに対する堅牢性の向上を目的とした、エラー・プロテクション機構を設けることが知られている。具体的に述べると、データ値と関連付けるためのエラー・プロテクション・コードを生成することが可能であり、このエラー・プロテクション・コードを、後に当該データ値と併用することで、例えばソフト又はハードのエラーにより、そのデータ値が破損しているといった状況を検出することができる。エラー・プロテクション・コードは、データにエラーがあることを単に見出すだけで十分なものとされる場合もあれば、エラーの存在を検出できるだけでなく、そのエラーの訂正までできることを以て十分なものとされる場合もある。両タイプのエラー・プロテクション・コードは、一般的にエラー・コレクション・コード(ECC)と呼ばれるため、本明細書では、エラー・プロテクション・コードをECCとも表記する。
このようなデータ処理システムでは、エラー・プロテクション・コード生成回路(データ値と関連付けられるエラー・プロテクション・コードを生成する)の形を採るエラー・プロテクション回路と、エラー・チェック回路(データ値がエラーとなっている状況を検出し、エラー・プロテクション・スキームが許可した場合に当該エラーを訂正するために、データ値及びそのデータ値に関連付けられたエラー・プロテクション・コードを分析する)の形を採るエラー・プロテクション回路とを設けるのが一般的である。
典型的なエラー・プロテクション・スキームによれば、キーが生成され、このキーは、入力されたデータ値に対するエラー・プロテクション・コードを生成するために、エラー・プロテクション・コード生成回路によって使用されると共に、エラーを特定し訂正することを可能とするために、データ値及び関連付けられたエラー・プロテクション・コードと併用する形で、エラー・チェック回路機構によっても使用される。
どのエラー・プロテクション・スキームでも、キー(本明細書ではマスクとも呼ぶ)のサイズは、保護するデータ値のサイズに応じたものとなるのが通例である。多くの場合、データ処理システム内では多種多様なサイズのデータ値が伝達されるため、こうした多種多様なデータ値に対して適切な保護を施すためには、様々なキーが必要となる。
通常、入力された特定のデータ値サイズごとに、エラー・プロテクション・スキームに即した一意のキーを生成するのが標準的な方法である。しかし、この方法では、データ処理システム内で処理される、サイズの異なるデータ値(これら全てが一意に生成された関連キーを持っている)の数が激増した場合に、このデータ処理システム内で用いるのに必要なエラー・プロテクション回路の生成に関連した、著しい設計及び検証コストが生じてしまっている。こうした設計及び検証コストを削減可能な機構の実現が望まれよう。
ある例示的構成では、エラー・プロテクション・スキームに応じた、入力されたデータ値に対するエラー・プロテクション・コードを計算するのに用いるキーを生成する、コンピュータによって実施される方法が提供される。このコンピュータで実装された方法は、複数のデータ値サイズを入力するステップと、前記複数のデータ値サイズの中の最大データ値サイズに対するエラー・プロテクション・コードを計算するのに用いるキーを生成するために、キー生成アルゴリズムを適用するステップであって、キー生成アルゴリズムが複数のサブ・キーを含むようにキーを生成し、各サブ・キーが、入力されたデータ値サイズのうちの1つと関連付けられると共にエラー・プロテクション・スキームのキー要件に準拠する、適用するステップとを含んでいる。
別の例示的構成では、コンピュータ上で実行されると、上述の例示的構成に従って、エラー・プロテクション・スキームに応じた、入力されたデータ値に対するエラー・プロテクション・コードを計算するのに用いるキーを生成する方法を実行するコンピュータ・プログラムを提供する、非一時的コンピュータ・プログラム製品が提供される。
更に別の例示的構成では、少なくとも、第1のデータ値サイズのデータ値を取り扱うための第1のエラー・プロテクション回路と、前記第1のデータ値サイズとは異なる第2のデータ値サイズのデータ値を取り扱う第2のエラー・プロテクション回路とを含む、複数のエラー・プロテクション回路を備えるデータ処理システムであって、前記第1及び第2のエラー・プロテクション回路が、上記方法に従って生成されたキーから選択されるサブ・キーを利用する計算を実行するための計算回路機構を備え、第1及び第2のエラー・プロテクション回路の各々に対して、サブ・キーが当該エラー・プロテクション回路によって取り扱われる関連付けられたデータ値サイズに基づいて選択される、データ処理システムが提供される。
更に別の例示的構成では、少なくとも、第1のデータ値サイズのデータ値を取り扱うための第1のエラー・プロテクション手段と、前記第1のデータ値サイズとは異なる第2のデータ値サイズのデータ値を取り扱う第2のエラー・プロテクション手段とを含む、複数のエラー・プロテクション手段を備えるデータ処理システムであって、前記第1及び第2のエラー・プロテクション手段が、上記方法に従って生成されたキーから選択されるサブ・キーを利用する計算を実行するための計算手段を備え、第1及び第2のエラー・プロテクション手段の各々に対して、サブ・キーが当該エラー・プロテクション手段によって取り扱われる関連付けられたデータ値サイズに基づいて選択される、データ処理システムが提供される。
本技術は、添付図面に示すその実施例を参照しながら、単なる例証として更に説明される。
一実施例によるデータ処理システムのブロック図である。 一実施例で使用されるマスクと、受信したデータ値に対するエラー・コレクション・コードを計算するための関連計算とを概略的に示す図である。 一実施例によるマスク生成技術を示すフロー図である。 図3の手法を採用して一実施例によって生成されたサブ・マスクのシーケンスを示す図である。 一実施例による、様々なデータ値サイズに対し、2つの異なるエラー・プロテクション・スキーム向けに生成された、エラー・コレクション・コードのサイズを概略的に示す図である。 一実施例によりエラー・プロテクション回路を生成する際に実行されるステップを示すフロー図である。 一実施例の機構を用いて生成されたときの、サイズdw_x+1を持つデータ値に対するマスクの各種部分を示す図である。 一実施例のアップスケーリング機構により、サイズdw_x+1を持つデータ値に対するエラー・コレクション・コードが、サイズdw_xを持つデータ値に対するエラー・コレクション・コードから、どのようにして生成可能かを示すフロー図である。 一実施例による、図8の方法に従って動作するように配置された、エラー・コレクション・コード生成回路機構を示すブロック図である。 一実施例による、ダウンスケーリング演算を実行して、サイズdw_x+1を持つデータ値に対して生成されたエラー・コレクション・コードから、サイズdw_xを持つデータ値に対するエラー・コレクション・コードを生成するように配置された、エラー・コレクション・コード生成回路機構を示すブロック図である。 異なる実施例による、図7のマスクの代替形態を示す図である。 異なる実施例による、図7のマスクの代替形態を示す図である。 異なる実施例による、図7のマスクの代替形態を示す図である。 本技術を実装するために使用可能なタイプの汎用コンピュータを概略的に示す図である。
添付図面を参照しながら実施例を論じるに先立ち、実施例の説明を以下に設ける。
ある例示的構成では、選択されたエラー・プロテクション・スキームに応じた、入力されたデータ値に対するエラー・プロテクション・コードを計算するのに用いるキーを生成するために、コンピュータによって実施される方法が提供される。具体的には、複数のデータ値サイズの入力後にキー生成アルゴリズムが適用されて、これら複数のデータ値サイズのうち、最大のデータ値サイズに対するエラー・プロテクション・コードを計算するのに用いるキーが生成される。キーの生成に際し、キー生成アルゴリズムは、複数のサブ・キーを含む形でこのキーを生成する。このとき、各サブ・キーは、入力されたデータ値サイズのうちの1つと関連付けられており、且つ選択されたエラー・プロテクション・スキームのキー要件に準拠したものとなっている。
結果として、生成されたキーは事実上、サブ・キーの包括的セットを形成する。各サブ・キーは、そのエラー・プロテクション・スキーム用となるキーの要件に準拠したものであり、且つ入力されたデータ値サイズのうちの特定の1つに関連付けられている。したがって、入力された複数のデータ値サイズのうちの特定のデータ値サイズに対して、上記方法で生成されたキーから選択された関連サブ・キーを利用する計算を実行するように、エラー・プロテクション回路機構を配置することができる。これにより、多種多様なデータ値サイズを取り扱うようにエラー・プロテクション回路を設計する場合、設計及び検証コストの大幅な削減が実現される。具体的には、生成されたキーによって提供されるサブ・キーからなる同一の包括的セットを各段階で参照することができ、このとき、抽出された関連サブ・キーは、必要なデータ値サイズに即したものとなる。
キー生成アルゴリズムは、選択されたエラー・プロテクション・スキームに応じたものとなる。例えば、特定サイズのデータ値に対するエラー・プロテクション・コードに必要なビット数は、選択されたエラー・プロテクション・スキームに応じて変化するということ、また、エラー・プロテクション・スキームに依存するデータ値から、どのようにしてキーを生成すべきかを指定する規則が、通常は存在するということが理解されよう。本技術によれば、キー生成アルゴリズムは、最大データ値サイズに関連付けられたキーを生成するだけではなく(このとき、当該キーはエラー・プロテクション・スキームのキー要件に準拠している)、個々のサブ・キーもまた、当該サブ・キー用に関連付けられたデータ値サイズに即して、エラー・プロテクション・スキームのキー要件に準拠していることを保証もする。このことにより、個々のサブ・キーの独立的な使用が可能となる。
一実施例では、コンピュータによって実施される方法によりキーが出力されるが(先に述べたように、このキーは事実上、様々なデータ値サイズに対するサブ・キーの包括的セットである)、それにより、次いでその出力されたキーを、エラー・プロテクション・スキームに準拠するエラー・プロテクション回路の生成時に、入力として使用することができる。エラー・プロテクション回路は多様な形態を採り得るため、例えば、入力された特定サイズのデータ値に対するエラー・プロテクション・コードを生成するためのエラー・プロテクション・コード生成回路(本明細書では、ECC生成回路とも表記される)とすることや、データ値内で特定されたエラーを、そのデータ値及び関連付けられたECCの分析に基づいて検出し、潜在的には訂正するのに使用されるエラー・チェック回路とすることができる。どちらの場合も、処理中のデータのサイズに関連付けられた関連サブ・キーが、エラー・プロテクション回路によって実行される計算において使用される。
複数のサブ・キーを含む形でキーを生成するために、キー生成アルゴリズムは、幾つかの方法で配置されてよい。但し、一実施例では、キー生成アルゴリズムを適用するステップが、サブ・キーのシーケンスを計算するステップであって、それにより、シーケンス内の第1のサブ・キーを除く各サブ・キーがシーケンス内の直前のサブ・キーを含み、残余部分がキー要件に準拠することを保証するように計算され、最後のサブ・キーが最大データ値サイズに対するエラー・プロテクション・コードを計算するのに用いられるキーを形成する、計算するステップを含む。
よって、サブ・キーのシーケンスは事実上、ネスト化されたシーケンスを形成し、このとき、サブ・キーの一部分が直前のサブ・キーによって形成される。
一実施例では、キー生成アルゴリズムを適用するステップが、複数のデータ・サイズをサイズの小さいものから順に処理するステップであって、それにより、計算された第1のサブ・キーが、前記複数のデータ・サイズの中の最小データ値サイズに対するサブ・キーとなる、処理するステップを含む。次いで、シーケンス内の各後続サブ・キーについて、シーケンス内の直前のサブ・キーを組み込み、関連付けられたデータ値サイズに即したサブ・キーの残余部分を判断し、キー要件に準拠するようにサブ・キーの残余部分についての値を計算することにより、当該サブ・キーが計算される。
一実施例では、サブ・キーの各々が、行と列に配置された値の行列を含む。そうした配置の1つでは、シーケンス内の各後続サブ・キーについて、直前のサブ・キーが、当該後続サブ・キーの列のサブセットを占め、サブ・キーの残余部分を計算するステップが、列のサブセット内の残りの列値を所定の値で満たすステップと、前記列のサブセットは計算せずに残りの列についての値を計算するステップとを含む。
生成中の現行サブ・キーにおける、直前のサブ・キーが位置する正確な場所は、実施例に応じて変化し得る。一実施例では、直前のサブ・キーは、その角の1つが生成中の現行サブ・キーの角と同じ場所に来るように位置決めされる。上述したように、直前のサブ・キーが占める列のサブセットについては、生成中の現行サブ・キー向けとなる列の当該サブセット内の残りの列値を、所定の値で満たすことができる(一実施例では、この所定の値は0値である)。したがって、このとき要求されるのは、直前のサブ・キーによって占められている列のサブセットを含まない、残りの列についての値を生成することのみである。これらの値は、選択されたエラー・プロテクション・スキームに適用可能な規則に即したキー生成アルゴリズムを用いて生成することができる。このキー生成アルゴリズムは、それらの列に当てはめることのできる値のシーケンスを記述させることが可能である。
一実施例では、前記列のサブセットは計算せずに残りの列についての値を計算する際、キー生成アルゴリズムが、列のサブセット内に既存のあらゆる値のシーケンスを除外する。多数のエラー・プロテクション・スキームに対して、特定のサブ・キー内のどの列も値の同一シーケンスを持たないことを保証する必要がある。
キー生成方法への入力として使用される複数のデータ値サイズは、幾つかの方法で指定することができる。ある実施例では一例として、複数のデータ・サイズが、例えば必要なデータ値サイズのリストとして、個別に指定される。しかし、別の実施例では、最小データ値サイズと最大データ値サイズを特定する範囲の入力によって、複数のデータ・サイズが判断されてもよい。その場合、実際のデータ値サイズは、その範囲から、様々な方法によって判断することができる(例えば、範囲内全ての整数値を組み込む、範囲内で必要なデータ値サイズを選択する際に所定の間隔を適用する、など)。
一実施例では、コンピュータ上での実行時に上で概説したキー生成方法を実行するコンピュータ・プログラムを含む、非一時的コンピュータ・プログラム製品を提供することができる。それにより、例えば汎用コンピュータが、指定された様々なデータ値サイズに対するサブ・キーの包括的セットを含むキーの生成に必要な必須ステップを、実行することが可能となる。或いは、入力されたデータ値サイズに基づいてキーを生成するための、専用装置が提供され得る。
上記技術で生成されたキーは、様々な状況において幅広く使用することができる。但し、このキーは、複数のエラー・プロテクション回路を有するデータ処理システムにおいて、多種多様なデータ値サイズのデータが処理される形で(したがって、幾つかのエラー・プロテクション回路が、他のエラー・プロテクション回路とは異なるデータ値サイズに対して演算を行う必要がある状態で)適用されると、特に有益なものとなり得る。
例えば、一実施例では、少なくとも、第1のデータ値サイズのデータ値を取り扱うための第1のエラー・プロテクション回路と、前記第1のデータ値サイズとは異なる第2のデータ値サイズのデータ値を取り扱うための第2のエラー・プロテクション回路とを含んだ複数のエラー・プロテクション回路を備える、データ処理システムを提供することができる。第1及び第2のエラー・プロテクション回路は、上述したコンピュータによって実施される方法に従って生成されたキーから、選択されたサブ・キーを利用する計算を実行するための計算回路機構を備えており、第1及び第2のエラー・プロテクション回路の各々に対し、当該エラー・プロテクション回路によって取り扱われる関連付けられたデータ値サイズに基づいて、サブ・キーが選択される。
こうしたデータ処理システムの設計時に、先に説明した方法によって生成されたキーを使用することで、データ処理システムに関連する設計及び検証コストの大幅な削減が可能となる。具体的には、様々なデータ値サイズに対して一意のキーが生成され、それらのキー全てが別個に文書化される必要があり、それに応じて関連付けられたエラー・プロテクション回路の設計が要求されるといった、公知の従来技術による手法の代わりに、先に説明した、キー生成のための本技術の機構を使用すると、キーが事実上、様々なデータ値サイズに関連付けられたサブ・キーの包括的セットを提供するため、当該の包括的キーを毎回参照することができ(関連サブ・キーはそこから抽出される)、データ処理システム内のエラー・プロテクション回路の提供に関連した設計及び検証コストが大幅に削減される。
一実施例では、様々なエラー・プロテクション回路の全てを、適切なサブ・キーに即して構成された計算回路機構を含む自己完結型とすることができる。よって、そのような配置では、先述した第1及び第2のエラー・プロテクション回路の各々における計算回路機構は、当該エラー・プロテクション回路に対する選択されたサブ・キーの全体を利用した機能を実装する。
但し、別の実施例では、様々なデータ値サイズを取り扱うエラー・プロテクション回路に関連付けられた、計算回路からの出力を再利用することにより、幾つかのエラー・プロテクション回路内で、計算回路機構のサイズ及び複雑性を低減することが可能である。具体的には、一実施例において、第1のエラー・プロテクション回路内の計算回路機構が、第1のエラー・プロテクション回路に対して選択されたサブ・キーの全体を利用する機能を実装し、第2のエラー・プロテクション回路内の計算回路機構が、第2のエラー・プロテクション回路に対して選択されたサブ・キーの判断された部分を利用する第1の機能と、第1のエラー・プロテクション回路内の計算回路機構によって実装される機能の出力を利用する第2の機能とを実装する。よって、この実施例では、第2のエラー・プロテクション回路内の計算回路機構は、当該エラー・プロテクション回路に対して選択されたサブ・キーの判断された部分を利用するだけでよく、第1のエラー・プロテクション回路内の計算回路機構からの出力を再利用することができる。
ある特定の例示的配置では、第1のデータ値サイズは第2のデータ値サイズよりも小さい。本明細書では、このような配置をアップスケーリングの実施例と呼ぶ。具体的には、この例の場合、第2のエラー・プロテクション回路は、第1のエラー・プロテクション回路によって処理されるデータ値サイズよりも大きいデータ値サイズに対して演算を行っているが、第2のエラー・プロテクション回路に必要な出力を計算するときには、第1のエラー・プロテクション回路からの出力を利用する。したがって、第2のエラー・プロテクション回路内の計算回路機構のサイズを低減することが可能となる。
別の実施例では、第1のデータ値サイズは第2のデータ値サイズよりも大きい。本明細書では、このような実施例をダウンスケーリングの実施例と呼ぶ。こうしたダウンスケーリングの実施例において、第1のエラー・プロテクション回路からの出力は、第2のエラー・プロテクション回路内の計算回路機構の複雑性を低減するためにも使用することができる。
したがって、これらのアップスケーリング及びダウンスケーリングの実施例を通じて、必要な計算回路機構全体のサイズを低減することができ、それにより、パフォーマンスとエネルギーの双方を節約することが可能となる。
先述の通り、エラー・プロテクション回路は、様々な形態を採り得る。一実施例では、第1及び第2のエラー・プロテクション回路が、選択されたサブ・キー及び入力されたデータ値を用いてエラー・プロテクション・コードを生成するためのエラー・プロテクション・コード生成回路となる。
特定の一実施例では、第2のエラー・プロテクション回路における第2の機能が、第1の機能からの出力と、第1のエラー・プロテクション回路における計算回路機構によって実装される機能の出力から導出されるデータとを、入力として使用する動作を適用するように配置される。
別の実施例では、第1及び第2のエラー・プロテクション回路が、選択されたサブ・キー、入力されたデータ値、及び関連付けられたエラー・プロテクション・コードを使用して、シンドローム情報を生成するために用いられるエラー・チェック回路となる。第1及び第2のエラー・プロテクション回路がエラー・チェック回路となる特定の一実施例では、これら第1及び第2のエラー・プロテクション回路が、当該エラー・プロテクション回路に対して選択されたサブ・キーの全体を利用する機能を実装する。
図面を参照しながら、特定の実施例について以下に説明する。
図1は、説明する実施例の技術を実装可能な、データ処理システム10のブロック図である。この例示的システムでは、処理回路15(例えば中央処理ユニット(CPU)となり得る)は、他の様々なコンポーネント25、35、45、55、及びオン・チップ・メモリ70と通信するように配置されている。これらのコンポーネント25、35、45、55は様々な形態を採り得るため、例えばメモリ・インタフェースやキャッシュ制御インタフェースなどとすることができる。図に示すように、様々なサイズのデータ値が、CPU15とこれら様々なコンポーネントとの間で転送されている。描画のために、通信の特定チャネルのみが示されており、とりわけコンポーネント25、35、及び45に関しては、CPU15からこれらのコンポーネントへとデータを転送する通信チャネルが示されている。コンポーネント25、35、45へと転送するデータに関連付けられるECCコードを生成するために、CPU内には、それぞれのコンポーネントに関連付けられたECCジェネレータ回路機構20、30、40が設けられている。また、これらのコンポーネントの各々は、データ及び関連付けられたECCの分析によって判断されたデータ内エラーを検出し、潜在的には訂正するために、関連付けられたECCチェック回路22、32、42を備えている。
更に、図示した実例では、コンポーネント55がCPU15へとデータを送信しており、それに応じて関連付けられたECCジェネレータ回路機構50がコンポーネント55内に設けられると共に、ECCチェック回路機構52がCPU15内に設けられるものと仮定する。
CPU15とメモリ70の間の通信に関しては、このメモリはエラー・コレクション・コードの生成やチェックを一切行わず、ただ提供されたデータ及び関連付けられたECCを自身の中に記憶して、これらのデータが後に取得される場合にエラー・チェックが実行可能となるようにするだけのものと仮定する。よって、この実施例では、バス・インタフェース65を介してメモリ70と通信するために、結合型のECCジェネレータ及びチェック回路機構60が設けられてよい。データ値がメモリに書き込まれると、このデータ値と関連付けてメモリに記憶するための関連ECCデータが生成されることになる。その後、このデータ値が取得されるときには、CPU内のチェック回路機構が、データ値及び関連付けられたECCの分析に基づいてデータ内のエラーを検出する。
十分理解されたように、幾つかの異なるエラー・プロテクション・スキームが存在し、特定のデータ値サイズに必要なECCデータのサイズは、このエラー・プロテクション・スキームに応じて変化することになる。例えば、エラー・プロテクション・スキームの一種としてSEDDED(Single Error Detect,Double Error Detect:1ビット・エラー検出、2ビット・エラー検出)スキームがあり、別のエラー・プロテクション・スキームとしてはSECDED(Single Error Correct,Double Error Detect:1ビット・エラー訂正、2ビット・エラー検出)スキームが知られている。どのサイズのデータ値に対しても、SECDEDスキームは、SEDDEDスキームよりも多くのECCビットを必要とするのが普通である。図1に描かれた実例では、示されている例示的ECCサイズは、SECDEDスキームについてのものである。よって、CPU15からコンポーネント25へと受け渡される8ビットのデータ値には5ビットのECCが付随し、CPU15からコンポーネント35へと転送される32ビットのデータ値には7ビットのECCが付随し、CPU15からコンポーネント45へと受け渡される16ビットのデータ値には6ビットのECCが付随し、コンポーネント55からCPU15へと転送される64ビットのデータ値には8ビットのECCが付随する。
エラー・コレクション・コードEを、入力されたデータ値Dから生成する場合、計算は当該データ値に対して適切なサイズのキーを使用して行われる。キーはマスクとしても説明することができ、図2は例示的マスクMを示している。このマスクは、行と列に配列された値の行列を形成するものとみなすことができる。図2に示すように、マスク90は、行数がエラー・コードE内のECCビット数と等しくなり、列数がECCによって保護されるデータ値D内のビット数と等しくなるように構成される。よって、先の例である、5ビットのECCによって保護される8ビットのデータ値で考えると、マスクMは5行8列であって、マスク内の各行列領域に設けられる論理1値又は論理0値を備えたものとなる。
通常、ECCの生成は、スキームが施す保護の種類にかかわらず同様の方法で行われるものであり、以下の式で表すことができる。
E=M*D
上式のアスタリスク記号は、ECCの各ビットが、行列の対応行とベクトルDとのビット単位ANDのXOR圧縮値に等しくなるような、行列MとベクトルDのベクトル積を表している。
マスクの実際の形は、選択されたエラー・プロテクション・スキームに応じたものとなり、具体的にはアルゴリズムを使用して、選択されたエラー・プロテクション・スキームに即したマスク内の列ごとに適切な値を選択することができる。知られている先行技術のシステムでは、通常、特定サイズのデータ値向けにマスクが必要とされるたびに、そのマスクはこのようなアルゴリズムの適用に基づいて一意に生成される。したがって、選択されたエラー・プロテクション・スキームに関して、ある特定のデータ値サイズ向けに生成されたマスクは、別のデータ値サイズ向けに生成されたマスクとは相関性を持たないものとなる。こうしたことは、1つのデータ処理システム内に複数のエラー・プロテクション回路を組み込む際、大幅な設計及び検証コストの増加を招きかねない。この場合では、これらのエラー・プロテクション回路は、図1を参照しながら先に論じたシステムの実例と同様、様々なサイズのデータを処理している。
しかし、一実施例の技術によれば、サブ・マスクのシーケンスを自身の中に組み込む包括的マスクを生成する方法が提供され、このとき、各サブ・マスクは入力された特定のデータ値サイズと関連付けられていると共に、各々が独自にエラー・プロテクション・スキームのマスク要件に準拠するものとなっている。図3を参照しながら、この処理を更に説明する。
ステップ100では、保護すべき所望のデータ幅が入力される。これらのデータ幅は、個別に指定することも、その所望データ幅を定める範囲を参照して指定することもできる。図3に示すように、これらのデータ幅はdw_1、dw_2、…dw_maxとラベル付けされる。
ステップ105では、保護のタイプが特定される。この保護タイプは、各データ幅に必要なECCビット数や、マスクの様々な列を配置するのに用いるアルゴリズムなどと関連を持つことになる。
ステップ110では、ステップ105で入力された保護タイプに即した所望データ幅の各々に対して、対応するエラー・コード幅ew_1、ew_2、…ew_maxが決定される。その後、パラメータdw及びewは、ステップ115でそれぞれdw_1及びew_1に設定される。
ステップ120では、ew行dw列のサブ・マスクを生成するために、特定の保護タイプに適用可能なコラム・ジェネレータ・アルゴリズムが適用される。この処理に、先行するサブ・マスク向けに計算された列についての計算は含まれない。初回の反復の間には先行するサブ・マスクが存在しないため、コラム・ジェネレータ・アルゴリズムは各列を生成する。
ステップ125では、ステップ100で入力された全てのデータ幅が考慮されているかどうかが判断される。考慮されているのであれば、この処理は完了となってステップ140へと分岐し、そこで最後のサブ・マスクが最終マスクMMAX,Pとなる。但し、少なくとも初回の反復ではこのようにはならず、処理はステップ130へと進み、そこでdw及びewは次の所望データ幅のために更新される。その後、ステップ135では、既存の列内の追加された行に論理0値を加えることにより、これらの列をewビット長く拡張する。そして、処理はステップ120へと戻る。
この処理の結果、複数のサブ・マスクを含むような包括的マスクMMAX,Pが生成される。各サブ・マスクは特定の入力データ幅と関連付けられており、且つエラー・プロテクション・スキームのマスク要件に準拠している(つまり、そのサブ・マスクを個別に使用することが可能となる)。このことは、図4に概略的に示されている。この図では、最大の入力データ幅に関連付けられた最大サイズのマスクMMAXはサブ・マスク150によって構成されており、このサブ・マスクは最後に生成されたサブ・マスクである。但し、このマスクを生成する処理は、指定された最小データ幅に対するマスク160の生成を以て開始され、その後、指定された他の各データ幅に関連付けられた、後続のサブ・マスク170、180などの各々について、反復的に繰り返される。複数のデータ・サイズ幅は、サイズが小さいものから順に処理される。
図4に示す実例では、指定される最小のデータ幅が4ビット、指定される2番目のデータ幅が8ビット、その後も更なるデータ・サイズが幾つか指定されるものと仮定する。先に述べたように、各サブ・マスク内の行数は、使用するプロテクション・スキームのタイプに依存するが、上述のSECDEDスキームの場合は、4というデータ幅サイズのために4行が、また8というデータ幅サイズのために5行が必要となる。このことは、マスク160、170が概略的に示している。初回の反復でコラム・ジェネレータ・アルゴリズムは、サブ・マスク160内に示す4列の値を生成する。その後、次のサブ・マスク170を指定するために、元のdw及びew値である4と4は、8と5に更新される。この実例では、サブ・マスク160がサブ・マスク170の左上部分を占め、サブ・マスク160を含む全ての列が、論理0値によって拡張されている。この拡張は、図3のステップ135で実行されたものである。ステップ120の次回反復の間、サブ・マスク170内に示す5つの値を持つ追加の4列が、選択されたエラー・プロテクション・スキームの規則に即して計算される。次のサブ・マスク180について考えると、図4に概略的に示すように、サブ・マスク170に関連付けられた8列全てが、サブ・マスク180内で追加された行のための論理0値で再度拡張され、そしてサブ・マスクの残部が計算される。この処理は、指定された最大データ幅サイズに関連付けられた最終サブ・マスク150が計算されるまで続き、この計算が行われた時点で、当該サブ・マスクが最終マスクMMAX,Pとなる。
図5は、SECDEDスキームとSEDDEDスキームの両方について、異なる様々なデータ幅dwに対するECC幅ewを示す表である。表190から見て取れるように、ある特定のデータ幅に対するECCビット数は、SEDDEDスキームに比べ、SECDEDスキームを用いたときの方が多くなる。これは、エラーをただ検出するだけではなく、訂正まですることを可能にするのに必要な追加情報に起因する。
関連サブ・マスクを生成する必要のある多様な指定データ・サイズは、任意の形を採ることができる。図5の実例では、殆どの値が先行する値の2倍となっているが、こうである必要はなく、実際、例のうちの1つはデータ幅が47であり、先行する指定データ幅とは特定の関連性を持たないことが見て取れよう。
これまでの図面を参照しながら論じた方法で、サブ・マスクのセットを含む包括的マスクを生成した場合、この包括的マスクを使用することにより(具体的には、この包括的マスク内の関連サブ・マスクを使用することにより)、エラー・プロテクション回路を個別に設計することが可能となる。この処理を、図6において概略的に示す。ステップ200では、最大サイズのマスクMMAX,Pが入力される。これは、選択された保護タイプpに適用可能なマスクである。ステップ205では、エラー・プロテクション回路が取り扱う所望データ幅dw_xが入力され、続くステップ210では、関連サブ・マスクが入力されたマスクから抽出される。この関連サブ・マスクは、指定されたデータ幅dw_xに適用可能なサブ・マスクである。その後、ステップ215では、選択されたサブ・マスクを使用して、エラー・プロテクション回路が構成される。
エラー・プロテクション回路は多様な形態を採ることができるため、例えば、選択されたサブ・マスクMを用いて、対応する入力データDからECCコードEを生成するのに使用される、ECCジェネレータ回路の形を採ることもできる。具体的には、先に論じたように、ECCジェネレータ回路は、以下の計算を実行するように配置される。
=MX,P*D
上式のアスタリスクは、行列MとベクトルDのベクトル積(即ち、先に定義されたベクトル積)を表す。
しかし、別の実施例では、エラー・プロテクション回路は、ECCチェック回路の形を採ることもできる。このECCチェック回路は、データ値にエラーが存在するかどうかを、そのデータ値及びそれに関連付けられたECCの分析に基づいて判断し、潜在的にはその後、検出したエラーを、エラー・プロテクション・スキーム(即ち、保護タイプP)に応じて訂正するために使用される。具体的に述べると、このような実施例では、ECCチェック回路は、以下の計算を実行することによってシンドローム情報Sを生成するように配置される。
=(MX,P,I)*{D,E
上式において、Iは単位行列

である。
見て取れるように、この単位行列は斜め方向に論理1値を含んでおり、それ以外の値は全て0に設定されている。計算値MX,P,Iは、マスクMと単位行列Iとで形成された2つの行列の水平結合である。上式のアスタリスクは、得られた行列と、DとEを結合することによって与えられたベクトルとの、ベクトル積を表す。
十分理解されたように、一度シンドローム・データが生成されると、どういったエラーが発生しているのかを把握するのにシンドローム情報を使用することが可能となり、潜在的にはこの情報が、使用されるエラー・プロテクション・スキームに応じたエラー訂正のために用いられる。
ステップ200、205、210、及び215で概説した処理は、データ処理システム内で要求されるエラー・プロテクション回路ごとに、必要なだけ繰り返すことができる。全てのエラー・プロテクション回路が、入力マスク内のサブ・マスクのうちの1つと関連付けられたサイズのデータ値に対して演算を行う場合、同一の包括的入力マスクを全ての段階において使用することができるため、設計及び検証コストが大幅に削減される。要求されたエラー・プロテクション回路の各々に対してステップ200から215を繰り返す処理は、図6では点線の囲い220によって、概略的に示されている。
要求されたエラー・プロテクション回路が全て設計されると、点線の囲い225が示すように、様々なエラー・プロテクション回路を組み込むことにより、統合回路を製造することができる。統合回路の製造は、ステップ200から220の処理を用いて生成された様々なエラー・プロテクション回路の設計を統合回路の全体設計に組み込んだ後に統合回路を製造するといった統合回路の設計機能を有する完全に独立したエンティティによって、完全に独立した処理として実行可能であるということが理解されよう。それどころか、様々なエンティティが、統合回路の設計と、それに続く当該設計による統合回路の製造とを担い得るということも理解されよう。
図7は、あるサブ・マスクMX+1,Pと、その先行サブ・マスクMX,Pとの関係を概略的に示している。この実例では、dw_xはマスクMX,Pに関連付けられたデータ幅であり、dw_x+1は次のサブ・マスクMX+1,Pに関連付けられたデータ幅であると仮定する。これら2つのデータ幅の差異は、図7においてaw_x+1として示されている。
先に図3で論じたことから想起されるように、一度マスクMX,P 255が生成されると、その後、マスク255を組み込み、マスク255が組み込まれた全ての列を、その残りの行265に論理0値を追加することによって拡張し、そして残りの列については適切な列値を計算することによって、マスクMX+1,P 250が生成される。残りの列について得られた行列は、図7ではAMX+1,P 260と表す。
ECC生成回路機構の設計を実例として参照し、図8及び図9を参照しながら以下に説明するように、ECCコードEX+1(つまり、データ幅dw_x+1のデータ値DX+1に関連付けられたECC)を生成するのに使用される、ECC生成回路機構を設計する場合、ECCジェネレータによって提供されるECCコードEを利用することが可能となる(ECCジェネレータは、データ幅dw_xのデータ値Dから、この値を計算するのに使用される)。
具体的には、図8に示すように、ステップ300でECCコードEを入力することができ、その後、ステップ305で包括的マスクMMAX,Pを入力することができる。
ステップ310では、追加された列に関連付けられたサブ・マスクMX+1,Pの関連部分(即ち、図7に示すAMX+1,P 260の部分)を、入力されたマスクから抽出することができる。その後、ステップ315では、内部値Qを生成するために、回路機構を以下の計算を実行するように構成することができる。
AMX+1,P*ADX+1
やはり上式のアスタリスクは、マスクの特定された部分と、関連データ・ビット(この場合ではデータ・ビットADX+1、つまりデータ値Dをデータ値DX+1へと変換する追加のデータ・ビット)を表すベクトルとのベクトル積を表すものである。
ステップ320では、回路機構は次いで、Qと、幅が拡張されたECC EとのXORを、ECC EX+1として計算するように構成される。
図9を参照しながら、これについて更に記述する。具体的には、コンポーネント350が、入力データDに対するECC Eを生成するために必要なECC計算を実行する。この計算は、関連サブ・マスクMX,Pを用いた標準的方法で行われる。
そして、関連付けられた入力データDX+1からECC EX+1を生成するために、ECC生成回路機構355が更に設けられる。一実施例では、このようなECC生成回路機構は、関連マスクMX+1,Pの全体を使用することでコンポーネント350とほぼ同様に構成することができる一方、図9に示す配置を用いると、コンポーネント350によって既に生成されているECC Eを利用して、ECC生成回路機構のサイズ及び複雑性を低減することが可能となる。具体的には、追加データ部分ADX+1が入力データDX+1から抽出され、パス362を介してQ計算回路機構360へと入力される。これにより、図8のステップ315を参照して先に論じた計算が、関連マスク部分AMX+1,P及びパス362経由の入力データを用いて実行される。
回路機構370は、パス364を介して入力されたECC Eの幅拡張を行う。これは、連続する論理0値を付加して、Eの幅がEX+1の幅と同一になるように拡張することによってなされる。そして、ECC EX+1をパス380経由の出力として生成するために、コンポーネント375は、Q及び幅拡張回路370からの出力を用いたXOR演算を実行する。
ブロック360によって実行される計算は、図7に示したマスクのサブ・セクション260に関して実行されるだけでよいという事実から、ECC生成回路機構のサイズ及び複雑性の大幅な低減が可能となる。
図9に示した全てのコンポーネントは、データ処理システムの同一コンポーネント内に設けることができる一方、別の実施例では、ECC生成回路機構355を備えるコンポーネントとは完全に独立したコンポーネント内に、ECC計算回路機構350を存在させることもできる。例えば、図1の具体的な実例について考えると、8ビットのデータ値に対するエラー・コレクション・コードEを生成するために、ECCジェネレータ回路機構20がコンポーネント350を備えてよく、また得られたECC Eが、入力としてECCジェネレータ回路機構40に提供されてもよい。このECCジェネレータ回路機構40は、16ビットのデータ値に対するECC EX+1を生成するために、ブロック355が示す機能を組み込んでいる。
図8及び図9を参照しながら上で説明した処理を、本出願では、アップスケーリング配置と呼ぶものとする。
別の実施例では、ダウンスケーリングの実施例をサポートすることができ、その場合、データ値DX+1に対して生成されたECC EX+1が、サイズが縮小されたデータ値Dに対するECC Eの生成を支援するためにも使用される。そのような実施例の1つが、図10に示されている。
図10に示すように、関連付けられたデータ値DX+1に対するECC EX+1を、図7に示した関連サブ・マスクMX+1,Pを用いて計算するために、ECC計算回路機構450が設けられる。そして、データ値Dに関連付けられたECC Eを計算するために、ECC生成回路機構455が更に設けられる。ここでもDとDX+1は、図7及び図8の上部に示した関係性にある。追加のデータ・セクションADX+1が抽出され、パス462を介してQ計算回路機構460へと入力される。Q計算回路機構460も、図9のQ計算回路機構360について論じたのと同じ方法で演算を行う。
回路機構470は、Q計算回路機構460からの出力Q、及び回路機構450からパス464経由で入力されたECC EX+1に対してXOR演算を行うことにより、内部値Rを生成する。図10に示す幅縮小回路480を使用して、RからECC Eを求めることができる。幅縮小回路480は、値Rから、必要な最下位ビット数を抽出する。このとき、抽出されたビット数は、ECC Eの幅に等しい。Eについて得られた値は、次いでパス482を介して出力される。
図11Aから図11Cは、様々なサブ・マスクを配置する別法を示しているが、上述したアップスケーリング及びダウンスケーリングの実施例を実行することは依然可能である。図11Aを図7と比較すると、マスクMX,P 405は、図7で示したような次のサブ・マスクMX+1,Pの左上ではなく、その左下に位置していることがわかる。参照記号415が示すように、サブ・マスクMX,Pを含む列の残りの行に対して、ここでも論理0値が加えられている。更に、追加の行列セクションAMX+1,P 410も与えられていることが見て取れる。これは図7のセクション260に相当する。図8及び図9のアップスケーリング処理が、先に説明した通りに続けて適用されてよい。但し、幅拡張回路370の演算は、付加される論理0値が、図7の実例のように拡張されたECC Eの最下位ビット位置ではなく、(図11Aの式が示すように)その最上位ビット位置を形成するという点において僅かに異なる。同様に、図10のダウンスケーリングの実施例を採用する場合、幅縮小回路480の演算は、図11Aに記載の式が示すように、Rの最下位ビット数ではなく、最上位ビット数が、Eを形成するために選択されるという点において僅かに異なる。
図11Bは、考えられる別のサブ・マスク配置を示している。ここでは、サブ・マスク425は、次のサブ・マスクMX+1,Pの右上隅に位置している。先と同じく、サブ・マスク425に含まれる列を拡張するために論理0値435が使用されており、追加のマスク・セクションAMX+1,P 430が標準的方法で作成されている。アップスケーリングする場合の幅拡張回路370の演算、及びダウンスケーリングする場合の幅縮小回路480の演算は、図11Bに記載の式が示している。
図11Cは、図11Bに示したものとは別のサブ・マスク配置を示しており、これもまた、上述したアップスケーリング及びダウンスケーリングの実施例を容易なものとすることができる。ここでは、サブ・マスクMX,P 905は次のサブ・マスクMX+1,P 900の右下に位置し、論理0値915がサブ・マスク905に関連付けられた列を拡張するために加えられ、そして追加のマスク・セクションAMX+1,P 910(図11Bに示したセクション430に相当)が計算される。アップスケーリングする場合の幅拡張回路370の演算、及びダウンスケーリングする場合の幅縮小回路480の演算は、図11Cに記載の式が示している。
上述したアップスケーリング及びダウンスケーリングの実施例により、エネルギー及び/又はエリアを大幅に節約することができ、またパフォーマンスも向上する。
原則的に、アップスケーリング及びダウンスケーリング配置もまた、受信したデータ及びECC情報からシンドローム情報を生成するのに使用される、ECCチェック回路に関連した幾つかの実施例において利用することが可能である。しかし、一実施例では、そうした技術をECCチェック回路に用いず、その代わり、図6を参照しながら先に論じた手法を使用して(具体的には、包括的マスクから抽出された関連サブ・マスク全体を利用して)、各ECCチェック回路が生成される。
図12は、上記の技術(具体的には、入力されたデータ値に対するエラー・プロテクション・コードを計算する際に用いる、連続したサブ・キーを含むキーの生成)を実装するのに使用可能なタイプである、汎用コンピュータ1000を概略的に示している。この汎用コンピュータ1000は、中央処理ユニット1002、ランダム・アクセス・メモリ1004、リード・オンリ・メモリ1006、ネットワーク・インタフェース・カード1008、ハード・ディスク・ドライブ1010、ディスプレイ・ドライバ1012及びモニタ1014、並びにキーボード1018及びマウス1020を伴うユーザ入出力回路1016を備え、これら全てが共通バス1022を介して接続されている。動作中、中央処理ユニット1002は、コンピュータ・プログラム命令を実行することになる。このコンピュータ・プログラム命令は、ランダム・アクセス・メモリ1004、リード・オンリ・メモリ1006、及びハード・ディスク・ドライブ1010のうちの1つ以上に記憶したり、ネットワーク・インタフェース・カード1008を介して、動的にダウンロードすることができる。実行された処理の結果は、ディスプレイ・ドライバ1012やモニタ1014により、ユーザに向けて表示することができる。汎用コンピュータ1000の動作を制御するためのユーザ入力は、キーボード1018又はマウス1020から、ユーザ入出力回路1016を介して受信することができる。コンピュータ・プログラムは、様々な異なるコンピュータ言語で記述され得ることが理解されよう。コンピュータ・プログラムは、記録媒体に記憶及び配布されても、汎用コンピュータ1000に動的にダウンロードされてもよい。適切なコンピュータ・プログラムの制御下で動作する場合、汎用コンピュータ1000は、上で説明したキー生成技術を実行することが可能であり、また上記技術を実行するための装置を形成するものとみなすことができる。この汎用コンピュータの構成は大幅に変わり得るものであって、図12は、単なる一例にすぎない。
上記の実施例から、このような実施例は、サブ・マスクのセットを含む包括的マスクを生成するための機構を提供するものであることが見て取れよう。こうした実施例では、各サブ・マスクが特定のデータ幅に関連付けられ、また各サブ・マスク自体が、選択されたエラー・プロテクション・スキームのマスク要件を満たす。こうしたことにより、データ処理システム内で使用するためのエラー・プロテクション回路を生成する場合、それらの回路がECC生成回路かエラー・チェック回路かを問わず、多種多様な幅を持つデータ値を処理することをデータ処理システムが要求され、したがって多種多様なデータ幅サイズを取り扱うことを、これらのエラー・プロテクション回路が要求されるような状況において特に、著しい利益が提供される。上述のアップスケーリング及びダウンスケーリングの実施例を利用して、エラー・プロテクション回路内に設けられた幾つかのコンポーネントの複雑性を一層低減することにより、幾つかの実施例では、更なるパフォーマンス及び効率性の増進が達成可能である。
本出願における「構成される」という言葉は、定義された動作を実行可能な構成を装置の要素が持つ、ということを意味するために使用される。この文脈では、「構成」とは、ハードウェア又はソフトウェアの相互接続に関する配置又は方法を意味している。例えば、定義された動作を実現する専用ハードウェアを装置が備えてもよく、或いは機能を実行するようにプロセッサ又は他の処理デバイスがプログラムされてもよい。「構成される」とは、定義された動作を実現するためには、装置の要素が何らかの方法で変更される必要がある、ということを暗示するものではない。
添付図面を参照しながら、本発明の例示的実施例を本明細書に詳述したが、本発明はそれら通りの実施例に限定されるものではなく、添付の特許請求の範囲によって定義される本発明の範囲及び趣旨から逸脱することなしに、当業者による様々な変更、追加、及び修正が、その実施例の中で有効となり得るということを理解されたい。例えば、本発明の範囲から逸脱することなく、従属請求項が持つ特徴の多様な組合せが、独立請求項が持つ特徴を伴って形成され得る。

Claims (18)

  1. エラー・プロテクション・スキームに応じた、入力されたデータ値に対するエラー・プロテクション・コードを計算するのに用いるキーを生成するコンピュータで実装された方法であって、
    複数のデータ値サイズを入力するステップと、
    前記複数のデータ値サイズの中の最大データ値サイズに対する前記エラー・プロテクション・コードを計算するのに用いるキーを生成するために、キー生成アルゴリズムを適用するステップであって、前記キー生成アルゴリズムが、複数のサブ・キーを含むように前記キーを生成し、各サブ・キーが、前記入力されたデータ値サイズのうちの1つと関連付けられ、前記エラー・プロテクション・スキームのキー要件に準拠する、適用するステップと
    を含み、
    前記キー生成アルゴリズムを適用する前記ステップが、
    サブ・キーのシーケンスを計算するステップであって、それにより、前記シーケンス内の第1のサブ・キーを除く各サブ・キーが、前記シーケンス内の直前のサブ・キーを含み、残余部分が、前記キー要件に準拠することを保証するように計算され、最後のサブ・キーが、前記最大データ値サイズに対する前記エラー・プロテクション・コードを計算するのに用いられる前記キーを形成する、計算するステップ
    を含む、コンピュータで実装された方法。
  2. 前記エラー・プロテクション・スキームに準拠するエラー・プロテクション回路機構を生成するのに用いる前記キーを出力するステップを更に含む、請求項1に記載のコンピュータで実装された方法。
  3. 前記キー生成アルゴリズムを適用する前記ステップが、
    前記複数のデータサイズをサイズの小さいものから順に処理するステップであって、それにより、計算された前記第1のサブ・キーが、前記複数のデータサイズの中の最小データ値サイズに対するサブ・キーとなる、処理するステップと、
    前記シーケンス内の各後続サブ・キーについて、前記シーケンス内の前記直前のサブ・キーを組み込み、前記関連付けられたデータ値サイズに即した前記サブ・キーの前記残余部分を判断し、前記キー要件に準拠するように前記サブ・キーの前記残余部分についての値を計算することにより、当該サブ・キーを計算するステップと
    を含む、請求項1又は2に記載のコンピュータで実装された方法。
  4. 前記サブ・キーの各々が、行と列に配置された値の行列を含み、前記シーケンス内の各後続サブ・キーについて、前記直前のサブ・キーが、当該後続サブ・キーの前記列のサブセットを占め、前記サブ・キーの前記残余部分を計算する前記ステップが、前記列のサブセット内の残りの列値を所定の値で満たすステップと、前記列の前記サブセットは計算せずに残りの列についての値を計算するステップとを含む、請求項3に記載のコンピュータで実装された方法。
  5. 前記所定の値が0値である、請求項4に記載のコンピュータで実装された方法。
  6. 前記列の前記サブセットは計算せずに前記残りの列についての前記値を計算する際、前記キー生成アルゴリズムが、前記列の前記サブセット内に既存のあらゆる値のシーケンスを除外する、請求項4又は5に記載のコンピュータで実装された方法。
  7. 前記複数のデータサイズが個別に指定される、請求項1から6のいずれかに記載のコンピュータで実装された方法。
  8. 前記複数のデータサイズが、最小データサイズと最大データサイズを特定する範囲の入力によって判断される、請求項1から6のいずれかに記載のコンピュータで実装された方法。
  9. コンピュータ上で実行されると、請求項1から8のいずれかに記載した通り、エラー・プロテクション・スキームに応じた、入力されたデータ値に対するエラー・プロテクション・コードを計算するのに用いるキーを生成する方法を実行するコンピュータ・プログラムを記録した、非一時的コンピュータ・プログラム記録媒体
  10. 少なくとも、第1のデータ値サイズのデータ値を取り扱うための第1のエラー・プロテクション回路と、前記第1のデータ値サイズとは異なる第2のデータ値サイズのデータ値を取り扱うための第2のエラー・プロテクション回路とを含む、複数のエラー・プロテクション回路を備えるデータ処理システムであって、
    前記第1及び第2のエラー・プロテクション回路が、請求項1のコンピュータで実装された方法に従って生成されたキーから選択されたサブ・キーを利用する計算を実行するための計算回路機構を備え、前記第1及び第2のエラー・プロテクション回路の各々に対して、前記サブ・キーが、当該エラー・プロテクション回路によって取り扱われる前記関連付けられたデータ値サイズに基づいて選択される、データ処理システム。
  11. 前記第1及び第2のエラー・プロテクション回路の各々における前記計算回路機構が、当該エラー・プロテクション回路に対する前記選択されたサブ・キーの全体を利用した機能を実装する、請求項10に記載のデータ処理システム。
  12. 前記第1のエラー・プロテクション回路における前記計算回路機構が、前記第1のエラー・プロテクション回路に対する前記選択されたサブ・キーの全体を利用した機能を実装し、
    前記第2のエラー・プロテクション回路における前記計算回路機構が、前記第2のエラー・プロテクション回路に対する前記選択されたサブ・キーの判断された部分を利用する第1の機能と、前記第1のエラー・プロテクション回路における前記計算回路機構によって実装される前記機能の出力を利用する第2の機能とを実装する、請求項10に記載のデータ処理システム。
  13. 前記第1のデータ値サイズが、前記第2のデータ値サイズよりも小さい、請求項12に記載のデータ処理システム。
  14. 前記第1のデータ値サイズが、前記第2のデータ値サイズよりも大きい、請求項12に記載のデータ処理システム。
  15. 前記第1及び第2のエラー・プロテクション回路が、前記選択されたサブ・キー及び入力されたデータ値を用いてエラー・プロテクション・コードを生成するためのエラー・プロテクション・コード生成回路である、請求項10から14のいずれかに記載のデータ処理システム。
  16. 前記第2のエラー・プロテクション回路における前記第2の機能が、前記第1の機能からの出力と、前記第1のエラー・プロテクション回路における計算回路機構によって実装される前記機能の前記出力から導出されるデータとを、入力として使用する動作を適用するように配置される、請求項12に従属する場合の請求項15に記載のデータ処理システム。
  17. 前記第1及び第2のエラー・プロテクション回路が、前記選択されたサブ・キー、入力されたデータ値、及び関連付けられたエラー・プロテクション・コードを使用して、シンドローム情報を生成するために用いられるエラー・チェック回路である、請求項10から14のいずれかに記載のデータ処理システム。
  18. 少なくとも、第1のデータ値サイズのデータ値を取り扱うための第1のエラー・プロテクション手段と、前記第1のデータ値サイズとは異なる第2のデータ値サイズのデータ値を取り扱うための第2のエラー・プロテクション手段とを含む、複数のエラー・プロテクション手段を備えるデータ処理システムであって、
    前記第1及び第2のエラー・プロテクション手段が、請求項1のコンピュータで実装された方法に従って生成されたキーから選択されたサブ・キーを利用する計算を実行するための計算手段を備え、前記第1及び第2のエラー・プロテクション手段の各々に対して、前記サブ・キーが、当該エラー・プロテクション手段によって取り扱われる前記関連付けられたデータ値サイズに基づいて選択される、データ処理システム。
JP2016084992A 2015-04-29 2016-04-21 エラー・プロテクション・キー生成方法及びシステム Active JP6756514B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1507317.4A GB2537876A (en) 2015-04-29 2015-04-29 Error protection key generation method and system
GB1507317.4 2015-04-29

Publications (2)

Publication Number Publication Date
JP2016212851A JP2016212851A (ja) 2016-12-15
JP6756514B2 true JP6756514B2 (ja) 2020-09-16

Family

ID=53488865

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016084992A Active JP6756514B2 (ja) 2015-04-29 2016-04-21 エラー・プロテクション・キー生成方法及びシステム

Country Status (6)

Country Link
US (1) US11360850B2 (ja)
EP (1) EP3096228B1 (ja)
JP (1) JP6756514B2 (ja)
KR (1) KR102586256B1 (ja)
CN (1) CN106100827B (ja)
GB (1) GB2537876A (ja)

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5146461A (en) * 1989-11-13 1992-09-08 Solbourne Computer, Inc. Memory error correction system distributed on a high performance multiprocessor bus and method therefor
TW323029U (en) * 1993-06-30 1997-12-11 Victor Company Of Japan Co Ltd Processing system for digital video signal
TW574660B (en) * 2002-05-16 2004-02-01 Ind Tech Res Inst Method targeting at range search and for information search complying with specified rule
US7702986B2 (en) * 2002-11-18 2010-04-20 Qualcomm Incorporated Rate-compatible LDPC codes
US8374284B2 (en) * 2004-02-12 2013-02-12 Apple, Inc. Universal decoder
US20060130154A1 (en) * 2004-11-30 2006-06-15 Wai Lam Method and system for protecting and verifying stored data
KR100833515B1 (ko) * 2006-12-05 2008-05-29 한국전자통신연구원 가변 정보 길이 및 가변 부호율을 가진 ldpc 부호의패리티 검사 행렬 생성 방법, 부/복호화 방법 및 이를이용하는 장치
KR101366284B1 (ko) 2007-11-13 2014-02-20 엘지전자 주식회사 골레이 부호를 이용한 블록 부호 생성 방법, 데이터 부호화방법 및 데이터 부호화 장치
KR20090117580A (ko) * 2008-05-08 2009-11-12 엘지전자 주식회사 부호어의 생성 방법
WO2011142133A1 (ja) * 2010-05-11 2011-11-17 エイシップ・ソリューションズ株式会社 誤り訂正符号処理方法及びその装置
US8908564B2 (en) * 2010-06-28 2014-12-09 Avaya Inc. Method for Media Access Control address learning and learning rate suppression
JP2012123880A (ja) * 2010-12-10 2012-06-28 Toshiba Corp 半導体記憶装置
CN102255729B (zh) 2011-07-07 2013-07-10 武汉理工大学 一种基于媒介数字证书的ibe数据加密系统
KR101837099B1 (ko) * 2012-07-05 2018-03-09 에스케이하이닉스 주식회사 가변 구조의 에러 정정 부호화기
KR101922205B1 (ko) * 2012-09-07 2018-11-26 에스케이 텔레콤주식회사 Lt 부호를 이용한 행렬 생성 방법과 그를 위한 부/복호화 장치
CN103646219B (zh) 2013-11-29 2016-03-30 东南大学 基于神经网络功耗预测的功耗补偿抗攻击电路及控制方法
CN103997402B (zh) 2014-05-30 2017-06-23 中国科学院深圳先进技术研究院 一种加密芯片安全性能测试方法和装置

Also Published As

Publication number Publication date
GB2537876A (en) 2016-11-02
KR102586256B1 (ko) 2023-10-10
KR20160128910A (ko) 2016-11-08
US20160321137A1 (en) 2016-11-03
EP3096228B1 (en) 2020-03-11
EP3096228A1 (en) 2016-11-23
US11360850B2 (en) 2022-06-14
CN106100827A (zh) 2016-11-09
CN106100827B (zh) 2021-01-12
JP2016212851A (ja) 2016-12-15
GB201507317D0 (en) 2015-06-10

Similar Documents

Publication Publication Date Title
JP6058245B2 (ja) 乱数拡大装置、乱数拡大方法及び乱数拡大プログラム
JP4935367B2 (ja) Raid装置及びガロア体の積演算処理方法
EP1729423A1 (en) Decoder and decoding method for decoding irregular low-density parity-check codes
JP2018197906A (ja) 情報処理装置、マルチスレッド行列演算方法、およびマルチスレッド行列演算プログラム
EP3185462B1 (en) Linear transformation method (variants)
US8732227B2 (en) Method and processor unit for implementing a characteristic-2-multiplication
JP4793741B2 (ja) 誤り訂正回路、誤り訂正方法
JP6756514B2 (ja) エラー・プロテクション・キー生成方法及びシステム
JP2011109476A (ja) エラー検出・訂正符号生成回路及びその制御方法
CN115694819A (zh) 一种数据处理方法、系统、设备及计算机可读存储介质
WO2017065628A1 (en) Optimizer for determining an optimal sequence of operations for matrix-vector multiplication
US10067821B2 (en) Apparatus and method for cyclic redundancy check
US6848094B2 (en) Netlist redundancy detection and global simplification
US8312363B2 (en) Residue generation
JP2007257628A (ja) 記憶された情報データの読み取りのための誤り訂正と誤り検出の方法およびそのための記憶制御ユニット
JP2010199811A (ja) 制御装置のメモリシステム
US9843442B2 (en) Operation method and apparatus for providing compression function for fast message hashing
US20240171401A1 (en) Method for calculating using an one-way function effienct in a zero knowledge proof, and apparatus implementing the same method
TWI777659B (zh) 不定長度錯誤更正碼的設計方法、內儲程式之電腦程式產品及內儲程式之電腦可讀取記錄媒體
KR20230161195A (ko) 영지식 증명 친화적인 일방향 함수를 이용한 연산 방법, 그리고 이를 구현하기 위한 장치
US8977943B2 (en) Implementation of CRC32 using carryless multiplier
JP5131379B2 (ja) Raid装置及びガロア体の積演算処理方法
US20150261503A1 (en) Vectorized galois field multiplication
BR112017010757B1 (pt) Método de transformação linear de uma mensagem s representada em uma forma binária
JP2007266879A (ja) データ変換装置及びデータ変換方法及びデータ変換プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190415

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191030

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200519

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200709

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200827

R150 Certificate of patent or registration of utility model

Ref document number: 6756514

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250