CN106100827A - 错误保护密钥生成方法和系统 - Google Patents

错误保护密钥生成方法和系统 Download PDF

Info

Publication number
CN106100827A
CN106100827A CN201610258545.1A CN201610258545A CN106100827A CN 106100827 A CN106100827 A CN 106100827A CN 201610258545 A CN201610258545 A CN 201610258545A CN 106100827 A CN106100827 A CN 106100827A
Authority
CN
China
Prior art keywords
key
error protection
sub
data
circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610258545.1A
Other languages
English (en)
Other versions
CN106100827B (zh
Inventor
米歇尔·里加
考塞尔·乔哈尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ARM Ltd
Original Assignee
Advanced Risc Machines Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced Risc Machines Ltd filed Critical Advanced Risc Machines Ltd
Publication of CN106100827A publication Critical patent/CN106100827A/zh
Application granted granted Critical
Publication of CN106100827B publication Critical patent/CN106100827B/zh
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/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/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/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 Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (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)
  • Detection And Correction Of Errors (AREA)
  • Storage Device Security (AREA)

Abstract

本公开涉及一种错误保护密钥生成方法和系统,该方法被用于根据所选的错误保护方案生成用于计算针对输入数据值的防错码的密钥。该方法包括输入多个期望的数据值尺寸,然后应用密钥生成算法生成用于计算针对多个数据值尺寸中的最大数据值尺寸的防错码的密钥。密钥生成算法被布置为使得将密钥生成为包括多个子密钥,其中每个子密钥与输入数据值尺寸中的一个数据值尺寸相关联,并且其中每个子密钥符合错误保护方案的密钥要求。因此,包含多个子密钥的通用密钥被生成,其中每个子密钥与特定期望的数据值尺寸相关联,并且可以被独立使用和提取,已知每个子密钥符合错误保护方案要求。这在设计和验证利用此类密钥的错误保护电路时提供了大量益处。

Description

错误保护密钥生成方法和系统
技术领域
本公开涉及生成用于计算针对输入数据值的防错码的密钥的方法和系统,并且涉及包含用于使用该密钥执行计算的防错电路的数据处理系统。
背景技术
在数据处理系统中,已知提供错误保护机制的目的是为了提高针对在数据处理系统内传输的各种数据值的错误的鲁棒性。具体地,可以生成防错码(error protection code)来与数据值相关联,并且随后该防错码可以结合数据值被用来检测数据值由于例如软错误或硬错误被破坏的情形。防错码可以只能够识别数据中存在错误,或者防错码可以不只能够检测错误的存在,而且还能够纠正错误。通常,两种类型的防错码都被称为防错码(ECC),因此,本文中的防错码也被称为ECC。
在此类数据处理系统中,通常提供防错码生成电路形式的错误保护电路(生成防错码以与数据值相关联)、以及错误检查电路形式的错误保护电路(分析数据值和它相关联的防错码以便检测数据值已经出错的情形并且纠正错误(当错误保护方案允许进行此类纠正时))。
根据典型的错误保护方案,既被防错码生成电路用来生成针对输入数据值的防错码、又被错误检查电路用来与数据值和相关联的防错码相结合以便使能够识别和纠正错误的密钥被生成。
针对任意特定的错误防护方案,密钥(本文也称为掩码)的尺寸通常取决于要被保护的数据值的尺寸。数据处理系统内的情况通常是各种不同尺寸的数据值在系统内传播,因此,需要不同的密钥来为这些各种不同尺寸的数据值提供适当的保护。
通常,标准惯例是为每个特定的输入数据值的尺寸生成唯一密钥,该密钥是根据错误保护方案被生成的。然而,随着在数据处理系统内被处理的不同尺寸的数据值的数量的增大,所有数据值具有与它们相关联的、被唯一生成的密钥,这导致与生成用于数据处理系统的必要的错误保护电路相关联的大量的设计和验证成本。提供使得能够减少此类设计和验证成本的机制是可取的。
发明内容
在一个示例性配置中,提供了一种根据错误保护方案生成用于计算针对输入数据值的防错码的密钥的计算机可执行方法,包括:输入多个数据值尺寸;以及应用密钥生成算法生成用于计算针对多个数据值尺寸中的最大数据值尺寸的防错码的密钥,该密钥生成算法将密钥生成为包括多个子密钥,每个子密钥与输入数据值尺寸中的一个数据值尺寸相关联并且符合错误保护方案的密钥要求。
在另一示例性配置中,提供了一种提供计算机程序的非暂态计算机程序产品,当计算机程序在计算机上被运行时,执行如上文提到的示例性配置的、根据错误保护方案生成用于计算针对输入数据值的防错码的密钥的方法。
在另一示例性配置中,提供了一种数据处理系统,包括:多个错误保护电路,该多个错误保护电路至少包括用于处理第一数据值尺寸的数据值的第一错误保护电路、以及用于处理与所述第一数据值尺寸不同的第二数据值尺寸的数据值的第二错误保护电路;所述第一错误保护电路和所述第二错误保护电路包括计算电路,该计算电路利用从根据上述方法生成的密钥中选择的子密钥执行计算,针对第一错误保护电路和第二错误保护电路中的每个错误保护电路的子密钥是基于由相应错误保护电路处理的相关联的数据值尺寸来选择的。
在又一示例性配置中,提供了一种数据处理系统,包括:多个错误保护装置,该多个错误保护装置至少包括用于处理第一数据值尺寸的数据值的第一错误保护装置、以及用于处理与所述第一数据值尺寸不同的第二数据值尺寸的数据值的第二错误保护装置;所述第一错误保护装置和所述第二错误保护装置包括计算装置,该计算装置利用从根据上述方法生成的密钥中选择的子密钥执行计算,针对第一错误保护装置和第二错误保护装置中的每个错误保护装置的子密钥是基于由该错误保护装置处理的相关联的数据值尺寸来选择的。
附图说明
参考在附图中示出的实施例、只通过举例的方式对本技术进行进一步描述,在附图中:
图1是根据一个实施例的数据处理系统的框图;
图2示意性示出在一个实施例中所用的掩码、以及用于计算针对接收到的数据值的纠错码(error correction code)的相关计算;
图3是示出根据一个实施例的掩码生成技术的流程图;
图4示出当采用图3的方法时根据一个实施例生成的子掩码的序列;
图5示意性示出根据一个实施例生成针对不同的数据值尺寸、以及针对两种不同的错误保护方案的纠错码的尺寸;
图6是示出根据一个实施例生成错误保护电路时被执行的步骤的流程图;
图7示出利用一个实施例的机制生成的针对尺寸为dw_x+1的数据值的掩码的各个部分;
图8是示出如何根据一个实施例的放大规模机制、根据针对尺寸为dw_x的数据值的纠错码生成针对尺寸为dw_x+1的数据值的纠错码的流程图;
图9示出根据一个实施例被布置为根据图8的方法进行操作的纠错码生成电路的流程图;
图10是示出根据一个实施例被布置为执行缩小规模操作以根据为尺寸为dw_x+1的数据值生成的纠错码生成针对尺寸为dw_x的数据值的纠错码的纠错码生成电路的框图;
图11A-11C示出根据不同的实施例的图7的掩码的替换形式;以及
图12示意性示出可以被用于实现本技术的一类通用计算机。
具体实施方式
在参考附图讨论实施例之前,提供了以下对实施例的描述。
在一个示例性配置中,提供了一种根据所选错误保护方案生成用于计算针对输入数据值的防错码的密钥的计算机可执行方法。具体地,多个数据值尺寸被输入,然后密钥生成算法被应用以生成用于计算针对多个数据值尺寸中的最大数据值尺寸的防错码的密钥。在生成密钥时,所述密钥生成算法将该密钥生成为使其包含多个子密钥,其中每个子密钥与输入数据值尺寸中的一个相关联并且符合所选错误保护方案的密钥要求。
因此,被生成的密钥有效地形成子密钥的通用集,其中每个子密钥都符合针对错误保护方案的密钥要求,并且其中每个子密钥与输入数据值尺寸中的特定的一个数据值尺寸相关联。因此,针对被输入的多个数据值尺寸中的任意特定数据值尺寸,错误保护电路可以被布置为利用从根据上述方式生成的密钥中选择的相关子密钥执行计算。这在设计错误保护电路以处理各种不同的数据值尺寸时带来了设计和验证成本的显著降低。具体地,由所生成的密钥提供的子密钥的共同通用集在每个实例中都可以被参考,并且相关子密钥是根据要求的数据值尺寸被提取的。
密钥生成算法取决于所选的错误保护方案。例如,应该理解的是在针对特定尺寸的数据值的防错码中所需的位数会根据所选的错误保护方案变化,并且通常存在规定如何根据错误保护方案从数据值中生成密钥的规则。根据本技术,密钥生成算法不只生成与最大数据值尺寸相关联的密钥,其中该密钥符合错误保护方案的密钥要求,而且针对子密钥也考虑了相关联数据值尺寸,因此还保证每个单独的子密钥也符合错误保护方案的密钥要求,。于是这使得每个单独子密钥可以被独立使用。
在一个实施例中,密钥(如上文提到的,实际上是针对不同数据值尺寸的子密钥的通用集)由计算机执行的方法输出,从而使得它随后可以在生成符合错误保护方案的错误保护电路时被用作输入。错误保护电路可以采用各种形式,因此,例如,可以是用于生成针对特定尺寸的输入数据值的防错码的防错码生成电路(在本文中也被称为ECC生成电路)、或者可以是用于检测以及潜在地纠正(基于对数据值和相关联的ECC的分析在数据值中识别的)错误的错误检查电路。在这两种实例中,与被处理的数据尺寸相关联的相关子密钥在错误保护电路执行的计算中被使用。
存在将密钥生成算法布置为将密钥生成为包括多个子密钥的多种方式。然而,在一个实施例中,应用密钥生成算法的步骤包括:计算子密钥的序列,从而使得所述序列中、除了第一子密钥之外的每个子密钥包含该序列中的上一子密钥,剩余部分被计算为以保证符合密钥要求,并且最终的子密钥形成被用于计算针对最大数据值尺寸的防错码的密钥。
因此,子密钥的序列实际上形成了嵌套序列,其中,子密钥的一部分由上一子密钥形成。
在一个实施例中,应用密钥生成算法的步骤包括:以尺寸递增的顺序处理多个数据尺寸,从而使得计算的第一子密钥是针对多个数据尺寸中的最小数据值尺寸的子密钥。然后,针对序列中的各个后续子密钥,通过以下步骤计算该子密钥以使得符合密钥要求:在其中包含序列中的上一子密钥、根据相关联的数据值尺寸确定子密钥的剩余部分、以及计算针对该子密钥的剩余部分的值。
在一个实施例中,每个子密钥包含被布置在行和列中的值的矩阵。在一个此类布置中,针对序列中的每个后续子密钥,上一子密钥占据后续子密钥的列的子集,并且计算子密钥的剩余部分的步骤包括用预定值填充列的子集内的剩余列值、以及计算针对不在列的所述子集中的剩余列的值。
上一子密钥在正被生成的当前子密钥中所处的准确位置可以根据实施例变化。在一个实施例中,上一子密钥被放置为使得它的角中的一角与正在生成的当前子密钥的相应角在相同位置。如上文提到的,针对上一子密钥占据的列的子集,正在生成的当前子密钥的列的那个子集内的剩余列值可以用预定值填充,在一个实施例中,该预定值是零值。因此,然后所有需要的是生成针对不在上一子密钥占据的列的子集中的剩余列的值。这些值可以利用根据可应用于所选错误保护方案的规则的密钥生成算法来生成,所选错误保护方案可以指示这些列的可允许的序列值。
在一个实施例中,当计算针对不在列的所述子集中的剩余列的值时,密钥生成算法排除已经存在于列的子集中的任意值序列。对于许多错误保护方案,保证特定子密钥内的列中没有相同的值序列是必要的。
存在可以指定被用作密钥生成算法的输入的多个数据值尺寸的多种方式。例如,在一个实施例中,多个数据值尺寸被单独指定,例如,被指定为所需数据值尺寸的列表。然而,在一个替换实施例中,该多个数据尺寸可以通过输入标识最小数据尺寸和最大数据尺寸的范围来确定。然后实际的数据值尺寸可以以各种方式从该范围中决定,例如,结合范围内的每个整数值、当在该范围内选择所需的数据值尺寸时应用预定间隔等。
在一个实施例中,包含计算机程序的非暂态计算机程序产品可以被提供,当计算机程序在计算机上被运行时,执行如上文所述的生成密钥的方法。因此,例如,这会使得通用计算机能够执行生成密钥所需的必要步骤,该密钥包含针对不同的指定数据值尺寸的子密钥的通用集。可替换地,专用装置可以被提供来基于被输入的数据值尺寸生成密钥。
通过上文所述的技术生成的密钥可以被广泛用于各种不同的情形。然而,它可以特别有利地应用于具有多个错误保护电路的数据处理系统,各种不同的数据值尺寸的数据在该系统内被处理,并且相应地,一些错误保护电路需要处理与其它错误保护电路不同的数据值尺寸。
例如,在一个实施例中,提供的数据处理系统可以包括多个错误保护电路,该多个数据保护电路至少包括处理第一数据值尺寸的数据值的第一错误包括电路、以及处理与所述第一数据值尺寸不同的第二数据值尺寸的数据值的第二错误保护电路。第一错误保护电路和第二错误保护电路包括计算电路,该计算电路利用从根据上文所述的计算机可执行方法生成的密钥中选择的子密钥执行计算,针对第一错误保护电路和第二错误保护电路中的每个错误保护电路,子密钥是基于由该错误保护电路处理的相关联的数据值尺寸选择的。
当设计此类数据处理系统时利用上述方法生成的密钥可以使得显著减少与数据处理系统相关联的设计和验证成本。具体地,取代已知现有技术的方法(在现有技术方法中要为不同的数据值尺寸生成唯一的密钥,所有密钥需要被分别记录并且要求相应地设计相关联的错误保护电路),当利用本技术的上述机制来生成密钥时,因为密钥有效地提供了与不同数据值尺寸相关联的子密钥的通用集,所以通用密钥每次都可以被引用并且从中提取相关子密钥,这显著降低了与在数据处理系统内提供错误保护电路相关联的设计和验证成本。
在一个实施例中,所有不同的错误保护电路可以是自包含的,包括根据适合的子密钥配置的计算电路。因此,在此类布置中,在上文提到的第一错误保护电路和第二错误保护电路中的每个错误保护电路中的计算电路会实现利用针对该错误保护电路的所选子密钥的整体的函数。
然而,在一个替换实施例中,通过反复利用与处理不同的数据值尺寸的错误保护电路相关联的计算电路的输出,在某些错误保护电路中可能会减小计算电路的尺寸和复杂性。具体地,在一个实施例中,第一错误保护电路中的计算电路实现利用针对第一错误保护电路的所选子密钥的整体的函数,以及在第二错误保护电路中的计算电路实现利用针对第二错误保护电路的所选子密钥的确定部分的第一函数、以及利用由第一错误保护电路中的计算电路实现的函数的输出的第二函数。因此,在该实施例中,第二错误保护电路中的计算电路只需要利用针对该错误保护电路的所选子密钥的确定部分、并且可以重复利用第一错误保护电路中的计算电路的输出。
在一个具体的示例性配置中,第一数据值尺寸小于第二数据值尺寸,这在本文中被称为放大规模(upscaling)实施例。具体地,在该实例中,第二错误保护电路是对比第一错误保护电路处理的数据值尺寸更大的数据值尺寸进行运算,但当计算它所需的输出时利用第一错误保护电路的输出,因此使得能够减小在第二错误保护电路中的计算电路的尺寸。
在一个替换实施例中,第一数据值尺寸大于第二数据值尺寸,这在本文中被称为缩小规模(downscaling)实施例。在这样的缩小规模实施例中,第一错误保护电路的输出仍然可以被用于减小第二错误保护电路中的计算电路的复杂性。
因此,通过使用这样的放大规模和缩小规模实施例,所需计算电路的总体尺寸可以被减小,这可以使得节省性能和功率两者。
如之前提到的,错误保护电路可以采用各种形式。在一个实施例中,第一错误保护电路和第二错误保护电路是用于利用所选子密钥和输入数据值生成防错码的防错码生成电路。
在一个具体实施例中,第二错误保护电路内的第二函数被布置为应用将以下各项用作输入的运算:第一函数的输出、以及从由第一错误保护电路中的计算电路实现的函数的输出中导出的数据。
在一个替换实施例中,第一错误保护电路和第二错误保护电路是用于利用所选子密钥、输入数据值、以及相关联的防错码生成症状(syndrome)信息的错误检查电路。在第一错误保护电路和第二错误保护电路是错误检查电路的一个具体实施例中,那些第一错误保护电路和第二错误保护电路实现利用针对该错误保护电路的所选子密钥的整体的函数。
现在参考附图描述具体实施例。
图1是可以实现所述实施例的技术的数据处理系统10的框图。在该示例性系统中,可以是例如中央处理单元(CPU)的处理电路15被布置为与各种其它组件25、35、45、55通信并且还与片上存储器70通信。组件25、35、45、55可以采用各种形式,因此可以是例如存储器接口、缓存控制接口等。如图所示,各种不同尺寸的数据值在CPU 15和各种组件之传输。为了说明的目的,只示出了某些通信信道,具体地,关于组件25、35、45的通信信道,示出了从CPU 15向这些组件传输数据的通信信道,同时在CPU内提供相关联的ECC生成器电路20、30、40以生成分别与被传输至组件25、35、45的数据相关联的ECC码,并且每个组件包括用来检测和潜在纠正(通过对数据和相关ECC的分析确定的)数据中的错误的相关ECC检查电路22、32、42。
此外,在示出的示例中,假设组件55将数据传输至CPU 15,相应地,相关联的ECC生成器电路50在组件55内被提供,并且ECC检查电路52在CPU 15内被提供。
关于在CPU 15和存储器70之间的通信,假设存储器不执行任何纠错码的生成或检查,而只是在存储器内存储被提供的数据和相关联的ECC,从而使得当随后取回数据时可以执行错误检查。因此,在该实施例中,组合的ECC生成器和检查电路60可以被提供来经由总线接口65与存储器70通信。当数据值被写入存储器时,相关联的ECC数据会被生成以在存储器中与数据值相关联,并且然后当数据值随后被取回时,CPU内的检查电路会基于对数据值和相关ECC的分析检测数据中的任意错误。
应该充分理解的是存在大量不同的错误保护方案,并且特定数据值尺寸所需的ECC数据的尺寸会根据错误保护方案变化。例如,一种类型的错误保护方案是SEDDED(单错检测、双错检测)方案,而另一已知的错误保护方案是SECDED(单错纠正、双错纠正)方案。针对任意特定尺寸的数据值,SECDED方案通常要求比SEDDED方案更多的ECC位。在图1所示的示例中,所示的示例性ECC尺寸是针对SECDED方案的。因此从CPU 15传递到组件25的8位数据值伴随有5位ECC,而从CPU 15传递到组件35的32位数据值伴随有7位ECC,从CPU 15传递到组件45的16位数据值伴随有6位ECC,以及从组件55传递到CPU 15的64位数据值伴随有8位ECC。
当根据输入数据值D生成纠错码E时,利用适当尺寸的密钥执行关于该数据值的计算。密钥还可以被描述成掩码。图2示出了示例性掩码M。掩码可以被认为形成了在行和列中布置的值的矩阵。如图2所示,掩码90被配置为使得行的数量等于错误码E中的ECC位的数量,而列的数量等于要由ECC保护的数据值D中的位的数量。因此,就由5位ECC保护8位数据的之前的示例而言,掩码M可以具有5行和8列,在掩码内的每个矩阵位置处提供逻辑1或逻辑0。
通常,不论方案给出哪种保护种类,ECC生成都以类似的方式被执行,并且可以由以下等式表示:
E=M*D
星号表示矩阵M和矢量D的矢量积,从而使得ECC的每个位相当于矢量D与矩阵的相对应的行的按位与(bitwise AND)的异或归约(XORreduction)。
掩码的实际形式取决于所选的错误保护方案,具体地,算法可以被用于为根据所选错误保护方案的掩码内的每个列选择适当的值。通常,在已知现有技术的系统中,每当要求针对特定尺寸的数据值的掩码时,掩码是基于此类算法的应用被唯一生成的,并且因此,针对任意选择的错误保护方案,针对一个特定数据值尺寸生成的掩码与针对不同数据值尺寸生成的掩码不相关。这在数据处理系统包含多个错误保护电路时会产生大量的设计和验证成本,其中这些错误保护电路处理不同尺寸的数据,如之前参考图1讨论的示例性系统。
然而,根据一个实施例的技术,提供了用于生成包含一系列子掩码的通用掩码的方法,其中每个子掩码与特定的输入数据值尺寸相关联,并且每个子掩码各自符合错误保护方案的掩码要求。该过程会参考图3进行进一步描述。
在步骤100处,输入要被保护的期望数据宽度。这些数据宽度可以被分别指定,或者可以参考期望数据宽度从中被确定的范围。如图3所示,这些数据宽度被标记为dw_1、dw_2、…dw_max。
在步骤105处,识别保护的类型,保护的类型与每个数据宽度所需的ECC位的数量、用于填充掩码的各个列的算法等有关。
在步骤110处,根据在步骤105处输入的保护类型为每个期望数据宽度确定相应的错误码宽度ew_1、ew_2、…ew_max。其后,在步骤115处,分别将参数dw和ew设置为等于dw_1和ew_1。
在步骤120处,应用适用于特定保护类型的列生成器算法,以便于生成具有ew行和dw列的子掩码。该处理排除了针对为在先子掩码计算的任意列的计算。在第一迭代期间,不存在在先子掩码,因此列生成器算法生成各个列。
在步骤125处,确定是否考虑了在步骤100处输入的所有数据宽度。如果是,那么处理完成,并且分支进行至步骤140,在步骤140处,最新的子掩码成为最终掩码MMAX,P。然而,至少对第一迭代而言,不是这种情况,并且处理进行至步骤130,在步骤130处,针对下一期望的数据宽度更新dw和ew。其后,在步骤135处,为现有列中的任意额外的行添加逻辑零值以将这些列延伸成ew位的长度。处理返回步骤120。
作为该过程的结果,本身包含多个子掩码的通用掩码MMAX,P将被生成,每个子掩码与特定的输入数据宽度相关联,并且每个子掩码符合错误保护方案的掩码要求,即,使子掩码能够被独立使用。这在图4中被示意性示出,其中与最大输入数据宽度相关联的最大尺寸的掩码MMAX由子掩码150构成,这是创建的最终子掩码。然而,生成该掩码的过程从生成针对最小指定数据宽度的掩码160开始,并且然后为与各个其它指定数据宽度相关联的各个后续子掩码170、180等迭代重复该过程。多个数据尺寸宽度是以递增尺寸的顺序被处理的。
在图4所示的示例中,假设指定的最小数据宽度是4位,指定的第二数据宽度是8位,并且此后指定了多个进一步的数据尺寸。如之前提到的,每个子掩码内的行的数量取决于所用的保护方案的类型,但是针对之前提到的SECDED方案,数据宽度尺寸4需要4行,数据宽度尺寸8需要5行。这由掩码160、170示意性示出。第一迭代时,行生成器算法会生成子掩码160内所示的4列值。其后,初始dw和ew值4和4会被更新成8和5,以便于指定下一掩码170。在该示例中,子掩码160占据子掩码170的左上部分,并且包含子掩码160的所有列以逻辑零值延伸。这在图3的步骤135处执行。在步骤120的下一迭代期间,子掩码170内示出的4个附加列的5个值是根据所选错误保护方案的规则计算的。当考虑下一子掩码180时,所有与子掩码170相关联的8个列被再次以逻辑零值延伸子掩码180内的任意附加行,如图4示意性所示,并且然后计算子掩码的剩余部分。该过程会继续,直到计算出与指定的最大数据宽度尺寸相关联的最终子掩码150,此时,子掩码变成最终掩码MMAX,P
图5是示出SECDED方案和SEDDED方案中针对各种不同的数据宽度dw的ECC宽度ew的表。从表190中可以看到,相比于SEDDED方案,采用SECDED方案时针对任意特定数据宽度的ECC位的数量更多。这是因为需要额外的信息使信息能够被纠正,而不是只被检测。
需要为其生成相关联的子掩码的各种指定的数据尺寸可以采用任意形式。然而在图5的示例中,大多数值是先前值的两倍,对此没有要求,而且事实上可以看到给出的示例中的一个示例的数据宽度为47,它与先前指定的数据宽度没有特定关系。
已经以参考之前附图讨论的形式生成了通用掩码,然后可以利用通用掩码设计单独的错误保护电路,具体地,利用通用掩码内的相关子掩码。该处理在图6中被示意性示出。在步骤200处,输入最大尺寸的掩码MMAX,P,MMAX,P是适用于所选保护类型p的掩码。在步骤205处,输入将由错误保护电路处理的期望数据宽度dw_x,并且然后在步骤210处,从输入的掩码中提取相关子掩码,相关子掩码是适用于指定数据宽度dw_x的子掩码。此后,在步骤215处,利用所选子掩码构建错误保护电路。
错误保护电路可以采用各种形式,例如,可以采用ECC生成器电路的形式,ECC生成器电路被用于利用所选子掩码M根据相应的输入数据D生成ECC码E。具体地,如之前讨论的,ECC生成器电路将被布置为执行计算:
EX=MX,P*DX
其中,星号表示矩阵Mx与矢量Dx的矢量积,即,之前定义的矢量积。
然而,在可替换实施例中,错误保护电路可以采用ECC检查电路的形式,ECC检查电路被用于基于对数据值和其相关联的ECC的分析来确定数据值中是否存在错误,并且然后根据错误保护方案(即,保护类型P)潜在纠正任何被检测到的错误。具体地,在这种实施例中,ECC检查器电路将被布置为通过执行以下计算来生成症状信息Sx:
SX=(MX,P,I)*{DX,EX}
其中
I是单位矩阵
可以看出,单位矩阵在对角线方向包括逻辑1值,而所有其它值被设为等于0。计算MX,P,I是由掩码M和单位矩阵I形成的两个矩阵的水平级联(concatenation)。星号表示产生的矩阵与将Dx和Ex级联在一起后给出的矢量的矢量积。
应该充分理解的是只要生成症状数据,那么症状信息就可以被用于了解发生了什么错误,然后该信息可以被用于根据所用的错误保护方案纠正错误。
在步骤200、205、210和215中概述的处理可以按照数据处理系统中所需的每个错误保护电路的需求被重复。提供的每个错误保护电路对与输入掩码内的子掩码中的一个相关联的尺寸的数据值进行操作,然后相同的通用输入掩码可以被用于所有实例中,于是显著减少了设计和验证成本。为每个所需的错误保护电路重复步骤200-215的处理由图6中的虚线框220示意性示出。
一旦设计出所有需要的错误保护电路,那么包含各种错误保护电路的集成电路可以被制造,如虚线框225所示。应该理解的是集成电路的制造可以执行为完全独立的过程并且由完全独立的实体执行,在集成电路的设计师将利用步骤200-220生成的各种错误保护电路设计合并到整体集成电路设计之后制造集成电路。事实上,还应该理解的是不同的实体可以负责设计集成电路、以及负责随后根据该设计制造集成电路。
图7示意性示出子掩码MX+1,P和上一子掩码MX,P之间的关系。在该示例中,假设dw_x是与掩码MX,P相关联的数据宽度,并且dw_x+1是与子掩码MX+1,P相关联的数据宽度。两个数据宽度之差在图7中被表示为aw_x+1。
如之前对图3的进行的讨论,只要生成了掩码MX,P255,那么就可以通过以下步骤生成掩码MX+1,P250:合并掩码255、通过将逻辑零值填入剩余的行265中来延伸掩码255包含的所有列、以及然后为剩余的列计算适合的列值。为剩余的列产生的矩阵在图7中被表示为AMX+1,P260。
现在参考图8和图9进行描述,通过举例的方式参考ECC生成电路的设计,当设计用于生成ECC码EX+1(即,与具有数据宽度dw_x+1的数据值DX+1相关联的ECC)的ECC生成电路时,可以利用由ECC生成器提供的ECC码Ex来根据数据宽度为dw_x的数据值计算ECC码EX+1
具体地,如图8所示,在步骤300处,输入ECC码Ex,并且然后在步骤305处可以输入通用掩码MMAX,P
在步骤310处,与附加的列相关联的子掩码MX+1,P的相关部分(也就是图7中示出的部分AMX+1,P 260)可以从输入掩码中被提取。然后,在步骤315处,可以构建电路以执行以下计算以便于生成内部值Q:
AMX+1,P*ADX+1
再次,星号表示掩码的被识别的部分与表示相关数据位(在这个例子中,是数据位ADX+1,即,将数据值Dx转换成数据值DX+1的附加数据位)的矢量的矢量积。
然后在步骤320处,电路被构建为计算Q和ECC Ex的宽度延伸版本的异或作为ECC EX+1
参考图9对其进行进一步说明。具体地,组件350执行生成针对输入数据Dx的ECC Ex的所需的ECC计算。这是以利用相关子掩码Mx,p的标准方式执行的。
然后另外的ECC生成电路355被提供来根据相关联的输入数据DX+1生成ECC EX+1。然而在一个实施例中,这样的ECC生成电路可以以与组件350相同方式、利用相关掩码MX+1,P的整体被构建,图9所示的布置使得能够通过利用已经由组件350生成的ECC Ex来减小ECC生成电路的尺寸和复杂性。具体地,附加的数据部分ADX+1是从输入数据DX+1中被提取的并且通过路径362被输入至Q计算电路360。这执行之前参考图8的步骤315讨论的、利用相关掩码部分AMX+1,P和通过路径362输入的数据进行的计算。
电路370通过附加一系列零值来延伸Ex的宽度,来对通过路径364输入的ECC Ex进行宽度延伸,从而使得EX具有与EX+1相同的宽度。然后组件375利用Q和来自宽度延伸电路370的输出执行异或运算,以便于生成作为路径380上的输出的ECC EX+1
由于由方框360执行的计算只需要关于图7所示的掩码260的子部分来执行,所以这可以显著减小ECC生成电路的尺寸和复杂性。
虽然图9所示的所有组件可以在数据处理系统的同一组件内提供,在替换实施例中,ECC计算电路350可以驻留在与包含ECC生成电路355的组件完全分开的组件中是可能的。例如,考虑图1的具体示例,ECC生成器电路20可以包括用于生成针对8位数据值的防错码Ex的组件350,并且生成的ECC Ex还可以作为输入被提供给ECC生成器电路40,在ECC生成器电路40中包含方框355所述的功能以便于生成针对16位数据值的ECC EX+1
上文参考图8和9所描述的过程在本申请中被称为放大规模布置。
在一个替换实施例中,有可能支持缩小规模实施例,其中,针对数据值DX+1生成的ECC EX+1随后还可以被用于帮助生成针对减小的尺寸的数据值Dx。图10中示出了一个此类实施例。
如图10所示,ECC计算电路450被提供来利用图7所示的相关子掩码MX+1,P计算针对相关联的数据值DX+1的ECC EX+1。然后另外的ECC生成电路455被提供来计算与数据值Dx相关联的ECC Ex,而且Dx和DX+1具有图7和图8顶部所示的关系。附加的数据部分ADX+1被提取并且通过路径462被输入至Q计算电路460,Q计算电路460以与针对图9的Q计算电路360所讨论方式的相同的方式进行运算。
电路470对来自Q计算电路460的输出Q、以及从电路450通过路径464被输入的ECC EX+1执行异或运算,以生成内部值R。可以利用宽度缩减电路480来根据R确定ECC Ex,如图10所示,宽度缩减电路480从值R中提取所需的最低有效位数量,被提取的位数等于ECC Ex的宽度。然后针对Ex的生成值通过路径482被输出。
图11A至11C示出布置各种子掩码的替换方式,此时仍然允许执行上文所述的放大规模和缩小规模实施例。从图11A和图7的比较中可以看出,掩码MX,P405被置于下一子掩码MX+1,P的左下方而不是如图7所示的左上方。并且逻辑零值被加入包含子掩码MX,P的列的剩余行中,如标号415所示。另外,可以看到与图7的部分260相对应的附加矩阵部分AMX+1,P410仍然被提供。然后图8和9的放大规模处理可以按照先前所述被应用。然而,宽度延伸电路370的运算会轻微改变,附加的逻辑零值会形成延伸的ECC Ex的最高有效位位置(如图11的等式所示),而不是如图7的示例所示的最低有效位。类似地,当采用图10的缩小规模实施例时,宽度缩减电路480的运算会轻微改变,R的最高有效位的数量而不是最低有效位的数量被选择来形成Ex,如图11A列出的等式所示。
图11B示出针对子掩码的另一可能的布置,其中,子掩码425被放置在下一子掩码MX+1,P的右上角。与之前相同,逻辑零值435被用于延伸被包含在子掩码425中的列,并且附加的掩码部分AMX+1,P430以标准形式被创建。缩小规模时的宽度延伸电路370的运算和缩小规模时的宽度缩减电路480的运算以图11B提出的等式被示出。
图11C示出图11B所示的子掩码的一个替换布置,这种布置也可以促进上述的放大规模和缩小规模实施例。此处,子掩码MX,P905被置于下一子掩码MX+1,P900的右下方处,逻辑零值915被添加以延伸与子掩码905相关联的列,并且然后计算附加的掩码部分AMX+1,P910,这部分与图11B所示的部分430相对应。放大规模时的宽度延伸电路370和缩小规模时的宽度缩减电路480的运算以图11C列出的等式示出。
上述放大规模和缩小规模的实施例可以使得能够显著节省功率和/或面积,并且还引起性能提升。
原则上,放大规模和缩小规模的布置还可以在与ECC检查电路相关的一些实施例中被利用,ECC检查电路被用于根据接收到的数据和ECC信息生成症状信息。然而,在一个实施例中,这种技术不被用于ECC检查电路,而是利用之前参考图6所讨论的方法生成各个ECC检查电路,具体地,利用从通用掩码中提取的相关子掩码的整体。
图12示意性示出可以被用于实现上文所述的技术的通用类型的计算机1000,具体地,该计算机1000可生成包括用于计算针对输入数据值的防错码的一系列子密钥的密钥。通用计算机1000包括全部经由通用总线1022连接的中央处理单元1002、随机访问存储器1004、只读存储器1006、网络接口卡1008、硬盘驱动器1010、显示器驱动器1012和监控器1014、以及具有键盘1018和鼠标1020的用户输入/输出电路1016。在操作中,中央处理单元1002会执行可以被存储在以下各项中的一项或多项中的、或者经由网络接口卡1008被动下载的计算机程序指令:随机访问存储器1004、只读存储器1006、以及硬盘驱动器1010。执行的处理的结果可以经由显示器驱动器1012和监控器1014被显示给用户。来自键盘1018或鼠标1020、用于控制通用计算机1000的操作的用户输入可以经由用户输入/输出电路1016被接收到。应该理解的是计算机程序可以被写成各种不同的计算机语言。计算机程序可以被存储在并且分布在记录介质上或者可以被动态下载至通用计算机1000。当在适当的计算机程序的控制下进行操作时,通用计算机1000可以执行上文所述的密钥生成技术并且可以被考虑来形成用于执行上文所述的技术的装置。通用计算机的架构可以显著变化,图12只是一个示例。
根据上述实施例,可以看到此类实施例提供用于生成包含子掩码集合的通用掩码的机制,其中,每个子掩码与特定的数据宽度相关联,并且其中每个子掩码本身满足所选错误保护方案的掩码要求。这在生成错误保护电路(不论它们是用于数据处理系统的ECC生成电路还是错误检查电路)时,特别是在数据处理系统被要求处理针对各种不同的宽度的数据值并且因此此类错误保护电路被要求处理各种不同的数据宽度尺寸的情形中,提供了显著的优势。在一些实施例中,通过利用上述放大规模和缩小规模的实施例以进一步减小在错误保护电路内提供的组件中的一些组件的复杂性可以获得进一步的性能和效率提升。
在本申请中,词语“被配置为…”被用于表示装置的元件具有能够执行定义的操作的配置。在这种情境下,“配置”表示硬件或软件互联的布置或方式。例如,装置可以具有提供定义的操作的专用硬件、或者处理器或其它处理装置可以被编程为执行该功能。“被配置为”不暗示装置元件需要以任意方式被改变以便于提供定义的操作。
虽然已经在本文中参考附图详细描述了本发明的说明性实施例,但是应该理解的是本发明不限于这些明确的实施例,并且本领域的普通技术人员在不背离由所附权利要求书定义的本发明的精神和范围的情况下可以对其进行各种改变、添加或修改。例如,在不背离本发明的范围的情况下,可以利用独立权利要求的特征对从属权利要求的特征进行各种组合。

Claims (19)

1.一种根据错误保护方案生成用于计算针对输入数据值的防错码的密钥的计算机可执行方法,包括:
输入多个数据值尺寸;以及
应用密钥生成算法生成用于计算针对所述多个数据值尺寸中的最大数据值尺寸的防错码的密钥,所述密钥生成算法将所述密钥生成为包括多个子密钥,每个子密钥与所述输入数据值尺寸中的一个数据值尺寸相关联并且符合所述错误保护方案的密钥要求。
2.根据权利要求1所述的计算机可执行方法,还包括:
输出所述密钥以用于生成符合所述错误保护方案的错误保护电路。
3.根据权利要求1所述的计算机可执行方法,其中,应用所述密钥生成算法的步骤包括:
计算子密钥的序列,从而使得所述序列中、除了第一子密钥之外的每个子密钥包含该序列中的上一子密钥,剩余部分被计算为以保证符合所述密钥要求,并且最终的子密钥形成将被用于计算针对所述最大数据值尺寸的所述防错码的所述密钥。
4.根据权利要求3所述的计算机可执行方法,其中,应用所述密钥生成算法的步骤包括:
以尺寸递增的顺序处理所述多个数据尺寸,从而使得计算的所述第一子密钥是针对所述多个数据尺寸中的最小数据值尺寸的子密钥;
针对所述序列中的各个后续子密钥,通过以下步骤计算子密钥以使得符合所述密钥要求:在该子密钥中包含所述序列中的上一子密钥、根据相关联的数据值尺寸确定该子密钥的剩余部分、以及计算针对该子密钥的剩余部分的值。
5.根据权利要求4所述的计算机可执行方法,其中,每个所述子密钥包含被布置在行和列中的值的矩阵,针对所述序列中的每个后续子密钥,所述上一子密钥占据所述后续子密钥的列的子集,并且计算所述子密钥的剩余部分的步骤包括用预定值填充列的所述子集内的剩余列值、以及计算针对不在所述列的所述子集中的剩余列的值。
6.根据权利要求5所述的计算机可执行方法,其中所述预定值是零值。
7.根据权利要求5所述的计算机可执行方法,其中,当计算针对不在所述列的所述子集中的所述剩余列的值时,所述密钥生成算法排除已经在所述列的所述子集中存在的任意值序列。
8.根据权利要求1所述的计算机可执行方法,其中,所述多个数据尺寸是被单独指定的。
9.根据权利要求1所述的计算机可执行方法,其中,通过输入标识最小数据尺寸和最大数据尺寸的范围来确定所述多个数据尺寸。
10.一种提供计算机程序的非暂态计算机程序产品,当所述计算机程序在计算机上被运行时,执行如权利要求1所述的、根据错误保护方案生成用于计算针对输入数据值的防错码的密钥的方法。
11.一种数据处理系统,包括:
多个错误保护电路,所述多个数据保护电路至少包括处理第一数据值尺寸的数据值的第一错误保护电路、以及处理与所述第一数据值尺寸不同的第二数据值尺寸的数据值的第二错误保护电路;
所述第一错误保护电路和所述第二错误保护电路包括计算电路,所述计算电路利用从根据权利要求1所述的计算机可执行方法生成的密钥中选择的子密钥执行计算,针对所述第一错误保护电路和所述第二错误保护电路中的每个错误保护电路,所述子密钥是基于由该错误保护电路处理的相关联的数据值尺寸来选择的。
12.根据权利要求11所述的数据处理系统,其中,
在所述第一错误保护电路和所述第二错误保护电路中的每个错误保护电路中的计算电路实现利用针对该错误保护电路的所选子密钥的整体的函数。
13.根据权利要求11所述的数据处理系统,其中,
在所述第一错误保护电路中的所述计算电路实现利用针对所述第一错误保护电路的所选子密钥的整体的函数;以及
在所述第二错误保护电路中的计算电路实现利用针对所述第二错误保护电路的所选子密钥的确定部分的第一函数、利用由所述第一错误保护电路中的计算电路实现的函数的输出的第二函数。
14.根据权利要求13所述的数据处理系统,其中,所述第一数据值尺寸小于所述第二数据值尺寸。
15.根据权利要求13所述的数据处理系统,其中,所述第一数据值尺寸大于所述第二数据值尺寸。
16.根据权利要求11所述的数据处理系统,其中,所述第一错误保护电路和所述第二错误保护电路是用于利用所述所选子密钥和输入数据值生成防错码的防错码生成电路。
17.根据权利要求16所述的数据处理系统,其中,
在所述第一错误保护电路中的计算电路实现利用针对所述第一错误保护电路的所选子密钥的整体的函数;以及
在所述第二错误保护电路中的计算电路实现利用针对所述第二错误保护电路的所选子密钥的确定部分的第一函数、以及利用由所述第一错误保护电路中的计算电路实现的函数的输出的第二函数,其中,在所述第二错误保护电路内,所述第二函数被布置为应用将以下各项用作输入的运算:第一函数的输出、以及从由所述第一错误保护电路中的计算电路实现的函数的输出中导出的数据。
18.根据权利要求11所述的数据处理系统,其中,所述第一错误保护电路和所述第二错误保护电路是用于利用所选子密钥、输入数据值、以及相关联的防错码生成症状信息的错误检查电路。
19.一种数据处理系统,包括:
多个错误保护装置,所述多个错误保护装置至少包括用于处理第一数据值尺寸的数据值的第一错误保护装置、以及用于处理与所述第一数据值尺寸不同的第二数据值尺寸的数据值的第二错误保护装置;
所述第一错误保护装置和所述第二错误保护装置包括计算装置,所述计算装置利用从根据权利要求1所述的计算机可执行方法生成的密钥中选择的子密钥来执行计算,针对所述第一错误保护装置和所述第二错误保护装置中的每个错误保护装置,所述子密钥是基于由该错误保护装置处理的相关联的数据值尺寸来选择的。
CN201610258545.1A 2015-04-29 2016-04-22 错误保护密钥生成方法和系统 Active CN106100827B (zh)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
CN106100827A true CN106100827A (zh) 2016-11-09
CN106100827B CN106100827B (zh) 2021-01-12

Family

ID=53488865

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610258545.1A Active CN106100827B (zh) 2015-04-29 2016-04-22 错误保护密钥生成方法和系统

Country Status (6)

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

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5642242A (en) * 1993-06-30 1997-06-24 Victor Company Of Japan, Ltd. Processing system for digital video signal
US20050180459A1 (en) * 2004-02-12 2005-08-18 Mark Watson Universal decoder
CN1714512A (zh) * 2002-11-18 2005-12-28 高通股份有限公司 速率兼容的低密度奇偶校验(ldpc)码
US20090217139A1 (en) * 2007-11-13 2009-08-27 Lg Electronics Inc. Generation of golay-based systematic block code supporting various sizes
WO2009136751A2 (en) * 2008-05-08 2009-11-12 Lg Electronics Inc. Method and apparatus of generating codewords in wireless communication system
US20100325511A1 (en) * 2006-12-05 2010-12-23 Jong-Ee Oh Method of generating parity-check matrix, encoding/decoding method for low density parity-check code with variable information length and variable code rate and apparatus using the same
CN102255729A (zh) * 2011-07-07 2011-11-23 武汉理工大学 一种基于媒介数字证书的ibe数据加密系统
US20120151301A1 (en) * 2010-12-10 2012-06-14 Kabushiki Kaisha Toshiba Semiconductor memory device
CN103646219A (zh) * 2013-11-29 2014-03-19 东南大学 基于神经网络功耗预测的功耗补偿抗攻击电路及控制方法
CN103997402A (zh) * 2014-05-30 2014-08-20 中国科学院深圳先进技术研究院 一种加密芯片安全性能测试方法和装置

Family Cites Families (7)

* 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
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
US20060130154A1 (en) * 2004-11-30 2006-06-15 Wai Lam Method and system for protecting and verifying stored data
EP2571172A4 (en) * 2010-05-11 2013-10-16 Asip Solutions Inc METHOD AND DEVICE FOR PROCESSING ERROR CORRECTING CODE
US8660132B2 (en) * 2010-06-28 2014-02-25 Avaya Inc. Control plane packet processing and latency control
KR101837099B1 (ko) * 2012-07-05 2018-03-09 에스케이하이닉스 주식회사 가변 구조의 에러 정정 부호화기
KR101922205B1 (ko) * 2012-09-07 2018-11-26 에스케이 텔레콤주식회사 Lt 부호를 이용한 행렬 생성 방법과 그를 위한 부/복호화 장치

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5642242A (en) * 1993-06-30 1997-06-24 Victor Company Of Japan, Ltd. Processing system for digital video signal
CN1714512A (zh) * 2002-11-18 2005-12-28 高通股份有限公司 速率兼容的低密度奇偶校验(ldpc)码
US20050180459A1 (en) * 2004-02-12 2005-08-18 Mark Watson Universal decoder
US20100325511A1 (en) * 2006-12-05 2010-12-23 Jong-Ee Oh Method of generating parity-check matrix, encoding/decoding method for low density parity-check code with variable information length and variable code rate and apparatus using the same
US20090217139A1 (en) * 2007-11-13 2009-08-27 Lg Electronics Inc. Generation of golay-based systematic block code supporting various sizes
WO2009136751A2 (en) * 2008-05-08 2009-11-12 Lg Electronics Inc. Method and apparatus of generating codewords in wireless communication system
US20110043391A1 (en) * 2008-05-08 2011-02-24 Young Seob Lee Method and apparatus of generating codewords in wireless communication system
US20120151301A1 (en) * 2010-12-10 2012-06-14 Kabushiki Kaisha Toshiba Semiconductor memory device
CN102255729A (zh) * 2011-07-07 2011-11-23 武汉理工大学 一种基于媒介数字证书的ibe数据加密系统
CN103646219A (zh) * 2013-11-29 2014-03-19 东南大学 基于神经网络功耗预测的功耗补偿抗攻击电路及控制方法
CN103997402A (zh) * 2014-05-30 2014-08-20 中国科学院深圳先进技术研究院 一种加密芯片安全性能测试方法和装置

Also Published As

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

Similar Documents

Publication Publication Date Title
CN101790718A (zh) 用于大数乘法的方法及系统
KR20170052672A (ko) 조건부 검증 규칙
EP3218811B1 (en) Testing insecure computing environments using random data sets generated from characterizations of real data sets
CN109710237A (zh) 一种基于自定义二维报表的在线修改校验方法及设备
TWI325571B (en) Systems and methods of indexed load and store operations in a dual-mode computer processor
KR101949154B1 (ko) Json을 이용하여 데이터셋의 구조를 변환하는 전자 장치 및 그의 동작 방법
US11481353B2 (en) Methods and devices for reducing array size and complexity in automata processors
US9734272B2 (en) Techniques for generating physical layouts of in silico multi mode integrated circuits
US10601582B2 (en) Method of linear transformation (variants)
JP5250481B2 (ja) ルール設計支援方法およびルール設計支援装置
CN110277131A (zh) 基于nand flash存储器的校验方法、终端设备及存储介质
CN106100827A (zh) 错误保护密钥生成方法和系统
JP5293521B2 (ja) デザインルールチェック検証装置およびデザインルールチェック検証方法
Delgado et al. Accurate and fast computations with positive extended Schoenmakers–Coffey matrices
Hansen et al. Package ‘optmatch’
JP2006039621A (ja) タイミング制約ライブラリの作成方法及び作成システム
Mészáros On numerical issues of interior point methods
CN112347723B (zh) 基于版图的rom代码提取验证方法及装置
US11934300B2 (en) Reducing computing power for generating test scenario files for decision models
US11797644B2 (en) Identifying checksum mechanisms using linear equations
CN102193967B (zh) 比较有界域的值
US20230026954A1 (en) Method for embedding user information in webpages and electronic device implementing method
KR101798145B1 (ko) 서버 사이드 데이터 처리 방법 및 시스템
CN105068971A (zh) 一种向量点积的OpenCL自动化实现方法
JPS603046A (ja) 記憶制御方式

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant