掌桥专利:专业的专利平台
掌桥专利
首页

错误检测

文献发布时间:2023-06-19 10:06:57


错误检测

本申请要求于2019年9月4日提交的编号为1909723的法国专利申请的优先权权益,其全部内容在法律允许的最大范围内通过引用的方式并入于此。

技术领域

本公开总体上涉及电子系统和电路,并且更具体地,涉及包括存储器的电子系统和电路。本公开还更具体地涉及在这些存储器中的数据的读取和写入,并且更具体地,涉及在数据的读取和写入期间的错误的检测。

背景技术

在系统或电子电路的操作期间,数据管理通常需要使用一个或数个存储器。例如,在被使用之前或之后,操作数据被写入到这些存储器中和/或从这些存储器中被读取。

在存储器中的数据的读取和/或写入期间会遇到许多错误或故障。例如,读取错误可以包括在不正确的地址读取数据。写入错误可以包括在不正确的地址写入数据。这些错误可以是偶然的或故意的。例如,故意的错误可以是通过由例如攻击者实施的故障注入方法所产生的错误,其目的是改变电子系统的操作。

期望的是能够至少部分地改善用于在存储器中读取和/或写入数据的方法的某些方面,并且更具体地,期望能够改善用于检测在存储器中读取和/或写入数据时的错误的方法的某些方面。

存在用于在存储器中读取和/或写入数据的更可靠的方法的需要。

存在用于检测在存储器中读取和/或写入数据时的错误的更好的执行方法的需要。

存在用于检测在读取和/或写入时的错误的方法的需要,该方法被配置为检测数据被写入不正确的地址的错误。

发明内容

一个实施例解决了用于在存储器中写入数据的已知方法的全部或一些缺点。

一个实施例解决了用于读取在存储器中的数据的已知方法的全部或一些缺点。

一个实施例解决了用于检测在存储器中读取和/或写入时的错误的已知方法的全部或一些缺点。

一个实施例提供了一种用于在存储器中写入数据的方法,其中:表示所述数据和纠错码或检错码的二进制字被至少划分成第一部分和第二部分;以及所述第一部分被写入在第一存储器电路中的逻辑地址处;并且所述第二部分被写入在第二存储器电路中的所述逻辑地址处,第二存储器电路被配置为存储与所述第一存储器电路所存储的二进制字一样多的二进制字,所述纠错码或检错码取决于所述数据和所述地址。

根据一个实施例,所述第一部分和所述第二部分尺寸相等。

根据一个实施例,二进制字是所述数据和所述纠错码或检错码的级联。

根据一个实施例,所述数据和所述地址由单个第一处理器提供。

根据一个实施例,所述数据和所述地址由至少一个第二处理器和第三处理器提供。

根据一个实施例,将由第二处理器提供的所述数据与由第三处理器提供的所述数据进行比较,并且将由第二处理器提供的所述地址与由第三处理器提供的所述地址进行比较。

根据一个实施例,第二处理器将所述地址提供给至少两个所述存储器电路中的一个存储器电路,并且第三处理器将所述地址提供给至少两个所述存储器电路中的另一个存储器电路。

根据一个实施例,第二处理器将所述地址提供给至少两个所述存储器电路。

根据一个实施例,所述第一存储器电路和所述第二存储器电路尺寸相同。

根据一个实施例,至少两个所述存储器电路的内部控制信号被比较。

另一个实施例提供了一种用于读取根据上文所公开的方法而写入的数据的方法。

根据一个实施例,通过将在所述第一存储器电路和所述第二存储器电路中读取的所述第一部分和所述第二部分进行级联,来形成所述二进制字。

根据一个实施例,通过从二进制字去除纠错码或检错码来获得数据。

另一实施例提供了一种用于检测通过上文所公开的方法写入数据时的错误的方法,其中,再次从由上文所公开的方法读取的数据计算纠错码或检错码。

根据一个实施例,验证纠错码或检错码。

另一实施例提供了一种用于检测在存储器中的数据的写入错误的方法,其中:表示所述数据的二进制字的、至少两个尺寸相等的部分被存储在至少两个相同的存储器电路中的相同地址处;并且该两个存储器电路的内部控制信号被比较。

根据一个实施例,内部信号包括字信号。

根据一个实施例,内部信号包括存储器电路的一个存储器电路的选择信号。

根据一个实施例,内部信号包括写激活信号。

根据一个实施例,内部信号包括选择/列号信号。

根据一个实施例,内部信号包括选择/行号信号。

根据一个实施例,从所述数据和纠错码或检错码获得二进制字,所述纠错码或检错码表示所述数据和所述地址。

根据一个实施例,通过所述数据与纠错码或检错码的级联来获得二进制字。

根据一个实施例,纠错码或检错码表示所述数据和所述地址。

根据一个实施例,通过签名方法获得纠错码或检错码。

附图说明

在以下通过示例而非限制的方式给出的对特定实施例的描述中,将参考附图对上述特征和优点以及其他特征进行详细描述,在附图中:

图1以框图形式示意性地示出了电子系统的一个实施例的架构的一部分;

图2以框图形式示意性地示出了图1的系统的架构的另一部分;

图3以框图形式示意性地示出了电子系统的一个实施例的架构的一部分;

图4以框图形式示意性地示出了图3的系统的架构的另一部分;

图5以框图形式示意性地示出了电子系统的一个实施例的架构的一部分;

图6以框图形式示意性地示出了图5的系统的架构的另一部分;

图7以框图形式示意性地示出了电子系统的另一实施例的架构的一部分;

图8以框图形式示意性地示出了图7的系统的架构的另一部分;

图9以框图形式示意性地示出了存储器电路的架构的一部分;并且

图10以框图形式示意性地示出了电子系统的另一实施例的架构的一部分。

具体实施方式

在各个附图中,相似的特征已经由相似的附图标记表示。特别地,在各个实施例之间共有的结构和/或功能特征可以具有相同的附图标记并且可以被布置相同的结构、尺寸和材料特性。

为了清楚起见,仅示出和详细描述了对于理解本文所述实施例有用的操作和元件。

除非另有说明,否则当提到两个元件连接在一起时,这表示没有除导体以外的任何中间元件的直接连接,并且当提到两个元件耦合在一起的时,这表示这两个元件可以连接或者它们可以经由一个或多个其他元件耦合。

在以下公开中,除非另有说明,否则当提及诸如术语“前”、“后”、“顶部”、“底部”、“左”、“右”等的绝对位置限定词时,或当提及诸如术语“上方”、“下方”、“较高”、“较低”等的相对位置限定词,或诸如“水平”、“竖直”等的定向限定词时,参考在附图中所示出的方向。

除非另有说明,否则表述“大约”、“约”、“基本上”和“……的量级”表示在10%以内,优选在5%以内。

在本公开的其余部分中,将初始二进制字划分、切割或分离成数个部分将指从初始二进制字的位形成数个次级二进制字。更具体地,每个次级二进制字被构成为使得所有次级二进制字以特定顺序的级联,产生初始二进制字。

此外,在本说明书的其余部分中,逻辑地址是指由处理器生成、并打算用于存储器电路的地址。该地址由与存储器电路相关联的地址解码电路解码,并且该地址解码电路根据在存储器平面中的坐标(行-列)提供物理电路。

图1以框图形式示意性地示出了电子系统1的一个实施例的架构的部分10。该部分10被配置为将数据写入电子电路1的存储器中。

部分10包括:处理器101(CPU);电路102(EDC GEN),用于生成纠错码或检错码;电路103(EDC ADD),用于形成二进制字;电路104(SPLIT),用于划分二进制字;两个存储器电路105(MEM1)和106(MEM2);以及地址解码电路107(ADD DEC)。

处理器101是被配置为请求在存储器105和106中写入数据的处理器。处理器101提供将要写入的数据Data1和逻辑地址AddL1作为输出。地址AddL1是数据Data1必须被写入到存储器中的逻辑地址。例如,逻辑地址AddL1是二进制字,其高权重的位指示二进制字必须被写入的存储器电路的行,而低权重的位指示二进制字必须被写入的存储器电路的列。

用于生成纠错码或检错码的电路102是被配置为计算表示数据Data1和逻辑地址AddL1的检错码(EDC)EDC1或纠错码(ECC)的电路。因此,电路102接收数据Data1和逻辑地址AddL1作为输入,并且提供纠错码或检错码EDC1作为输出。例如,通过使用签名算法来获得检错码EDC1。

用于形成二进制字的电路103是被配置为形成表示数据Data1和码EDC1的二进制字Code1的电路。电路103接收数据Data1和码EDC1作为输入,并且电路103提供二进制字Code1作为输出。作为示例,数据Data1和码EDC1由电路103级联,以形成二进制字Code1。数据Data1和码EDC1级联以便形成二进制字Code1的顺序不重要。

二进制字划分电路104是被配置为将二进制字Code1划分成数个二进制字的电路。电路104接收二进制字Code1作为输入,并且在该示例中,提供两个二进制字Code1A和Code1B作为输出。换句话说,二进制字Code1A和Code1B的级联以特定顺序产生二进制字Code1。例如,二进制字Code1A和Code1B具有不同的尺寸。作为变型,二进制字Code1A和Code1B具有相同的尺寸,也就是说,它们各自包括二进制字Code1的位的一半。

地址解码电路107是被配置为从逻辑地址提供可由存储器电路读取的物理地址的电路。电路107接收逻辑地址AddL1作为输入,并且电路107提供两个物理地址Add1A和Add1B作为输出。电路107更具体地使得能够从由处理器101提供的逻辑地址AddL1来定义两个物理地址Add1A和Add1B,在该两个物理地址Add1A和Add1B处,二进制字Code1A和Code1B将被写入存储器电路105和106中。例如,地址Add1A和Add1B是相同的。

存储器电路105和106被配置为分别在地址Add1A和Add1B处存储二进制字Code1A和Code1B。因此,存储器105接收二进制字Code1A和地址Add1A作为输入,并且存储器106接收二进制字Code1B和地址Add1B作为输入。存储器电路105和106被配置为存储相同数目的二进制字。存储器电路105和106例如是易失性存储器。作为示例,存储器电路105和106具有相同的尺寸。

作为变型,部分10可以包括多于两个的、具有相同结构和尺寸的存储器电路。在这种情况下,电路104将被配置为提供与在部分10中包括的存储器电路一样多的二进制字。换句话说,电路104被配置为将二进制字Code1划分为与包括在部分10中的存储器电路一样多的部分。额外的,电路107被配置为从逻辑地址AddL1提供与在部分10中包括的存储器电路一样多的物理地址。

用于将实现系统1的部分10的数据Data1写入存储器中的方法如下。当处理器101希望将数据Data1存储在存储器中时,它生成希望将数据存储于其上的地址AddL1。然后,处理器101将数据Data1和逻辑地址AddL1提供给电路102,由此电路102生成码EDC1。并行地,由电路107将地址AddL1转换为两个物理地址Add1A和Add1B。接下来,由电路103使用数据Data1和码EDC1来提供二进制字Code1。然后,由电路104将二进制字Code1分为两个部分中(两个二进制字Code1A和Code1B)。二进制字Code1A和Code1B分别被存储在存储器电路105中和存储器电路106中的地址Add1A和地址Add1B处。因此,数据Data1以二进制字Code1A和Code1B的形式被存储在存储器电路105和106中。

图2以框图形式示意性地示出了电子系统1的实施例的架构的另一部分11,该架构的部分10结合图1而被描述。部分11被配置为将数据写入电子系统1的存储器中。更具体地,在图2中,部分11被配置为读取写入在结合图1所描述的地址AddL1处的数据Data1。

部分11包括:处理器111(CPU);电路112(EDC CHECK),用于检查纠错码或检错码;电路113(EDC REMOVAL),用于恢复数据;电路114(MERGE),用于将二进制字级联;两个相同的存储器电路105(MEM1)和106(MEM2);以及地址解码电路107(ADD DEC)。

处理器111是被配置为请求读取在存储器105和106中的数据的处理器。处理器111提供地址(例如结合图1描述的逻辑地址AddL1)作为输出,并且接收与该地址相对应的数据(即结合图1所述的数据Data1)作为输入。处理器111例如是与结合图1所描述的与处理器101相同的处理器,但是作为变型,处理器111可以是与结合图1所描述的处理器101分离的处理器。

用于检查纠错码或检错码的电路112是被配置为检查与数据Data1相关联的码EDC1的电路。电路112接收二进制字Code1和逻辑地址AddL1作为输入,并且提供错误信号ErrEDC1作为输出。为了检查码EDC1,电路112从二进制字Code1找到数据Data1和码EDC1。接下来,电路112从数据Data1和由处理器111提供的地址AddL1计算新的检错码或纠错码。然后将新的码与码EDC1进行比较。如果它们相同,则没有错误。如果它们不同,则有错误。任何错误均通过信号ErrEDC1的方式来指示。结合图1所公开的电路102例如是电路112的一部分,但是作为变型,电路102和112可以是分离的电路。

数据恢复电路113是被配置为从二进制字Code1恢复数据Data1的电路。电路113接收二进制字Code1作为输入,并且提供数据Data1作为输出。例如,当二进制字Code1是数据Data1和码EDC1的级联时,电路113被配置为截断二进制字Code1的码EDC1,并且因此仅保留数据Data1。电路113和结合图1所描述的电路103可以例如是相同电路的一部分,或者作为变型,可以是两个分离的电路。

二进制字级联电路114是被配置为从两个二进制字Code1A和Code1B找到二进制字Code1的电路。因此,电路114接收二进制字Code1A和Code1B作为输入,并且提供二进制字Code1作为输出。电路114具体地被配置为以正确的顺序级联二进制字Code1A和Code1B,以便找到初始二进制字Code1。电路114和结合图1描述的电路104可以例如是相同电路的一部分,或者作为变型,可以是两个分离的电路。

作为变型,部分10和11可以包括多于两个的存储器电路。在这种情况下,电路114被配置为接收与在部分10和11中所包括的存储器电路一样多的二进制字作为输入。换句话说,电路114被配置为从与部分10和11中所包括的存储器电路一样多的二进制字接收二进制字Code1。另外,在这种情况下,电路107被配置为提供所需数目的物理地址。

一种用于在存储器中读取实现系统1的部分11的数据Data1的方法如下。在手头是数据Data1的情况下,处理器111向电路107提供其希望在何处读取数据的地址AddL1。电路107向存储器105和106提供来自逻辑地址AddL1的物理地址Add1A和Add1B。二进制字Code1A被存储在存储器电路105的地址Add1A处,并且二进制字Code1B被存储在存储器电路106的地址Add1B处。存储器电路105和106向电路114提供两个二进制字Code1A和Code1B,以重新形成二进制字Code1。电路113的任务是从二进制字Code1中提取数据Data1,并且将数据Data1发送给处理器111。电路112进而通过检查码EDC1来检查是否没有错误。

该实施例的一个优点是,在读取方法期间,电路112使得能够检测到数据Data1的寻址错误。实际上,码EDC1表示数据Data1和被写入数据的逻辑地址AddL1,通过将码EDC1与从由处理器111提供的逻辑地址AddL1生成的码进行比较,使得可以检测到在逻辑地址中的差异。

图3以框图形式示意性地示出了电子系统2的一个实施例的架构的部分20。部分20被配置为将数据写入电子电路2的存储器中。

部分20包括:两个处理器201(CPU1)和202(CPU2);电路203(EDC Gen),用于生成纠错码或检错码;电路204(EDC ADD),用于形成二进制字;电路205(SPLIT),用于划分二进制字;两个存储器电路206(MEM1)和207(MEM2);两个地址解码电路209A(ADD DEC 1)和209B(ADD DEC 2);以及比较电路208(COMP)。

处理器201和202是具有相同结构、并且被配置为提供相同数据和控制的处理器。处理器201和202更具体地是被配置为请求将数据写入存储器206和207中的处理器。每个处理器201、202提供数据Data2和逻辑地址AddL2作为输出。地址AddL2是数据Data2必须被写入的逻辑地址。并行使用两个处理器201和202(出其他之外)使得通过冗余检查来检测错误成为可能。

用于生成纠错码或检错码的电路203是与结合图1公开的电路102相同的电路。电路203接收来自处理器201的数据Data2和来自处理器201的逻辑地址AddL2作为输入。电路203提供纠错码或检错码EDC2作为输出。

用于形成二进制字的电路204是与结合图1公开的电路103相同的电路。电路204接收来自处理器201的码EDC2和数据Data2作为输入,并且提供二进制字Code2作为输出。

用于划分二进制字的电路205是与结合图1公开的电路104相同的电路。电路205接收二进制字Code2作为输入,并且提供与二进制字Code2的两个部分相对应的两个二进制字Code2A和Code2B作为输出。

电路209A和209B是类似于结合图1公开的电路107的电路。电路209A接收来自处理器201的逻辑地址AddL2,并且提供物理地址Add2A作为输出。电路209B接收来自处理器202的逻辑地址AddL2,并且提供物理地址Add2B作为输出。

存储器电路206和207被配置为分别在地址Add2A和Add2B处存储二进制字Code2A和Code2B。存储器电路206和207是被配置为存储相同数目的二进制字的存储器电路。存储器电路206接收二进制字Code2A以及来自电路209A的地址Ad2A作为输入。存储器电路207接收二进制字Code2B以及来自电路209B的地址Ad2B作为输入。存储器电路206和207例如是易失性存储器。作为示例,存储器电路206和207具有相同的尺寸。

作为变型,部分20可以包括多于两个的具有相同结构和尺寸的存储器电路。在这种情况下,电路205将被配置为提供与在部分20中包括的存储器电路一样多的、尺寸相等的二进制字。换句话说,电路205被配置为将二进制字Code2划分为与在部分20中包括的存储器电路一样多的二进制字。另外,在这种情况下,电路209A和209B被配置为从逻辑地址AddL2提供与在部分20中包括的存储器电路一样多的物理地址。

比较电路208是被配置为比较由处理器201和202提供的数据Data2和由处理器201和202提供的逻辑地址AddL2的电路。如果由两个处理器201和202发送的数据Data2不同、或由两个处理器201和202发送的地址AddL2不同,则检测到错误。电路208接收由两个处理器201和202发送的数据Data2以及由两个处理器201和202发送的地址AddL2作为输入,并且提供错误信号ErrComp20作为输出。由电路208检测到的任何错误都经由错误信号ErrComp20发送。

一种用于将实现系统2的部分20的数据Data2写入存储器的方法。当处理器201和202希望将数据Data2存储在存储器中时,处理器201和202生成它们希望存储数据Data2的逻辑地址AddL2。然后,处理器201将数据Data2和逻辑地址AddL2提供给电路203,由此电路203生成码EDC2。并行地,逻辑地址AddL2由电路209A和209B分别转换为两个物理地址Add2A和Add2B。因此,码EDC2表示由处理器201提供的数据Data2和地址AddL2。接下来,由电路204使用数据Data2和码EDC2来提供二进制字Code2。接下来,由电路205将二进制字Code2分为两个二进制字Code2A和Code2B。二进制字Code2A和Code2B分别被存储在存储器电路206中的地址Add2A处和存储器电路207中的地址Add2B处。

图4以框图形式示意性地示出了电子系统2的实施例的架构的另一部分21,该架构的部分20结合图3进行了描述。部分21被配置为用于将数据写入电子系统2的存储器中。更具体地,在图4中,部分21被配置为读取写入在结合图3所描述的逻辑地址AddL2处的数据Data2。

部分21包括:两个处理器211(CPU1)和212(CPU2);电路213(EDC CHECK),用于检查纠错码或检错码;电路214(EDC删除),用于恢复数据;电路215(MERGE),用于将二进制字级联;以及两个相同的存储器电路206(MEM1)和207(MEM2);两个地址解码电路209A(ADD DEC1)和209B(ADD DEC 2);以及比较电路218(COMP)。

处理器211和212是与处理器111相同的处理器。处理器211和212均提供逻辑地址AddL2作为输出,处理器211和212均希望在逻辑地址AddL2处读取数据,并且处理器211和212均接收数据Data2。处理器211和212例如是与结合图3描述的处理器201和202相同的处理器,但是作为变型,处理器211和212可以是与处理器201和202分离的处理器。

用于检查纠错码或检错码的电路213是与结合图2公开的电路112相同的电路。电路213接收由处理器211发送的逻辑地址AddL2以及二进制字Code2作为输入,并且提供错误信号ErrEDC2作为输出。电路213和结合图3描述的电路203可以例如是相同电路的部分,或者作为变型,可以是两个分离的电路。

用于恢复数据的电路214是与结合图2公开的电路113相同的电路。电路214接收二进制字Code2作为输入,并且提供数据Data2作为输出。

用于级联二进制字的电路215是与结合图2公开的电路114相同的电路。电路215接收两个二进制字Code2A和Code2B作为输入,并且提供二进制字Code2作为输出。电路215和结合图3描述的电路205可以例如是相同电路的一部分,或者作为变型可以是分离的电路。

电路209A和209B分别将逻辑地址AddL2转换为物理地址Add2A和Add2B。电路209A接收来自处理器211的逻辑地址AddL2,并且提供物理地址Add2A作为输出。电路209B接收来自处理器212的逻辑地址AddL2,并且提供物理地址Add2B作为输出。

存储器电路206和207分别在地址Add2A和Add2B处存储二进制字Code2A和Code2B。存储器电路206从电路209A接收地址Add2A,并且存储器电路207从电路209B接收地址Add2B。

作为变型,部分20和21可以包括多于两个的存储器电路。在这种情况下,电路215被配置为接收与在部分20和21中包括的存储器电路一样多的二进制字作为输入。换句话说,电路215被配置为从与在部分20和21中包括的存储器电路一样多的二进制字中接收二进制字Code2。额外地,电路209A和209B被配置为从逻辑地址AddL2提供与在部分20和21中存在的存储器电路一样多的物理地址。

比较电路218是被配置为比较由处理器211和212发送的逻辑地址AddL2的电路。比较电路218接收由处理器211提供的地址AddL2和由处理器212提供的地址AddL2作为输入,并且提供错误信号ErrComp21作为输出。如果由处理器211和212发送的逻辑地址不同,则检测到错误,并且错误通过错误信号ErrComp21发送。电路218和结合图3描述的电路208可以例如是相同电路的一部分,但是作为变型,电路208和218可以是分离的电路。

一种用于在存储器中读取实现系统2的部分21的数据Data2的方法如下。在手头是数据Data2的情况下,处理器211和212向电路209A和209B提供地址AddL2,处理器211和212希望在地址AddL2处读取数据。电路209A和209B将物理地址Add2A和Add2B提供给存储器电路206和207。比较电路218检查处理器211和212是否正在发送相同的逻辑地址AddL2。二进制字Code2A被存储在存储器电路206的地址Add2A处,并且二进制字Code2B被存储在存储器电路207的地址Add2B处。存储器电路206和207向电路215提供两个二进制字Code2A和Code2B,以重新形成二进制字Code2。电路214占用其自身来找到数据Data2,并且将数据Data2发送给处理器211和212。电路213进而检查到没有错误。

该实施例的一个优点是,在读取方法期间,电路213使得能够检测数据Data2的寻址错误。实际上,码EDC2表示数据Data2和写有数据的逻辑地址,将码EDC2与从由处理器211提供的逻辑地址AddL2生成的码进行比较,可以检测在逻辑地址中的差异。

该实施例的另一优点是,并行使用两个处理器201和202以及211和212使得能够检测在读取命令或写入命令期间发射的错误。这些错误由电路208和218检测。

图5以框图形式示意性地示出了电子系统3的一个实施例的架构的部分30。部分30被配置为将数据写入电子电路3的存储器中。

电子系统3类似于电子系统2,电子系统2的部分20和21已结合图3和4进行了描述。由系统2和3共享的元件在下文中将不再被描述。

部分30包括与系统2的部分20基本相同的电路。因此,部分30包括:两个处理器201(CPU1)和202(CPU2);电路203(EDC Gen),用于生成纠错码或检错码;电路204(EDC ADD),用于形成二进制字;电路205(SPLIT),用于划分二进制字;两个相同的存储器电路206(MEM1)和207(MEM2);地址解码电路309(ADD DEC);以及比较电路208(COMP)。

在系统2的部分20与系统3的部分30之间的区别在于,在部分30中,逻辑地址AddL2由处理器201发送给电路309,电路309与结合图1描述的电路107相同。电路309提供两个物理地址Add2A和Add2B作为输出。两个存储器电路206和207分别从电路309接收物理地址Add2A和Add2B。在部分20中,每个存储器电路从不同的解码电路接收物理地址Add2A或Add2B。在该实施例中,处理器202仅将逻辑地址AddL2提供给比较电路208。

图6以框图形式示意性地示出了电子系统3的实施例的架构的另一部分31,该架构的部分30结合图5进行了描述。电子系统3是优选的实施例。部分31被配置为将数据写入电子系统3的存储器中。更具体地,在图6中,部分31被配置为读取在如结合图3所描述的地址AddL2处写入的数据Data2。

电子系统3类似于电子系统2,电子系统2的部分20和21已结合图3和图4公开。由系统2和3共享的元件在下文中将不再描述。

部分31包括系统2的部分21的一些电路。因此,部分31包括:两个处理器211(CPU1)和212(CPU2);电路213(EDC CHECK),用于检查纠错码或检错码;电路214(EDC REMOVAL),用于恢复数据;电路215(MERGE),用于级联二进制字;以及两个相同的存储器电路206(MEM1)和207(MEM2);地址解码电路309(ADD DEC);以及比较电路218(COMP)。

在系统2的部分21与系统3的部分31之间的区别在于,在部分31中,两个存储器电路206和207从电路309接收地址Add2A和Add2B。在部分20中,每个存储器电路从不同的地址解码电路接收地址Add2A或Add2B。在该实施例中,处理器212仅将逻辑地址AddL2提供给比较电路218。

该实施例的一个优点是,在读取方法期间,电路213使得能够检测数据Data2的寻址错误。实际上,码EDC2表示数据Data2和写有该数据的逻辑地址,通过将码EDC2与由处理器211提供的逻辑地址AddL2生成的码进行比较,能够检测出在逻辑地址中的差异。

该实施例的另一个优点是,即使由处理器201和202在错误中发送的逻辑地址AddL2不同,两个二进制字Code2A和Code2B也被写在物理地址Add2A和Add2B处,物理地址Add2A和Add2B来自在存储单元206和207中的相同逻辑地址AddL2。

图7以框图形式示意性地示出了电子系统4的一个实施例的架构的部分40。部分40被配置为将数据写入在电子电路4的存储器中。

部分40包括:两个处理器401(CPU1)和402(CPU2);两个电路403(EDC GEN 1)和404(EDC GEN 2),用于生成纠错码或检错码;两个电路405(EDC ADD1)和406(EDC ADD 2),用于形成二进制字;电路407(SPLIT 1)和408(SPLIT 2),用于划分二进制字;两个相同的存储器电路409(MEM1)和410(MEM2);两个地址解码电路412(ADD DEC 1)和413(ADD DEC2);以及比较电路411(COMP)。

处理器401和402类似于结合图3描述的系统2的部分20的处理器201和202。处理器401和402具有相同的结构,并且被配置为提供相同的数据和控制。处理器401和402更具体地是被配置为请求将数据写入存储器409和410中的处理器。每个处理器401、402提供将要写入存储器中的数据Data4和逻辑地址AddL4作为输出。地址AddL4是数据Data4在存储器中必须被写入的逻辑地址。并行使用两个处理器401和402使得(除其他之外)通过冗余检查来检测错误成为可能。

用于生成纠错码或检错码的电路403和404是与结合图1公开的电路102相同的电路。电路403接收均来自处理器401的数据Data4和逻辑地址AddL4两者作为输入,并且提供码EDC4作为输出。电路404接收均来自处理器402的数据Data4和逻辑地址AddL4两者作为输入,并且提供纠错码或检错码EDC4作为输出。

用于形成二进制字的电路405和406是与结合图1公开的电路103相同的电路。电路405接收来自电路403的码EDC4作为输入,并且提供二进制字Code4作为输出。电路406接收来自电路404的码EDC4作为输入,并且提供二进制字Code4作为输出。

用于划分二进制字的电路407和408是被配置为将二进制字Code4划分为数个二进制字的电路。电路407接收来自电路405的二进制字Code4作为输入,并且在该示例中提供二进制字Code4和二进制字Code2A作为输出。电路408接收来自电路406的二进制字Code4作为输入,并且在该示例中提供二进制字Code4和二进制字Code2B作为输出。

地址解码电路412和413是与结合图1公开的电路107相同的电路。电路412和413分别将逻辑地址AddL4转换成物理地址Add4A和Add4B。电路412接收来自处理器401的逻辑地址AddL4,并且提供物理地址Add4A作为输出。电路413接收来自处理器402的逻辑地址AddL4,并且提供物理地址Add4B作为输出。

存储器电路409和410是与结合图1公开的存储器电路105和106相同的存储器电路。存储器电路409接收来自电路407的二进制字Code4A以及来自电路412的地址Add4A作为输入。存储器电路410接收来自电路408的二进制字Code4B、以及来自电路413的地址Add4B作为输入。作为示例,存储器电路409和410具有相同的尺寸。

作为变型,部分40可以包括多于两个的存储器电路。在这种情况下,部分40包括与在部分40中的存储器电路一样多的用于生成纠错码或检错码的电路、一样多的用于形成二进制字的电路,以及一样多的用于划分二进制字的电路。另外,二进制字划分电路被配置为将它们作为输入而接收到的二进制字划分为与在部分40中包括的存储器电路的数目相等的数目的二进制字。地址解码电路412和413被配置为提供与在部分40中包括的存储器电路一样多的物理地址。

比较电路411是与结合图3公开的电路208相同的电路。电路411接收由处理器401和402发送的数据Data4以及由处理器401和402发送的地址AddL4作为输入。电路411提供错误信号ErrComp40作为输出。

用于在存储器中写入实现系统4的部分40的数据Data4的方法如下。当处理器401和402希望将数据Data4存储在存储器中时,处理器401和402生成逻辑地址AddL4,处理器401和402希望将该数据Data4存储在逻辑地址AddL4处。然后,处理器401或402分别将数据Data4和逻辑地址AddL4提供给电路403或404,由此电路403或404生成码EDC4。并行地,处理器401或402分别将地址AddL4提供给电路412或413,以分别获得物理地址Add4A或Add4B。因此,码EDC4表示由处理器401和402提供的数据Data4和逻辑地址AddL4。接下来,电路405从由电路403提供的码EDC4和由处理器401提供的数据Data4生成二进制字Code4。接下来,电路406从由电路404提供的码EDC4和由处理器402提供的数据Data4生成二进制字Code4。电路407和408分别将从电路405和406接收的二进制字Code4划分为二进制字Code4A和Code4B。二进制字Code4A被存储在存储器409中由电路412发送的地址Add4A处,并且二进制字Code4B被存储在存储器410中由电路413发送的地址Add4B处。

图8以框图形式示意性地示出了电子系统4的实施例的架构的另一部分42,该架构的部分40结合图7进行了描述。部分42被配置为用于将数据写入电子系统4的存储器中。更具体地,在图8中,部分42被配置为读取如结合图7所描述的、写入在存储器电路409和410中的逻辑地址AddL4处的数据Data4。

部分42包括:两个处理器421(CPU1)和422(CPU2);电路423(EDCCHECK 1)和424(EDCCHECK 2),用于检查纠错码或检错码;电路425(EDC REMOVAL 1)和426(EDC REMOVAL2),用于恢复数据;电路427(MERGE 1)和428(MERGE 2),用于级联二进制字;以及两个存储器电路409(MEM1)和410(MEM2);两个地址解码电路412(ADD DEC 1)和413(ADD DEC 2);以及比较电路431(COMP)。

两个处理器421和422是与结合图4公开的处理器211和212相同的处理器。处理器421和422各自提供逻辑地址AddL4作为输出,处理器421和422希望在逻辑地址AddL4处读取数据,并且处理器421和422各自接收数据Data4。处理器421和422例如是与处理器401和402相同的处理器,但是作为变型,处理器421和422可以是与处理器401和402分离的处理器。

用于检查纠错码或检错码的电路423和424是与结合图2公开的电路112相同的电路。电路423接收来自处理器421的逻辑地址AddL4和来自电路427的二进制字Code4作为输入,并且电路423提供错误信号ErrEDC42作为输出。电路424接收来自处理器422的地址AddL4和来自电路428的二进制字Code4作为输入,并且提供错误信号ErrEDC42作为输出。电路403和423可以例如是相同电路的一部分,但是作为变型,电路403和423可以是分离的电路。电路404和424可以例如是相同电路的一部分,但是作为变型,电路404和424可以是分离的电路。

用于恢复数据的电路425和426是与结合图2公开的电路113相同的电路。电路425接收来自电路427的二进制字Code4作为输入,并且提供数据Data4作为输出。电路426接收来自电路428的二进制字Code4作为输入,并且提供数据Data4作为输出。电路405和425可以例如是相同电路的一部分,但是作为变型,电路405和425可以是分离的电路。电路406和426可以例如是相同电路的一部分,但是作为变型,电路406和426可以是分离的电路。

二进制字级联电路427和428是与结合图2公开的电路114相同的电路。电路427接收二进制字Code4A和Code4B作为输入,并且提供二进制字Code4作为输出。电路428接收二进制字Code4A和Code4B作为输入,并且提供二进制字Code4作为输出。电路407和427可以例如是相同电路的一部分,但是作为变型,电路407和427可以是分离的电路。电路408和428可以例如是相同电路的一部分,但是作为变型,电路408和428可以是分离的电路。

电路412和413分别将地址AddL4转换成物理地址Add4A和Add4B。电路412接收逻辑地址AddL4作为输入,并且提供物理地址Add4A作为输出。电路413接收逻辑地址AddL4作为输入,并且提供物理地址Add4B作为输出。

存储器电路409和410分别在地址Add4A和Add4B处存储二进制字Code4A和Code4B。存储器电路409从电路412接收地址Add4A,并且存储器电路410从电路413接收地址Add4B。

作为变型,部分40和42可以包括多于两个的存储器电路。在这种情况下,部分42包括与在部分41中的存储器电路一样多的用于检查纠错码或检错码的电路、一样多的用于恢复数据的电路,以及一样多的二进制字级联电路。另外,二进制字划分电路被配置为将二进制字划分电路作为输入而接收到的二进制字划分为与在部分41中包含的存储器电路数目相等的数目的二进制字。另外,电路412和413被配置为提供与来自在部分42中被包括的存储器电路一样多的来自逻辑地址AddL4的物理地址。

比较电路431是被配置为(除其他之外)对由处理器421和422发送的地址AddL4与由电路425和426发送的数据Data4进行比较的电路。比较电路431接收由处理器421提供的地址AddL4和由处理器422提供的地址AddL4作为输入,并且比较电路431接收作为输出的、由电路425发送的数据Data4和由电路426发送的数据Data4。比较电路431提供错误信号ErrComp42作为输出。如果由处理器421和422发送的地址不同,则检测到错误,并且该错误通过错误信号ErrComp42发送。电路431和结合图7描述的电路411可以例如是相同电路的一部分,但是作为变型,电路411和431可以是分离的电路。

用于读取在存储器中实现系统4的部分42的数据Data4的方法如下。在手头是数据Data4的情况下,处理器421和422向电路412和413提供地址AddL4,处理器421和422希望在地址AddL4处读取数据。电路412和413将物理地址Add4A和Add4B提供给存储器电路409和410。比较电路431检查处理器421和422是否正在发送相同的地址AddL4。二进制字Code4A被存储在存储器电路409的地址Add4A处,并且二进制字Code4B被存储在存储器电路410的地址Add4B。存储器电路409和410向电路427和428提供两个二进制字Code4A和Code4B,以重新形成二进制字Code4。电路425占用自身,从由电路427发送的二进制字Code4找到数据Data4,电路426占用自身,从由电路428发送的二进制字Code4找到数据Data4。然后,处理器421从电路425接收数据Data4,并且处理器422从电路426接收数据Data4。比较电路431检查在提供给处理器421和422的数据Data4之间的对应关系。电路423和424各自在其侧检查码EDC4。

该实施例的一个优点是,在读取方法期间,电路423和424使得能够检测数据Data4的寻址错误。实际上,码EDC4表示数据Data4和写有数据的逻辑地址,将码EDC4与从由处理器421和422提供的逻辑地址AddL4生成的码进行比较,可以检测在地址中的差异。

该实施例的另一优点是,并行使用两个处理器401和402以及421和422,使得能够检测在读取控制或写入控制期间发射的错误。这些错误由电路411和431检测。

图9以框图形式示意性地示出了存储器电路MEM的一部分。存储器电路MEM例如是由结合图1至图8公开的系统1至4所使用的存储器电路类型。

存储器电路MEM的部分包括控制电路LOGIC和线控制电路WL。

控制电路LOGIC是被配置为处理从存储器电路MEM所属的系统接收到的各种控制的电路。电路LOGIC接收地址Add和将要写入的数据Data作为输入。电路LOGIC提供以下信号作为输出:信号CS,用于选择存储器电路MEM;信号WEN,用于激活写入;选择/列号信号COL;以及选择/行号信号LIN。

地址Add优选地是物理地址,也就是说,能够直接被解释为在存储器电路中的行和列坐标。在一个变型中,该地址是由处理器提供、并且由与存储器电路相关联的地址解码电路转换的逻辑地址,也就是说,该地址属于该存储器电路。

信号CS使得能够在读取或写入操作期间选择存储器电路MEM。

信号WEN使得能够向存储器电路MEM指示接收到的控制的性质,并且更具体地,指示是否请求了写入操作。

信号COL和LIN是从由电路LOGIC接收到的地址Add生成的信号,并且是使得能够选择存储器电路的存储点(图9中未示出)的信号,希望在该存储点处写入数据。

行控制电路WL是被配置为选择与由存储器电路接收的地址Add相对应的字行的电路。电路WL接收行选择/号信号LIN作为输入,并且提供字WLN作为输出。在图9中,仅示出了一个字WLN。

图10以框图形式示意性地示出了电子系统5的架构的部分50。部分50被配置为当在存储器中写入数据时检测错误。

系统5的部分50包括:两个存储器电路51(MEM3)和52(MEM4);以及比较电路53(COMP)。

存储器电路51和52是与结合图9公开的存储器MEM的类型具有相同结构和尺寸的存储器电路。因此,存储器电路51和52各自接收物理地址Add5作为输入。存储器电路51还接收将要存储在地址Add5处的二进制字Code5A作为输入。存储器电路52还接收将要存储在地址Add5处的二进制字Code5B作为输入。如结合图9所公开的,每个存储器电路51或52分别提供以下输出信号作为输出:分别提供字WLN51或WLN52;分别提供信号CS51或CS52,分别用于选择存储器电路51或存储器电路52;分别提供信号WEN51或WEN52,用于激活写入;分别提供选择/列号信号COL51或COL52;以及分别提供选择/行号信号LIN51和LIN52。

二进制字Code5A和Code5B是尺寸相等的二进制字,二者均表示将要写入存储器的数据。例如,通过使将要写入存储器中的数据一分为二,获得二进制字Code5A和Code5B。根据另一示例,以与结合图1描述的二进制字Code1A和Code1B相同的方式获得二进制字Code5A和Code5B。

比较电路53是使得能够比较两个存储器电路51和52的输出信号的电路,以便检测在写入操作期间的错误。比较电路53接收以下信号作为输入:字WLN51和WLN52;信号CS51和CS52;信号WEN51和WEN52;信号COL51和COL52;以及信号LIN51和LIN52。

比较电路53提供比较信号CompErr5作为输出。比较电路53更具体地将存储器电路51的每个输出信号与存储器52的对应输出信号进行比较。换句话说,比较电路53被配置为:比较字WLN51和WLN52;比较信号CS51和CS52;比较信号WEN51和WEN52;比较信号COL51和COL52;以及比较信号LIN51和LIN52。

比较电路53可以是异或(EXCLUSIVE OR)型的逻辑门的组件。

作为变型,部分50可以包括多于两个的存储器电路。在这种情况下,比较电路53被配置为接收部分50的存储器电路的所有输出信号作为输入。另外,这些存储器电路的每个存储器电路被配置为,将与存储在另一存储器电路中的二进制字不同的、表示将要被写入的数据的二进制字存储在存储器中。

实现系统5的部分50的用于检测读取错误的方法如下。在将二进制字Code5A和Code5B写入在存储器电路51和52中的地址Add5处期间,存储器电路51和52将其输出信号发送到比较电路53。存储在相同存储器电路中的相同地址处的二进制字Code5A和Code5B是尺寸相等的二进制字,因此,存储器电路51和52的输出信号应该是相同的。然后,比较电路53比较存储器电路51和52的输出信号,在两个信号之间的每个差异都能够表示错误。潜在错误通过信号CompErr5的方式发送。

该实施例的一个优点在于,其使得能够在对存储器中的数据进行写入操作期间,检测地址错误,而无需对所述数据进行读取操作。

已经描述了各种实施例和变型。本领域技术人员将理解,可以组合这些实施例的某些特征,并且本领域技术人员将容易想到其他变型。

特别地,结合图1和图2、图3和图4、图5和图6以及图7和图8公开的实施例都与结合图9和图10公开的实施例兼容。

另外,结合图3和图4、图5和图6以及图7和图8公开的实施例包括两个相同的处理器,但是作为变型,这些实施例可以包括多于两个的处理器。

最后,基于上文提供的功能描述,本文描述的实施例和变型的实际实现方式在本领域技术人员的能力之内。

相关技术
  • 输入错误检测装置、输入错误检测方法及输入错误检测程序
  • 一种基于生成域的数据包错误检测方法及错误检测装置
技术分类

06120112423004