具有故障检测的纠错硬件的制作方法

文档序号:17439307发布日期:2019-04-17 04:32阅读:181来源:国知局
具有故障检测的纠错硬件的制作方法
本申请总体涉及纠错码(ecc),并且更具体地涉及用于ecc逻辑电路的故障检测的硬件。
背景技术
:纠错码(ecc)存储器是一种计算机数据存储设备,其可以检测和纠正大多数传统类型的内部数据损坏。ecc存储器电路可以用在通常不能容忍数据损坏的计算机中,例如用于科学或需要符合功能安全要求的安全关键高级驾驶员辅助系统(adas)的汽车存储器。在存储器(例如,静态随机存取存储器(sram)、只读存储器(rom)或快闪存储器)上实现ecc是在安全关键应用中使用的标准安全机制,以确保存储器内的数据完整性。传统上,ecc冗余位(例如,在汉明(hamming)码中)通过写入路径ecc逻辑电路被添加到存储器数据内容,并且以相同的周期一起写入存储器,以便当存储器由读取路径ecc逻辑电路读出时提供在存储器中存储的数据的检查。本文使用的ecc通常使用汉明码中的冗余位用于单个位错误的单个位纠错和用于多位错误(例如,双位错误)的多位错误检测。传统上,在写入路径和读取路径中提供生成ecc硬件单元,其中在写入路径中具有生成ecc单元,并且在读取路径中具有包括另一生成ecc单元的检查ecc块。写入路径电路和读取路径电路没有交叉耦合连接,并且因此彼此独立地操作。在存储器读取操作期间,ecc由检查ecc块重新计算,该ecc通过xor电路与存储的ecc进行比较。该xor电路的结果(输出)称为校正子。如果校正子为零,则没有发生错误。如果校正子为非零,则可以将其用于将表索引到“校正子解码”以在单个位纠错(sec)的情况下确定哪些位出错,或者在双位错误检测(ded)的情况下确定该错误是不可纠正的。因此,传统的ecc存储器通常可以有效地保持存储器系统免于大多数位错误。技术实现要素:在所描述的示例中,锁步ecc电路硬件包括纠错电路,该纠错电路使用写入路径电路和读取路径电路之间的交叉耦合连接,这使得能够在存储器电路的一侧重新使用ecc生成逻辑以在另一侧检查错误,从而降低了ecc逻辑要求并节省了大量半导体芯片面积。所描述的示例包括一种用于存储器电路的ecc电路的故障检测方法,该存储器电路在写入路径电路中具有写入生成(gen)ecc逻辑并且在读取路径电路中具有包括读取genecc逻辑的检查ecc逻辑。通过数字比较器比较读取genecc逻辑的输出和写入genecc逻辑的输出,以检查相应位串是否匹配。当位串不匹配时,检测到写入genecc逻辑或读取genecc逻辑中的故障。在写入操作期间发生锁步错误(比较器输出不匹配)的情况下,可以重复写入操作。在读取操作期间发生锁步错误的情况下,则可以纠正单个位错误,并且可以发送多位错误中断信号。附图说明图1是根据一个示例实施例的示例ecc存储器电路的框图,该ecc存储器电路具有所描述的用于在读取侧ecc逻辑中进行故障检测的锁步ecc电路硬件,该锁步ecc电路硬件具有多路复用器,该多路复用器具有用于接收写入数据的第一输入并与ecc生成逻辑的输入串联。在正常写入操作期间选择写入数据,并且在读取操作期间选择读取数据。图2是根据一个示例实施例的另一示例ecc存储器电路的框图,该ecc存储器电路具有所描述的用于在写入侧ecc逻辑中进行故障检测的锁步ecc电路硬件,该锁步ecc电路硬件具有多路复用器,该多路复用器具有用于从存储器电路接收读取数据的第一输入并与用于在ecc逻辑中进行故障检测的genecc逻辑的输入串联。图3是示出根据一个示例实施例的用于ecc电路的故障检测的示例方法中的步骤的流程图。图4是根据一个示例实施例的示例ecc存储器电路,其包括所描述的用于在其读取路径和写入路径中进行故障检测的ecc硬件,该ecc硬件基本上组合了上文相对于图1和图2描述的读取侧和写入侧错误检查实施例。图5是根据一个示例实施例的示例adas系统的系统图,其包括作为处理器存储器的图4中所示的所描述的ecc存储器电路的两个实例,该处理器存储器具有所描述的用于在其读取路径和写入路径中的ecc逻辑中进行故障检测的锁步ecc电路硬件。具体实施方式附图不一定按比例绘制。在附图中,相同的附图标记表示相似或等同的元件。一些示出的动作或事件可以以不同的顺序发生和/或与其他动作或事件同时发生。此外,一些示出的动作或事件对于实现根据本说明书的方法是可选的。如本文所使用的,在没有进一步限定的情况下,术语“耦合到”或“与…耦合”(等)描述间接或直接电连接。因此,如果第一设备“耦合”到第二设备,则该连接可以通过在路径中仅有寄生的直接电连接,或者通过经由包括其他设备和连接的中间项的间接电连接。对于间接耦合,中间项通常不修改信号的信息,但可以调整其电流电平、电压电平和/或功率电平。在ecc存储器电路的ecc逻辑硬件中,写入侧可能存在瞬时或永久错误,这可能导致在写入操作期间将错误的ecc位写入存储器。ecc存储器电路的读取侧中的ecc逻辑硬件中的瞬时或永久错误可能导致存储器读取数据的损坏或者导致在读取数据实际上未被损坏时将存储器读取数据错误标记为损坏的。如果写入路径电路和读取路径电路独立操作,则可以检测ecc存储器电路的ecc逻辑中的瞬时/永久错误,但是这种检测的实现将需要大量的附加逻辑,包括在ecc存储器电路的两侧的额外ecc生成逻辑。图1示出了ecc存储器电路100,其包括存储器电路130(例如,sram、rom或快闪存储器芯片)和所描述的“锁步”ecc硬件110,“锁步”ecc硬件110在其被配置用于验证读取路径电路120中的读取路径genecc120b1的位输出的ecc逻辑电路中具有故障检测。存储器电路130包括单端口存储器,其中对于给定的时钟脉冲仅可以执行一个操作(读取或写入)。该单端口存储器特征使得来自eccgen逻辑之一(在特定时间/时钟处未激活的一侧,如图1所示的写入未激活,以及如图2所示读取未激活)的位输出能够用作启用所描述的锁步错误检测的参考。存储器电路130包括至少具有半导体表面的公共衬底105。例如,衬底105可以包括体硅衬底或体硅衬底上的外延层。存储器电路130具有单独的数据输出和单独的ecc输出。示出为k位的数据与示出为r位的ecc位一起被存储。例如,如果非ecc存储器存储64位数据,则ecc存储器将存储相同64位数据以及额外8位ecc。因此,写入64+8位并且读出64+8位。ecc8位用于验证64个数据位,并转到检查ecc中的xor逻辑。写入路径电路115包括写入生成(gen)ecc逻辑115b,并且校验ecc逻辑120b包括读取路径电路120中的读取genecc逻辑120b1。当在写入模式下操作(写入模式在下文描述的图2中激活)时,数据位(示出为wr数据,例如64位)和来自写入eccgen逻辑115b的对应的计算的ecc位(例如8位)各自以相同的时钟周期写入存储器电路100。在图1和图2中,存储器电路130的数据宽度在一个示例中可以是72位(72位宽存储器),包括64位(数据)+8位(ecc),其可以实现为宽度64和宽度8的两个单独的存储器,或者是单个72位宽的存储器。如上文所描述的,64个信息/数据位和8个ecc位仅是示例。ecc位的实际数量可以基于数据(信息)的对应位宽度,例如以下示例中给出的:信息位的数量ksec-ded的r位132-445-11512-26627-57758-1208121-2479248-50210在写入genecc逻辑115b的输入处提供多路复用器(mux)115a,以在来自存储器电路130的由交叉耦合连接150提供的示出为k位的交叉耦合的读取数据以及通常来自处理器的写入(wr)数据中复用。处理器可以包括微处理器、数字信号处理器(dsp)或微控制器单元(mcu)。mux115a被示出具有选择线,该选择线被示出为基于存储器电路130处于自处理器的读取模式而用于选择包括在一条线上的来自存储器的rd数据和在另一条线上的wr数据的输入线中的哪个被发送到mux115a的输出。当处于读取模式时,mux115a选择rd数据,而当处于写入模式时,选择wr数据。数字比较器135经耦合以在一个输入处接收来自写入genecc逻辑115b的输出(作为其在读取期间未激活时的参考)并且在其另一输出处接收读取路径genecc120b1的输出。因此,数字比较器135重新使用来自写入genecc逻辑115b的输出用于验证读取路径genecc120b1的位输出,两者都仅作为示例示出为8位。读取genecc120b1和xor电路120b2一起构成检查ecc块120b。xor电路120b2的输出将“校正子”信号提供到校正子解码块120c。如果校正子为零,则没有发生错误。如果校正子为非零,则校正子解码块120c确定哪些位出错(sec),或者错误是不可纠正的(例如,错误是双位错误)。将单个位错误提供到sec块120d,sec块120d输出示出为rd数据的纠正的读取数据。对于ecc硬件110,数字比较器135的输出被连接为对多位(2位或更多位)错误中断生成的使能,并且被连接为对sec块120d的使能。因此,当且仅当写入路径中的ecc计算和读取路径中的ecc计算彼此匹配(在图1中示为相同的r位)时,由sec块120d进行的存储器读取数据的sec和使用由校正子解码120c提供的校正子计算进行的多位错误标记两者均由来自数字比较器135的使能信号启用。如果写入路径中的ecc计算和读取路径中的ecc计算彼此不匹配使得在读取操作期间存在锁步错误,并且可以纠正单个位错误,并且在多位错误(例如双位错误)的情况下,可以发送位错误中断(禁用)信号。图2示出了示例ecc存储器电路200,其包括所描述的用于在其写入路径中进行故障检测的ecc硬件110’,写入路径包括写入genecc逻辑115b,其中mux120e被添加在读取路径电路120’中,并且交叉耦合连接150’从写入路径电路115’被添加到读取路径电路120’中的mux120e,以将写入数据复用到从存储器电路130读取的数据。这里,所描述的在其ecc逻辑电路中具有故障检测的锁步ecc硬件110被配置用于在写入模式激活时验证写入genecc逻辑115b的位输出。示出为“存储器写入”的控制输入是控制mux120e的输入选择节点的控制信号。当处于写入模式时,mux120e选择wr数据,而当处于读取模式时,选择rd数据。由读取genecc逻辑120b1输出的ecc位用于通过数字比较器135验证写入genecc逻辑115b的操作,数字比较器135比较由相应的genecc逻辑115b和120b1生成的ecc位。生成的数字比较器135的输出用作到处理器(例如,微处理器、数字信号处理器(dsp)或微控制器单元(mcu))的中断,以重复写入事务。在写入操作期间由数字比较器135标记错误的情况下,可以重复写入操作以确保写入存储器电路130的数据不出错。如果错误是瞬时故障,则重复写入通常将修复硬件错误问题。在永久故障的情况下,数字比较器135将再次保持生成错误,在这种情况下,处理器可以采取适当的动作,例如向应用软件指示系统中发生了永久故障。在读取操作的情况下,该同样的故障响应也是如此。图3是示出根据一个示例实施例的用于与单端口存储器电路相关联的ecc电路的故障检测的示例方法300中的步骤的流程图。步骤301包括将读取genecc逻辑(图1和图2中的120b1)的输出与写入genecc逻辑(图1和图2中的115b)的输出进行比较。步骤302包括当来自比较的比较输出确定写入genecc逻辑的输出的值不等于读取genecc逻辑120b1的输出的值时,检测到写入genecc逻辑或读取genecc逻辑中的故障。步骤103包括当在读取操作期间故障是单个位错误时,纠正单个位错误,并且当在读取操作期间故障是多位错误时,发送多位错误中断信号。当在写入操作期间故障是错误时,重复写入。如上文针对图1的在读取侧实现故障检测的存储器电路100所描述的,将单个位错误提供到sec块120d,sec块120d输出示出为rd数据的纠正的读取数据。如上文针对图2的在写入侧实现故障检测的存储器电路200所描述的,可以重复写入操作以确保写入存储器芯片的数据不出错。上文关于图1(写入侧错误检查)和图2(读取侧错误检查)描述的实施例可以独立地实现(有一个而没有另一个)以检测存储器电路130的一侧上的错误。替代性地,上文关于图1和图2描述的读取侧和写入侧错误检查实施例可以组合在一起以在存储器电路130的两侧上实现错误检查。图4是示例ecc存储器电路400,其包括所描述的ecc硬件110”以用于在其读取路径和写入路径两者中进行故障检测,ecc硬件110”基本上组合了上文关于图1和图2描述的读取侧和写入侧错误检查实施例。除了mux115a,ecc存储器电路400还包括第二mux120e和交叉耦合连接150’,该第二mux120e具有用于从存储器电路400接收读取数据的第一输入并与读取genecc逻辑120b1的输入串联,该交叉耦合连接150’用于将写入数据耦合到第二mux120e的第二输入。这里,数字比较器135参与读取侧错误检查和写入侧错误检查两者。与本文描述的ecc存储器电路相反,传统ecc逻辑仅用于检测和纠正内部存储器(例如,ram)错误。对于具有本文所描述的ecc逻辑的ecc存储器电路,除了检测和纠正内部存储器错误之外,还实现ecc逻辑中的故障检测,其中还检测ecc计算和生成逻辑中的任何瞬时/永久错误,这使得能够采取纠正动作。如上文所描述的,在读取genecc120b1(参见图1)的锁步错误的情况下,可以纠正单个位错误并且可以生成多位错误中断信号。在写入genecc逻辑115b(参见图2)中的锁步逻辑出错的情况下,重复写入操作。此外,所描述的锁步ecc电路硬件是非侵入式的,并且可以连续地(在每个时钟周期,在运行中)操作以用于检查存储器ecc逻辑,其中在附加的mux和比较器方面仅具有有限的面积损失。通过以下示例进一步说明所描述的实施例。图5是包括示出为4001和4002的图4中所示的所描述的ecc存储器电路的两个实例的示例adas系统500的系统图,ecc存储器电路包括处理器存储器1301(示出为处理器存储器1)和1302(示出为处理器存储器n)。ecc存储器电路具有所描述的锁步ecc电路硬件,该锁步ecc电路硬件被示出为ecc逻辑1101和1102,用于在处理器存储器的读取路径和写入路径中进行故障检测。图像传感器505(例如,cmos彩色相机)从场景(例如,从汽车的后视方向)生成图像数据。图像数据通过相机接口510耦合到图像识别系统515。图像识别系统515被示出为包括视频识别处理器515a、快闪存储器515b、外部ddr存储器515c和控制器局域网(can)总线tx/rx(收发器)515d。图像识别系统515通过can总线520耦合到处理器块530,处理器块530包括处理器核心530a。处理器核心530a被示为通过总线接口535耦合以使用ecc存储器电路4001和4002的处理器存储器1301和1302。如上文所描述的,在adas系统500的操作期间,ecc存储器电路4001和4002使用所描述的锁步ecc电路硬件,其在写入路径电路和读取路径电路之间具有交叉耦合连接,这使得能够在处理器存储器的一侧重新使用ecc生成逻辑来检查另一侧的错误,并且降低ecc逻辑要求并节省大量半导体芯片面积。在所描述的实施例中,修改是可能的,并且在权利要求的范围内,其他实施例也是可能的。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1