CN112464298B - 存储器控制器与数据保护方法 - Google Patents

存储器控制器与数据保护方法 Download PDF

Info

Publication number
CN112464298B
CN112464298B CN201911372415.0A CN201911372415A CN112464298B CN 112464298 B CN112464298 B CN 112464298B CN 201911372415 A CN201911372415 A CN 201911372415A CN 112464298 B CN112464298 B CN 112464298B
Authority
CN
China
Prior art keywords
data
read
bits
interval
write
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
CN201911372415.0A
Other languages
English (en)
Other versions
CN112464298A (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.)
Nuvoton Technology Corp
Original Assignee
Nuvoton Technology Corp
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 Nuvoton Technology Corp filed Critical Nuvoton Technology Corp
Publication of CN112464298A publication Critical patent/CN112464298A/zh
Application granted granted Critical
Publication of CN112464298B publication Critical patent/CN112464298B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of 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/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/004Countermeasures against attacks on cryptographic mechanisms for fault attacks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Storage Device Security (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

一种存储器控制器与数据保护方法,数据保护方法包含:根据读取指令从第一存储器中取得读取数据;从第二存储器中取得相应于读取数据的多个第一编码;根据多个区间配置与读取数据生成多个第一区间数据;利用多个编码器以汉明重量编码多个第一区间数据,以生成多个第二编码;比较多个第一编码与多个第二编码;在多个第一编码与多个第二编码相同时,输出读取数据;及在任一第一编码与相应的第二编码不同时,不输出读取数据。

Description

存储器控制器与数据保护方法
技术领域
本发明关于数据保护技术,特别是一种提升对错误注入(Fault Injection)保护能力的存储器控制器与数据保护方法。
背景技术
习知,攻击者可藉由错误注入(Fault Injection)攻击来窃取电子装置中的数据。错误注入攻击通常会在电子装置中造成错误。例如,透过实体接触到信号线、透过高功率激光或电磁脉冲、或透过电源供应器或其他外部介面造成突波等。
传统作法中,对于编程码部分一般常使用循环冗余校验(CRC)来进行验证。而储存数据的存储器,例如静态随机存取器(SRAM)、动态随机存取器(DRAM)等则使用同位检查(parity check)来确认数据是否遭到窜改。然而,因同位检查是利用一个位(bit)来储存数据中“0”或“1”的个数是奇数个还是偶数个,如若遇到数据中的两个位皆从“1”窜改为“0”或皆从“0”窜改为“1”时,同位检查则无法检验出来。
发明内容
本发明一实施例提供一种数据保护方法。数据保护方法包括:根据读取指令从第一存储器中取得读取数据;从第二存储器中取得相应于读取数据的多个第一编码;根据多个区间配置与读取数据生成多个第一区间数据;利用多个编码器以汉明重量编码多个第一区间数据,以生成多个第二编码;比较多个第一编码与多个第二编码;在多个第一编码与多个第二编码相同时,输出读取数据;及,在任一第一编码与相应的第二编码不同时,不输出读取数据。
本发明一实施例提供一种存储器控制器。存储器控制器包含第一存储器、第二存储器、多个编码器、判断单元以及处理单元。第一存储器用以储存读取数据。第二存储器用以储存相应于读取数据的多个第一编码。处理单元用以根据读取指令自第一存储器中取得读取数据、根据多个区间配置与读取数据生成多个第一区间数据,并利用多个编码器以汉明重量编码多个第一区间数据以生成多个第二编码,处理单元还从第二存储器中取得多个第一编码,并利用判断单元比较多个第一编码与多个第二编码,其中处理单元在判断单元判断多个第一编码与多个第二编码相同时输出读取数据,以及在判断单元判断任一第一编码与相应的第二编码不同时不输出读取数据。
附图说明
图1为应用本发明一实施例的存储器控制器的系统的方块示意图。
图2为存储器控制器在读取程序中的一实施例的方块示意图。
图3为本发明一实施例的数据保护方法在读取程序部分的流程示意图。
图4为存储器控制器在写入程序中的一实施例的方块示意图。
图5为本发明一实施例的数据保护方法在写入程序部分的流程示意图。
100 主装置
200 存储器控制器
210 第一存储器
220 第二存储器
231-23n 编码器
240 判断单元
250 处理单元
300 汇流排
D1 读取数据
D11-D1n 第一区间数据
D2 写入数据
D21-D2n 第二区间数据
E11-E1n 第一编码
E21-E2n 第二编码
I1 读取指令
I2 写入指令
R1 判断结果
S10-S110 步骤
具体实施方式
为使本发明实施例的目的、特征和优点能更明显易懂,下文配合所附图式,作详细说明如下。
必须了解的是,使用于本说明书中的「包含」、「包括」等词,是用以表示存在特定的技术特征、数值、方法步骤、作业处理、元件和/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、元件、组件,或以上的任意组合。
“第一”、“第二”等词是用来修饰元件,并非用来表示元件之间的优先顺序或先后关系,而仅用来区别具有相同名字的元件。
图1为应用本发明一实施例的存储器控制器的系统的方块示意图。请参阅图1,系统可包含主装置100以及存储器控制器200。主装置100可透过汇流排300耦接于存储器控制器200,并借由汇流排300与存储器控制器200进行通信。在一些具体实施应用中,汇流排300可例如但不限定于先进高速汇流排(Advanced High performance Bus,AHB)。此外,主装置100可例如但不限于中央处理单元(CPU)。此外,存储器控制器200可为采用集成电路工艺制成的晶片。根据本发明其他实施例,一微控制器包括主装置100以及存储器控制器200,其中主装置100为中央处理单元。
值得注意的是,为了清楚阐述本发明,图1为一简化的方块图,其中仅显示出与本发明相关的元件。本领域技术人员应了解系统也可能包含其他元件,用以提供特定的功能。
图2为存储器控制器在读取程序中的一实施例的方块示意图,图4为存储器控制器在写入程序中的一实施例的方块示意图。请参阅图2与图4,存储器控制器200包含至少两个存储器(以下分别称之为第一存储器210与第二存储器220)、多个编码器231-23n、判断单元240以及处理单元250。处理单元250耦接于第一存储器210、第二存储器220、多个编码器231-23n以及判断单元240。其中,n为大于等于1的正整数。
值得注意的是,为了清楚阐述本发明,图2与图3为一简化的方块图,其中仅显示出与本发明相关的元件。本领域技术人员应了解存储器控制器也可能包含其他元件,用以提供特定的功能,因此,本发明并不限于图2与图4所示的内容。
第一存储器210与第二存储器220可用以储存各种数据。在此,第一存储器210可用以储存待读取的至少一读取数据D1。并且,第二存储器220可用以储存各读取数据D1对应的多个第一编码E11-E1n。以下,是以一个读取数据D1与其对应的一组第一编码E11-E1n为例来进行说明,但其数量并不以此为限。例如,当第一存储器210中储存了M个读取数据时,第二存储器220中可储存M组第一编码。其中,M为大于或等于1的正整数。
在一些实施例中,第一存储器210与第二存储器220为两个实体独立的存储器。在一些具体实施应用中,第一存储器210与第二存储器220可利用静态随机存取存储器(SRAM)或其他合适类型的存储器来实现。
处理单元250可执行本发明任一实施例的数据保护方法,并根据本发明任一实施例的数据保护方法控制第一存储器210、第二存储器220、多个编码器231-23n与判断单元240之间的协同运作。
在一些实施例中,处理单元250可为中央处理单元、微处理器(micro-processor)、数位信号处理器(DSP)、可程式化控制器、特殊应用集成电路(ASIC)、可编程逻辑器件(PLD)或其他类似的电路元件。此外,编码器231-23n与判断单元240可利用逻辑电路来实现。
存储器控制器200主要包含读取程序与写入程序。以下,先介绍存储器控制器200的读取程序。
图3为本发明一实施例的数据保护方法在读取程序部分的流程示意图。请参阅图2与图3,在数据保护方法的一实施例中,存储器控制器200的处理单元250可侦测是否收到主装置100传送的读取指令I1。在接收到读取指令I1时,处理单元250可根据读取指令I1中所载的读取地址从第一存储器210中取得读取数据D1(步骤S10),并且从第二存储器220中取得相应于读取数据D1的第一编码E11-E1n(步骤S20)。其中,读取数据D1为写入数据D2写入至第一存储器210之后的数据,且第一编码E11-E1n为处理单元250在写入写入数据D2至第一存储器210时利用编码器231-23n以汉明重量编码写入数据D2所生成的(关于写入程序部分在后再进行说明)。换言之,写入数据D2是指当初写入时的数据,而读取数据D1是指被读取到的数据。
在此,步骤S10与步骤S20的执行顺序可互调。需注意的是,储存于第一存储器210中的读取数据D1有可能受到攻击者的错误注入(Fault Injection)攻击而被窜改。因此,读取数据D1中可能有部分数据因被窜改而不同于当初写入的写入数据D2。
为了避免系统受到错误注入的攻击,在数据保护方法的一实施例中,在取得读取数据D1后,处理单元250可先根据多个区间配置与读取数据D1生成多个第一区间数据D11-D1n,并输出多个第一区间数据D11-D1n给编码器231-23n(步骤S30)。
在步骤S30的一实施例中,读取数据D1可包含多个读取位。处理单元250可根据配置规则生成多个区间配置。其中,各区间配置对应于读取数据D1的某些读取位,且这些区间配置可供处理单元250据此将读取数据D1划分出相应数量的第一区间数据D11-D1n。因此,当区间配置的数量有N个时,第一区间数据D11-D1n的数量便有N个。在此,各区间配置具有一配置位宽度。并且,处理单元250可根据各区间配置的配置位宽度将读取数据D1中第一数量个的读取位作为对应于此区间配置的第一区间数据。其中,第一数量相同于配置位宽度。此外,处理单元250可将各第一区间数据D11-D1n输出至编码器231-23n中之一,以进行后续处理。在此,编码器231-23n的数量等同于区间配置的数量。各区间配置对应至编码器231-23n中之一,且各编码器231-23n可根据相应的区间配置负责处理一个第一区间数据。
在一些实施例中,各区间配置的配置位宽度皆相同,且各第一区间数据D11-D1n包含相同数量的读取位。但本发明并非以此为限,在另一些实施例中,各区间配置的配置位宽度亦可不相同,且各第一区间数据D11-D1n所包含的读取位的数量亦不同。
在一些实施例中,各区间配置于读取数据D1中所对应的读取位可不相同,且各第一区间数据D11-D1n所包含的读取位也可不相同。换言之,各第一区间数据D11-D1n所包含的读取位是不同于(不重复于)另一个第一区间数据所包含的读取位。
举例而言,以读取数据D1包含128个读取位,且各区间配置对应到读取数据D1中16个读取位为例时,第一区间数据D11包含的读取位可为读取数据D1中的第1位至第16位元可以[15:0]来表示)。第一区间数据D12包含的读取位可为读取数据D1中的第17位至第32位(可以[31:16]来表示)。依此类推,第一区间数据D1n包含的读取位可为读取数据D1中的第113位至第128位(可以[127:112]来表示)。
需注意的是,在此虽是以各第一区间数据D11-D1n依序包含读取数据D1中连续16个读取位为例,但本发明并非仅限于此,各第一区间数据D11-D1n亦可包含读取数据D1中任意16个读取位。此外,在此虽然是以第一区间数据D11-D1n涵盖了读取数据D1中所有读取位为例,但本发明并非仅限于此,第一区间数据D11-D1n亦可仅涵盖了读取数据D1中的部分读取位。换言之,读取数据D1的某些读取位亦可不涵盖在任一第一区间数据D11-D1n中。
在另一些实施例中,区间配置中至少一者在读取数据D1中所对应的读取位可部分重复于另一区间配置于读取数据D1中对应的读取位元,且这些第一区间数据D11-D1n中至少一者所包含的读取位亦可部分重复于另一第一区间数据所包含的读取位。如此一来,可更加提升对错误注入的保护强度。
举例而言,当读取数据D1包含128个读取位,且各区间配置对应到读取数据D1中16个读取位时,除了读取数据D1中每16个连续的读取位可对应到一个第一区间数据(例如,第一区间数据D11为读取数据D1的[15:0],第一区间数据D12为读取数据D1的[31:16],…,第一区间数据D18为读取数据D1的[127:112]),读取数据D1中每16个为偶数且依序的读取位亦可对应到一个第一区间数据(例如,第一区间数据D19为读取数据D1的[30,28,…,2,0],第一区间数据D110为读取数据D1的[62,60,…,34,32],…,第一区间数据D112为读取数据D1的[126,124,…,98,96]),并且读取数据D1中每16个为奇数且依序的读取位元亦可对应到一个第一区间数据(例如,第一区间数据D113为读取数据D1的[31,29,…,3,1],第一区间数据D114为读取数据D1的[63,61,…,35,33],…,第一区间数据D116为读取数据D1的[127,125,…,99,97])。
需注意的是,在此虽是以连续的16个读取位为例,但本发明并非仅限于此,此16个读取位亦可为不连续的。此外,在此虽是以为偶数(或奇数)且依序的16个读取位为例,但本发明并非仅限于此,此些为偶数(或奇数)的16个读取位的顺序亦可为任意。
之后,处理单元250可利用多个编码器231-23n以汉明重量(Hamming Weight)对多个第一区间数据D11-D1n进行编码,以生成多个第二编码E21-E2n(步骤S40)。在步骤S40的一实施例中,处理单元250可利用各编码器231-23n计算出各第一区间数据D11-D1n所包含的第一数量个读取位中为第一位值的总位数量(步骤S41),并利用各编码器231-23n根据在步骤S41所得到的各第一区间数据D11-D1n的总位数量来转换出相应的第二编码E21-E2n(步骤S42)。
在此,各编码器231-23n是以二进制的方式将各第一区间数据D11-D1n的总位数量转换成各第二编码E21-E2n,但本发明并非以此为限,在另一些实施例中,各编码器231-23n亦可以八进制、十六进制或其他任何适用的进制来转换出第二编码E21-E2n。在本说明书中,是以二进制来进行说明。此外,第一位值是指“1”。由于各编码器231-23n是以汉明重量技术去生成各第二编码E21-E2n,因此各第二编码E21-E2n又可称为各第一区间数据D11-D1n的汉明权重。
举例而言,假设第一区间数据D11所包含的16个读取位为(0111 1010 0010 1011)时,编码器231根据汉明重量可计算出为第一位值的总位数量是9个,并且转换出的第二编码E21为(01001)。
在步骤S40之后,处理单元250便可利用判断单元240将步骤S20中所得到的第一编码E11-E1n和步骤S40中得到的第二编码E21-E2n进行比较(步骤S50),以确认数据是否遭到窜改。并且,判断单元240可在完成判断后生成判断结果R1回报给处理单元250。在一些具体应用中,判断单元240可利用比较电路来实现。此外,判断单元亦可整合至处理单元250中。
当步骤S50的判断结果R1为第二编码E21-E2n和第一编码E11-E1n相同时,表示读取数据D1应和当初处理单元250所写入的写入数据D2是相同的而并未被窜改,因此,处理单元250此时可将读取数据D1输出给主装置100,以完成整个读取动作(步骤S60)。
然而,当步骤S50的判断结果R1为有任一个第一编码E11-E1n与相应的第二编码E21-E2n不同时,表示读取数据D1和当初处理单元250所写入的写入数据D2已有不同并且可能被窜改,因此,处理单元250则可选择不输出读取数据D1给主装置100(步骤S70)。此外,处理单元250还可回报错误状态给主装置100,以告知主装置100此笔读取数据D1可能已被窜改。如此一来,便可避免主装置100因收到已遭窜改的错误数据而致使整个系统受到错误注入攻击。
以下介绍存储器控制器200的写入程序。图5为本发明一实施例的数据保护方法于写入程序部分的流程示意图。请参阅图4与图5。在数据保护方法的一实施例中,处理单元250可根据主装置100所传送的写入指令I2将写入数据D2写入至第一存储器210(步骤S80)。此外,处理单元250可根据多个区间配置与写入数据D2生成多个第二区间数据D21-D2n,并输出多个第二区间数据D21-D2n给编码器231-23n(步骤S90)。
在步骤S90的一实施例中,写入数据D2可包含多个写入位。处理单元250可根据配置规则生成多个区间配置。其中,各区间配置对应于写入数据D2的某些写入位,且这些区间配置可供处理单元250据此将写入数据D2划分出相应数量的第二区间数据D21-D2n。因此,当区间配置的数量有N个时,第二区间数据D21-D2n的数量便有N个。并且,处理单元250可根据各区间配置的配置位宽度将读写入数据D2中第一数量个的写入位作为对应于此区间配置的第二区间数据。其中,第一数量相同于配置位宽度。此外,处理单元250可将各第二区间数据D21-D2n输出至编码器231-23n中的一以进行后续处理。在此,编码器231-23n的数量等同于第二区间数据D21-D2n的数量,且各编码器231-23n负责处理一个第二区间数据。
在一些实施例中,各区间配置的配置位宽度皆相同,且各第二区间数据D21-D2n包含相同数量的写入位。但本发明并非以此为限,在另一些实施例中,各区间配置的配置位宽度亦可不相同,且各第二区间数据D21-D2n所包含的写入位的数量亦不同。
在一些实施例中,各区间配置于写入数据D2中所对应的读取位可不相同,且各第二区间数据D21-D2n所包含的写入位亦可不相同。换言之,各第二区间数据D21-D2n所包含的写入位是不同于(不重复于)另一个第二区间数据所包含的写入位。
举例而言,以写入数据D2包含128个写入位,且各区间配置对应到写入数据D1中16个写入位为例时,第二区间数据D21包含的写入位可为写入数据D2中的第1位至第16位(可以[15:0]来表示)。第二区间数据D22包含的写入位可为写入数据D2中的第17位至第32位(可以[31:16]来表示)。依此类推,第二区间数据D2n包含的写入位可为写入数据D2中的第113位至第128位(可以[127:112]来表示)。
需注意的是,在此虽是以各第二区间数据D21-D2n依序包含写入数据D2中连续16个写入位为例,但本发明并非仅限于此,各第二区间数据D21-D2n亦可包含写入数据D2中任意16个写入位。此外,在此虽然是以第二区间数据D21-D2n涵盖了写入数据D2中所有读取位为例,但本发明并非仅限于此,第二区间数据D21-D2n亦可仅涵盖了写入数据D2中的部分写入位。换言之,写入数据D2的某些写入位亦可不涵盖于任一第二区间数据D21-D2n之中。
在另一些实施例中,区间配置中的至少一者在写入数据D2中所对应的写入位可部分重复于另一区间配置于写入数据D2中所对应的写入位,且这些第二区间数据D21-D2n中的至少一者包含的写入位亦可部分重复于另一第二区间数据所包含的写入位。如此一来,可更加提升对错误注入的保护强度。
举例而言,当写入数据D2包含128个写入位,且各区间配置对应到写入数据D2中16个读取位时,除了写入数据D2中每16个连续的读取位可对应到一个第二区间数据(例如,第二区间数据D21为写入数据D2的[15:0],第二区间数据D22为写入数据D2的[31:16],…,第二区间数据D28为写入数据D2的[127:112]),写入数据D2中每16个为偶数且依序的写入位也可对应到一个第二区间数据(例如,第二区间数据D29为写入数据D2的[30,28,…,2,0],第二区间数据D210为写入数据D2的[62,60,…,34,32],…,第二区间数据D212为写入数据D2的[126,124,…,98,96]),并且写入数据D2中每16个为奇数且依序的写入位亦可对应到一个第二区间数据(例如,第二区间数据D213为写入数据D2的[31,29,…,3,1],第二区间数据D214为写入数据D2的[63,61,…,35,33],…,第二区间数据D216为写入数据D2的[127,125,…,99,97])。
需注意的是,在此虽是以连续的16个写入位为例,但本发明并非仅限于此,此16个写入位亦可为不连续的。此外,在此虽是以为偶数(或奇数)且依序的16个写入位为例,但本发明并非仅限于此,此些为偶数(或奇数)的16个写入位的顺序亦可为任意。另外,写入程序中所采用的配置规则是相同于读取程序中采用的配置规则。
在步骤S90之后,处理单元250可利用多个编码器231-23n以汉明重量对多个第二区间数据D21-D2n进行编码,以生成多个第一编码E11-E1n(步骤S100)。在步骤S90的一实施例中,处理单元250可利用各编码器231-23n计算出各第二区间数据D21-D2n包含的第一数量个写入位中为第一位值的总位数量(步骤S101),并利用各编码器231-23n根据在步骤S41得到的各第二区间数据D21-D2n的总位数量来转换出相应的第一编码E11-E1n(步骤S102)。于此,各编码器231-23n是以二进制方式将各第二区间数据D21-D2n的总位数量转换成各第一编码E11-E1n。其中,各第二区间数据D21-D2n的总位数量转换成各第一编码E11-E1n的详细转换方式可参阅前方例示。由于各编码器231-23n是以汉明重量技术去生成各第一编码E11-E1n,因此各第一编码E11-E1n又可称为各第二区间数据D21-D2n的汉明权重。
在转换出第一编码E11-E1n之后,处理单元250便可将所得的第一编码E11-E1n存入至第二存储器120之中,以待读取程序时供校验之用(步骤S110)。
在一些实施例中,因步骤S80是写入至第一存储器210,而步骤S110是写入至第二存储器220,故步骤S80写入动作和步骤S110的写入动作是可同步执行的,以节省写入时间。
需注意的是,在存储器控制器200所用的配置规则越多时,数据将可被划分的更细、更复杂,如此一来对错误注入的保护能力也将更高。因此,本领域技术人员应能理解各种可能的配置规则皆应涵盖于本发明的范围内。
综上所述,本发明实施例提供一种存储器控制器与数据保护方法,其在读取程序中借由将在写入程序中已存至第二存储器的多个第一编码和根据读取到的读取数据所产生的多个第二编码进行比对,以确认读取数据是否已和当初写入至第一存储器中的写入数据有所不同。并且,本发明实施例的存储器控制器与数据保护方法在任一第二编码与相应的第一编码不相同时不输出读取数据,以由此避免系统受到错误注入的攻击。
本发明的实施例如上,上述实施例并非用以限定本发明的范围,本领域技术人员在不脱离本发明实施例的实质和范围内,当可做些许的更动与润饰,因此本发明的保护范围当视权利要求书界定为准。

Claims (8)

1.一种数据保护方法,其特征在于,包括:
根据一读取指令从一第一存储器中取得一读取数据;
从一第二存储器中取得相应于所述读取数据的多个第一编码;
根据多个区间配置与所述读取数据产生多个第一区间数据;
利用多个编码器以汉明重量编码所述多个第一区间数据,以生成多个第二编码;
比较所述多个第一编码与所述多个第二编码;
在所述多个第一编码与所述多个第二编码相同时,输出所述读取数据;及
在任一所述第一编码与相应的所述第二编码不同时,不输出所述读取数据;还包括:
根据一写入指令写入一写入数据至所述第一存储器中,其中所述读取数据为所述写入数据写入至所述第一存储器之后的数据;
根据所述多个区间配置与所述写入数据生成多个第二区间数据;
利用所述多个编码器以汉明重量编码所述第二区间数据,以生成所述多个第一编码;及
将所述多个第一编码储存至该第二存储器中,
其中写入所述写入数据至所述第一存储器中的写入动作和将所述多个第一编码储存至该第二存储器中的写入动作是同步执行。
2.如权利要求1所述的数据保护方法,其特征在于,
其中所述读取数据包含多个读取位;
其中生成所述第一区间数据的步骤包括:分别根据各所述区间配置以所述读取数据中第一数量个的所述读取位作为所述第一区间数据,且各所述第一区间数据的所述读取位不同于另一所述第一区间数据的所述读取位。
3.如权利要求1所述的数据保护方法,其特征在于,
其中所述读取数据包含多个读取位;
其中生成所述第一区间数据的步骤包括:分别根据各所述区间配置以所述读取数据中第一数量个的所述读取位作为所述第一区间数据,且所述第一区间数据中的至少一者的所述读取位和所述第一区间数据中另一者的所述读取位局部重复。
4.如权利要求1所述的数据保护方法,其特征在于,
其中所述写入数据包含多个写入位;
其中生成所述第二区间数据的步骤包括:分别根据各所述区间配置以所述写入数据中第一数量个的所述写入位作为所述第二区间数据,且所述第二区间数据中至少一者的所述写入位和所述第二区间数据中另一者的所述写入位局部重复。
5.一种存储器控制器,其特征在于,包含:
一第一存储器,用以储存一读取数据;
一第二存储器,用以储存相应于所述读取数据的多个第一编码;
多个编码器;
一判断单元;及,
一处理单元,用以根据一读取指令从所述第一存储器中取得所述读取数据、根据多个区间配置与所述读取数据生成多个第一区间数据,并利用所述多个编码器以汉明重量编码所述多个第一区间数据以生成多个第二编码,且所述处理单元从所述第二存储器中取得所述第一编码,并利用所述判断单元比较所述多个第一编码与所述多个第二编码;其中所述处理单元在所述判断单元判断所述多个第一编码与所述多个第二编码相同时输出该读取数据,在所述判断单元判断任一所述第一编码与相应的所述第二编码不同时不输出所述读取数据;
其中所述处理单元还根据一写入指令写入一写入数据至所述第一存储器中、根据所述区间配置与所述写入数据生成多个第二区间数据、利用所述编码器根据所述写入数据生成所述多个第一编码,并且将所述多个第一编码储存至所述第二存储器中,其中所述读取数据为所述写入数据写入至所述第一存储器之后的数据,
其中写入所述写入数据至所述第一存储器中的写入动作和将所述多个第一编码储存至该第二存储器中的写入动作是同步执行。
6.如权利要求5所述的存储器控制器,其特征在于,其中所述读取数据包含多个读取位,所述处理单元分别根据各所述区间配置以所述读取数据中第一数量个的所述读取位作为所述第一区间数据,且各所述第一区间数据的所述读取位不同于另一所述第一区间数据的所述读取位。
7.如权利要求5所述的存储器控制器,其特征在于,其中所述读取数据包含多个读取位;
所述处理单元分别根据各所述区间配置以所述读取数据中第一数量个的所述读取位作为所述第一区间数据,且所述多个第一区间数据中的至少一者的所述读取位和所述多个第一区间数据中的另一者的所述读取位元局部重复。
8.如权利要求5所述的存储器控制器,其特征在于,其中所述写入数据包含多个写入位,所述处理单元分别根据各所述区间配置以所述写入数据中第一数量个的所述写入位作为所述第二区间数据,且各所述第二区间数据的所述写入位不同于另一所述第二区间数据的所述写入位。
CN201911372415.0A 2019-09-09 2019-12-27 存储器控制器与数据保护方法 Active CN112464298B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW108132367 2019-09-09
TW108132367A TWI714248B (zh) 2019-09-09 2019-09-09 記憶體控制器與資料保護方法

Publications (2)

Publication Number Publication Date
CN112464298A CN112464298A (zh) 2021-03-09
CN112464298B true CN112464298B (zh) 2024-04-12

Family

ID=74670032

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911372415.0A Active CN112464298B (zh) 2019-09-09 2019-12-27 存储器控制器与数据保护方法

Country Status (2)

Country Link
CN (1) CN112464298B (zh)
TW (1) TWI714248B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2946787A1 (fr) * 2009-06-16 2010-12-17 St Microelectronics Rousset Procede de detection d'une attaque par injection de faute d'un dispositif de memoire, et dispositif de memoire correspondant
CN105513638A (zh) * 2014-10-14 2016-04-20 慧荣科技股份有限公司 数据储存装置及其数据存取方法
CN106445724A (zh) * 2015-08-11 2017-02-22 Hgst荷兰公司 与受保护数据分开存储奇偶校验数据

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5917838A (en) * 1998-01-05 1999-06-29 General Dynamics Information Systems, Inc. Fault tolerant memory system
JP4224777B2 (ja) * 2003-05-13 2009-02-18 ソニー株式会社 復号方法および復号装置、並びにプログラム
EP1912148A1 (en) * 2006-10-09 2008-04-16 Axalto S.A. Protection against side channel attacks with an integrity check
US20080256419A1 (en) * 2007-04-13 2008-10-16 Microchip Technology Incorporated Configurable Split Storage of Error Detecting and Correcting Codes
US8397139B1 (en) * 2009-02-09 2013-03-12 Marvell International Ltd. Method and apparatus for processing nuisance data
US10176040B2 (en) * 2016-04-05 2019-01-08 Micron Technology, Inc. Error correction code (ECC) operations in memory
US10289486B2 (en) * 2017-07-13 2019-05-14 Omnivision Technologies, Inc. Memory with pattern oriented error correction code

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2946787A1 (fr) * 2009-06-16 2010-12-17 St Microelectronics Rousset Procede de detection d'une attaque par injection de faute d'un dispositif de memoire, et dispositif de memoire correspondant
CN101923903A (zh) * 2009-06-16 2010-12-22 St微电子(鲁塞)有限公司 检测对存储器的故障注入式攻击的方法及相应的存储器
CN105513638A (zh) * 2014-10-14 2016-04-20 慧荣科技股份有限公司 数据储存装置及其数据存取方法
CN106445724A (zh) * 2015-08-11 2017-02-22 Hgst荷兰公司 与受保护数据分开存储奇偶校验数据

Also Published As

Publication number Publication date
CN112464298A (zh) 2021-03-09
TWI714248B (zh) 2020-12-21
TW202111547A (zh) 2021-03-16

Similar Documents

Publication Publication Date Title
CN107943609B (zh) 存储器模块、存储器控制器和系统及其相应操作方法
US6044483A (en) Error propagation operating mode for error correcting code retrofit apparatus
US8612828B2 (en) Error correction mechanisms for 8-bit memory devices
CN111143107B (zh) 一种fpga单粒子反转校验电路和方法
KR20190057810A (ko) 메모리 컨트롤러 및 메모리 모듈을 갖는 메모리 시스템 및 그 메모리 시스템에서의 데이터 처리 방법
KR100865195B1 (ko) 인접 기호 오류 수정을 위한 방법, 시스템, 장치와 검출코드
KR20220104031A (ko) 오류 정정 시스템
CN115552422A (zh) 用于加速神经网络的存储器故障映射
US10514980B2 (en) Encoding method and memory storage apparatus using the same
US10191801B2 (en) Error correction code management of write-once memory codes
CN106528437B (zh) 数据储存系统与其相关方法
CN112464298B (zh) 存储器控制器与数据保护方法
CN109766214A (zh) 一种最优h矩阵生成方法及装置
CN116569264A (zh) 使用有毒数据单位修改奇偶校验数据
CN113868012A (zh) 一种实现错误检查和纠正码功能的方法和装置
KR880000577B1 (ko) 메모리 시스템
US10866854B2 (en) System and method for reducing ECC overhead and memory access bandwidth
CN115827308A (zh) 一种固态硬盘数据纠错方法及一种固态硬盘
CN115954037B (zh) 提高efuse芯片良率的方法、装置和设备及存储介质
CN112540866B (zh) 存储器装置及其数据存取方法
US11663118B2 (en) Address vectors for data storage elements
JP6842098B1 (ja) デバッグ装置及びデバッグ方法
US20200313699A1 (en) Method and apparatus for generating optimal h matrix
CN117348801A (zh) 数据存储方法、微处理器及计算机设备
CN114360624A (zh) 一种闪存结构、数据处理方法、存储介质及电子设备

Legal Events

Date Code Title Description
PB01 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