利用验证的安全可靠位存储的制作方法

文档序号:12476111阅读:165来源:国知局
利用验证的安全可靠位存储的制作方法与工艺
本申请案大体上涉及信息存储装置,并且更具体地说涉及具有改进的安全性的位存储装置。
背景技术
:数字半导体装置通常依赖于保存重要决策标准的重要存储元件。该决策标准可以是用信号表示‘装置安全’或‘功能锁定’或对于安全系统至关重要的任何类型的类似信息的标志。可能存在仅一个、几个或几十个此类项,但在任何情况下,对那些值的保护必定是实施安全性方面的任何系统的主要问题。如果此保护不能实现,那么任何其它安全机制都将不符合标准,因为对于破坏装置安全性的任何尝试,那些值都将是第一攻击点。随着已经发现缺陷,对此类值的保护已经逐渐地演进且被利用,且已经临时地研发出技术来解决那些缺陷。缺乏稳定的解决方案使得该循环保持下去。技术实现要素:根据本发明的一个方面,提供一种位存储装置,包括:包括第一输出端的第一寄存器,所述第一寄存器被配置成存储实际值且所述第一输出端被配置成提供第一输出值;包括第二输出端的第二寄存器,所述第二寄存器被配置成存储相反值,其中在所述第二寄存器的所述第二输出端处的第二输出值与在所述第一寄存器的所述第一输出端处的第一输出值相反;包括第三输出端的第三寄存器,所述第三寄存器被配置成存储差分实际值;包括第四输出端的第四寄存器,所述第四寄存器被配置成存储差分相反值,其中在所述第四输出端处的所述差分相反值与在所述第三寄存器的所述第三输出端处的所述差分实际值相反;验证电路,所述验证电路包括耦合到所述第一寄存器的所述第一输出端的第一验证输入,耦合到所述第二寄存器的所述第二输出端的第二验证输入,耦合到所述第三寄存器的所述第三输出端的第三验证输入,耦合到所述第四寄存器的所述第四输出端的第四验证输入,以及用于提供有效性指示的有效性输出;以及写入电路,所述写入电路具有耦合到所述第一寄存器的第一写入电路输入端,耦合到所述第二寄存器的第二写入电路输入端,耦合到所述第三寄存器的第三写入电路输入端,以及耦合到所述第四寄存器的第四写入电路输入端,所述写入电路被配置成在第一时钟边沿处使得所述第一寄存器存储所述实际值且造成第一其它存储操作,所述第一其它存储操作选自由以下各项构成的第一群组:使得所述第二寄存器存储所述相反值以及使得所述第四寄存器存储所述差分相反值;所述写入电路被配置成在第二时钟边沿处使得所述第三寄存器存储所述差分实际值且造成第二其它存储操作,所述第二其它存储操作选自由以下各项构成的第二群组:使得所述第二寄存器存储所述相反值以及使得所述第四寄存器存储所述差分相反值,其中所述第二其它存储操作在与所述第一其它存储操作不同的寄存器上执行。根据本发明的另一个方面,提供一种方法,包括:在实际值输入端处接收实际值且在相反值输入端处接收相反值;在第一时钟边沿处,将所述实际值存储在第一寄存器中且执行第一其它存储操作,所述第一其它存储操作选自由以下各项构成的第一群组:将所述相反值存储在第二寄存器中,以及将差分相反值存储在第四寄存器中;在与所述第一时钟边沿之间具有时间偏移的第二时钟边沿处,将所述差分实际值存储在第三寄存器中且执行第二其它存储操作,所述第二其它存储操作选自由以下各项构成的第二群组:将所述相反值存储在所述第二寄存器中,以及将所述差分相反值存储在所述第四寄存器中,其中所述第二其它存储操作在与所述第一其它存储操作不同的寄存器上执行。根据本发明的另一个方面,提供一种集成电路(IC),包括:包括第一输出端的第一寄存器,所述第一寄存器被配置成存储实际值,所述第一输出端被配置成提供第一输出值;包括第二输出端的第二寄存器,所述第二寄存器被配置成存储相反值,其中所述相反值与所述实际值相反,所述第二输出端被配置成提供第二输出值;包括第三输出端的第三寄存器,所述第三寄存器被配置成存储差分实际值;包括第四输出端的第四寄存器,所述第四寄存器被配置成存储差分相反值,其中所述差分相反值与所述差分实际值相反;验证电路,所述验证电路包括耦合到所述第一寄存器的所述第一输出端的第一验证输入,耦合到所述第二寄存器的所述第二输出端的第二验证输入,耦合到所述第三寄存器的所述第三输出端的第三验证输入,以及耦合到所述第四寄存器的所述第四输出端的第四验证输入,以及用于基于从所述第一、第二、第三和第四寄存器接收的输出值来提供有效性指示的有效性输出;以及写入电路,所述写入电路具有耦合到所述第一寄存器的第一写入电路输入端,耦合到所述第二寄存器的第二写入电路输入端,耦合到所述第三寄存器的第三写入电路输入端,以及耦合到所述第四寄存器的第四写入电路输入端,所述写入电路被配置成在第一时钟边沿处使得所述第一寄存器存储所述实际值且造成第一其它存储操作,所述第一其它存储操作选自由以下各项构成的第一群组:使得所述第二寄存器存储所述相反值以及使得所述第四寄存器存储所述差分相反值,所述写入电路被配置成在第二时钟边沿处使得所述第三寄存器存储所述差分实际值且造成第二其它存储操作,所述第二其它存储操作选自由以下各项构成的第二群组:使得所述第二寄存器存储所述相反值以及使得所述第四寄存器存储所述差分相反值,其中所述第二其它存储操作在与所述第一其它存储操作不同的寄存器上执行。附图说明通过参考附图,可以更好地理解本发明,并且使本领域的技术人员清楚其众多特征和优点。图1是示出根据至少一个实施例的位存储装置的方块图。图2是示出根据至少一个实施例的位存储装置的示意图。图3是示出根据至少一个实施例的位存储装置的时钟产生器的方块图。图4是示出根据至少一个实施例的通过图3的时钟产生器产生的时钟信号的时序图。图5是示出根据至少一个实施例的第一写入脉冲的时序图。图6是示出根据至少一个实施例的第二写入脉冲的时序图。图7是示出根据至少一个实施例的方法的流程图。图8是说明根据至少一个实施例的方法的流程图。在不同图式中使用相同参考符号指示相似或相同的项。具体实施方式提供一种位存储装置和方法,所述位存储装置可以充当任何数字电子系统的基本构建块以保护这些数字电子系统不被窜改,并且还可以充当将用于安全应用中的任何数字电子系统的基本构建块。为提供安全性以抵御无数可能的攻击情形(例如电压攻击、时钟窜改、时钟比率等),实施包括信息的冗余存储、值/时间的强制变化性以及保证无用于攻击的公共点的对策。描述一种用于保存单一位值(即,“安全”/“不安全”信息)的位存储元件,该位存储元件通过阻止窜改或通过指出任何非法修改来提供抵御大部分已知种类的安全性攻击的那些对策的具体组合。为使得能够在既定用于功能安全性应用(IEC61508,ISO26262)的装置内使用此元件,提供某一水平的差错校正能力,该差错校正能力至少等于三人表决触发器的差错校正能力。此差错连接能力还可以帮助保护安全性装置,因为在此类触发器内记录的值通常对装置非常重要且应该保护这些值不发生意外变化。从外部视角来看,所提出的架构可以被具有复位输入的标准数据(D)触发器(FF)替换,以提供改进的可靠性和安全性。数据输入(In、Inb)和数据输出(Out、Outb)使用双轨编码来保护那些信号。如本文中所使用,术语“双轨编码”意指两个信号线被配置成使用两个信号线中的一个信号线的一个信号和两个信号线中的另一个信号线的另一信号来冗余地传送单一位值,其中第二信号与第一信号相反。双重写入脉冲WP1、WP2用于控制和保护写入。时钟(Clk)和复位输入(Rb)是奇异信号。然而,奇异时钟信号用于产生不同的时钟信号以供内部使用,且限定响应于在复位输入端处的复位信号的操作以确保安全转换,如下文将详细描述。提供有效性指示,该有效性指示用信号表示内容的有效性。有效性指示可以复制形式提供(例如有效和无效输出)。存在可以由所提出的位存储元件的至少一些实施例提供的一些特征,以确保在最常见的安全性攻击情形的情况下以及在将由安全性装置处理的常见硬件故障的情况下该位存储元件的正确行为和存储功能。此元件的内容可以用于将装置的部分或特征从安全状态切换到不安全状态,反之亦然。当将安全状态限定为复位值时,复位攻击无效。任何复位攻击随后导致进入安全状态。时钟系统通过使用不同的内部定时方案来强硬地抵御时钟攻击,所述方案过滤掉时钟干扰且提供内容更新的时间区分。冗余输入用于确保提供恰当的差分输入信号以用于新值的正确存储。使用两个差分的具体写入序列使得相应的写入脉冲能够阻止误用写入操作来修改内容的外部尝试。冗余输出用于提供反映位存储元件内容的差分输出信号。冗余输出可以用于彼此验证。提供与三人表决FF(TVF)等效的故障检测和校正能力,该能力具有用于阻止故障累积的连续故障校正,所述连续故障校正可以用作例如安全性特征。内部触发器的连续故障校正和无效内容的冻结阻止逐步地危害内部触发器的内容的任何尝试。出于此目的,互补输出用信号表示所提供的输出值的正确性。这些输出可以例如被系统用于认定所提供的输出合格,或被系统用于请求适当的对策以保护不受窜改攻击影响。不准许通过测试设计(DFT)逻辑访问内部结构以阻止此逻辑的可能漏洞。图1是示出根据至少一个实施例的位存储装置的方块图。位存储装置系统100包括位存储装置101和其互连件102到111。位存储装置101接收包括非反相输入线102(称为IN)和反相输入线103(称为INB)的冗余输入线,以作为位存储装置101的数据输入。位存储装置101接收时钟线104(称为Clk)以作为时钟输入。位存储装置101接收写入脉冲线105(称为WP1)和106(称为WP2)。位存储装置101提供包括非反相输出线107(称为Out)和反相输出线108(称为Outb)的冗余输出线,以作为位存储装置101的数据输出。位存储装置101提供有效性线109(称为有效)和无效性线110(称为无效)。将复位线111(称为Rb,指示其在低逻辑电平处有效)提供到位存储装置以请求位存储装置101的复位操作。图2是示出根据至少一个实施例的位存储装置的示意图。位存储装置200包括写入和修复逻辑电路221、基本时钟产生器(BCG)222、第一寄存器223、第二寄存器224、第三寄存器225、第四寄存器226、跟随有反相器259的第一异或(XOR)门227(其中XOR门227和反相器259可以被认为在一起充当可以被简称为XNOR门的逻辑功能)、跟随有反相器260的第二XOR门228(其中XOR门228和反相器260可以被认为在一起形成XNOR门)、跟随有反相器230的第三XOR门229(还在一起形成XNOR门),以及验证逻辑块231。非反相输入线102和反相输入线103作为数据输入被提供到写入和修复逻辑块221。写入脉冲线105和106作为写入脉冲输入被提供到写入和修复逻辑块221。第一寄存器输出245(称为AV,实际值)、第二寄存器输出246(称为IV,相反值)、第三寄存器输出247(称为AD,差分实际值)以及第四寄存器输出248(称为ID,差分相反值)被提供到写入和修复逻辑221。反相器输出261(称为VS,其中实际值相同)、反相器输出262(称为IS,其中相反值相同)以及反相器输出258(称为DSb,其中差分值不同;b表示‘低电平有效’逻辑)被提供到写入和修复逻辑221。反相器输出261、262以及258可基于由反相器259、260以及230相应地耦合到XOR门227、228以及229的输出而产生的逻辑而被视为XNOR函数输出。写入和修复逻辑221将实际值输入线241(称为AVin)作为输出线提供到第一寄存器223的数据输入端,将相反值输入线242(称为IVin)作为输出线提供到第二寄存器224的数据输入端、将差分实际值输入线243(称为Adin)作为输出线提供到第三寄存器225的数据输入端,将差分相反值输入线244(称为IDin)作为输出提供到第四寄存器226的数据输入端。在时钟线104处将外部时钟信号提供到BCG222。BCG222将第一寄存器时钟线251提供到第一寄存器223的时钟输入端,将第二寄存器时钟线252提供到第二寄存器224的时钟输入端,将第三寄存器时钟线253提供到第三寄存器225的时钟输入端,且将第四寄存器时钟线254提供到第四寄存器226的时钟输入端。将复位线111提供到第一寄存器223、第二寄存器224、第三寄存器225以及第四寄存器226中的每一个寄存器。来自写入和修复逻辑221的输出线可以基于非反相输入线102和反相输入线103提供值,例如,当写入脉冲线105和106指示从非反相输入线102接收的值和从反相输入线103接收的互补值将被写入到位存储装置200时。来自写入和修复逻辑221的输出线可以替代地基于第一寄存器223、第二寄存器224、第三寄存器225以及第四寄存器226的输出的至少一个子集来提供值,例如,当写入脉冲线105和106指示无新值将被写入到位存储装置200时。因此,存储在位存储装置200中的现有值可以被重写到位存储装置200。因此,在一个实施例中,根据写入脉冲线105和106的值,在时钟线104的每一全时钟周期处,可以用写入到位存储装置200的新值或现有值来更新存储在位存储装置200中的值。在另一实施例中,根据写入脉冲线105和106的值,可以将新值写入到位存储装置200,或可以简单地将现有值保留在位存储装置200中而非重写到位存储装置200。如本文中所使用,更新后的值是指被写入到位存储装置200的值。更新后的值的实例包含存储在位存储装置200中的现有值、修复值(例如由写入和修复逻辑块221提供以校正存储在第一寄存器223、第二寄存器224、第三寄存器225以及第四寄存器226中的一个寄存器中的错误值的值),以及经由非反相输入线102和反相输入线103接收的新输入值。第一寄存器223存储实际值并经由第一寄存器输出端245米输出实际值。第二寄存器224存储相反值并经由第二寄存器输出端246来输出相反值,所述相反值与实际值相反。第三寄存器225存储差分实际值并经由第三寄存器输出端247来输出差分实际值,所述差分实际值具有实际值的值,但在与实际值不同的时间处被写入。第四寄存器226存储差分相反值并经由第四寄存器输出端248来输出差分相反值,所述差分相反值具有相反值的值,但在与相反值不同的时间处被写入。第一寄存器输出端245被提供为非反相输出线107。第二寄存器输出端246被提供为反相输出线108。第一寄存器输出端245连接到第一XOR门227的第一输入端。第三寄存器输出端247连接到第一XOR门227的第二输入端。第一XOR门227将输出255提供到反相器259的输入端,所述反相器259使输出255变反以将反相器输出261(称为VS以表示实际值和差分实际值相同)提供到验证逻辑块231。第二寄存器输出端246连接到第二XOR门228的第一输入端。第四寄存器输出端248连接到第二XOR门228的第二输入端。第二XOR门228将输出256提供到反相器260的输入端,所述反相器260使输出256变反以将反相器输出262提供(称为IS以表示相反值和差分相反值相同)到验证逻辑块231。第三寄存器输出端247连接到第三XOR门229的第一输入端。第四寄存器输出端248连接到第三XOR门229的第二输入端。第三XOR门229将输出257(称为DS以表示差分实际值和差分相反值反映相同的差分内部值)提供到反相器230的输入端。反相器230使输出端257处的DS信号反相以将反相器输出258(称为DSb以表示低电平有效,指示差分实际值与其相反差分值匹配)提供到验证逻辑块231的输入端。如上文所提到,反相器输出261、262以及258可被视为XNOR函数输出,提供相对于XOR门227、228以及229所耦合到的第一寄存器223、第二寄存器224、第三寄存器225以及第四寄存器226的输出的XNOR值。基于提供到验证块231的VS、IS以及DSb信号,验证块231在有效性线109和无效性线110处提供互斥输出,以指示存储在第一寄存器223、第二寄存器224、第三寄存器225以及第四寄存器226中的值的组合是否有效地表示所存储的位值。值得注意的是,有效性线109和无效性线110不使用双轨编码;替代地,仅在双轨编码输出Out、Outb反映有效值时确证有效性线109,且每当内部逻辑已经呈现无效状态时确证无效性线110,因此指出无效内部状态。避免同时确证两个输出,尽管当达到不确定的内部状态时两个信号都被去确证;因为内部FF的修改后状态需要修复操作,或写入操作已经开始而非成功地结束。这准许外部逻辑使用有效/无效信号对来认定输出信号Out、Outb合格。在一个实施例中,XOR门227、228和229、反相器259、260和230以及验证逻辑块231不仅用以验证存储在第一寄存器223、第二寄存器224、第三寄存器225以及第四寄存器226中的值,而且还用以验证在写入操作期间在非反相输入线102和反相输入线103处的双轨编码输入值的互补性质。例如,通过使将存储在第一寄存器223、第二寄存器224、第三寄存器225以及第四寄存器226中的至少一个寄存器中的值中的至少一个值基于应恰当地为在非反相输入线102处的非反相输入值的值,且通过使将存储在第一寄存器223、第二寄存器224、第三寄存器225以及第四寄存器226中的至少一个其它寄存器中的值至少一个其它值基于应恰当地为在反相输入线102处的反相输入值的值,可以通过XOR门227、228和229、反相器259、260和230以及验证逻辑块231,基于将输入值的不正确组合传播到存储在第一寄存器223、第二寄存器224、第三寄存器225以及第四寄存器226中的值,而检测到的在非反相输入线102和反相输入线103处的值不恰当地是相同值的情况。在另一实施例中,在非反相输入线102和反相输入线103处的输入值的验证可以替代地或补充地通过写入和修复逻辑块221提供。位存储元件包括四个内部触发器(FF),其中复位操作请求新状态,通过将Rb输入连接到特定FF的‘set’或‘clr’复位输入来反映有效‘0’或有效‘1’,如下文在表1中所示。复位操作的效果是将四个内部触发器的值复位到表示安全状态的所存储位值,所述安全状态可以是有效‘1’或有效‘0’;如表2中示出。表1:内部触发器值和复位操作对内部触发器值的影响可以执行复位操作的不同变化以适应其中二进制零值用于表示系统的安全状态的系统,以及其中二进制一值用于表示系统的安全状态的系统,如下文在表2中所示:表2:用于安全状态的不同表示的复位操作AVIVADID安全复位#101010复位#210101提供内部逻辑以确定存储在四个内部触发器中的值的组合的有效性,如下文在表3中所示。验证逻辑块用于产生验证指示,所述验证指示可以包含例如有效输出和无效输出。表3:验证逻辑比较输入信号注释/缩略语VS(实际)值相同;AV输出匹配AD输出IS相反值相同;IV输出匹配ID输出DSb差分值不相同;AD不与ID相反,低电平有效低电平有效复位信号Resetb连接到内部FF的Set/Reset输入(Rb)。通过确证复位信号来建立的值的组合依赖于在系统中使用的安全状态。例如,安全状态可以是所存储的位值1,如由内部FF值组合1010表示,如图2中示出。基本时钟产生器(BCG)为四个内部触发器中的每一个触发器提供时钟信号,所述基本时钟产生器可以在多个位存储元件当中共用。逻辑块还提供用于写入和修复控制。所提出的架构提供具有最小逻辑量的特定且唯一特征集合。任何有效值变化需要在两个连续时钟周期(被称作“全时钟周期”)中的两个相反编码的FF(冗余存储、双轨编码)的变化。例外是复位请求,所述复位请求导致存储元件进入安全状态。在两个时钟周期(一个“全时钟周期”)上的时间分集是保护不受大部分窜改攻击的影响的对策中的一个对策。在任何时间处,仅允许四个FF中的两个FF有效地改变其值。奇异变化将被修复,因此防止错误变化的累积。需要有效写入序列以造成有效值变化。有效写入序列在两个时钟周期处需要两个FF将其值改变成相反状态,该相反状态通过双轨输入提供、通过复制的相反编码写入脉冲控制。任何中间状态可以被识别为非法的(通过去确证有效输出),因此通过停止时钟造成的干扰无效。在任何时间处的相反编码和双轨信号的使用保护不受任何类型的电压攻击影响。不存在可以用于改变位存储元件的所存储位值的奇异内部信号。除关于一个实施例描述的示例性结构之外,还存在可能的时钟分配和写入序列的多个变化。下文更详细描述有效组合。其它可能的变化主要地与针对时钟和复位输入的所使用策略相关。例如,定时系统可以被配置成使用两个时钟沿。此变化可以在长度上将“全时钟周期”映射到所提供的Clk输入的单一时钟周期,而非此输入的两个时钟周期。作为替代实施方案的另一个实例,定时系统可以被配置成使用下降时钟沿而非上升时钟沿。作为又一实例,复位输入的极性可以根据其示出的内容变化。当(VS和IS)都是1且DSb是0时,捕获到正确值。当VS不匹配IS(例如,VSXORIS是1)时,已经检测到可以被校正的单一位差错。在下一全周期内校正单一位差错。有效信号Valid::=VSANDISAND(NOTDSb)在修复周期期间被去确证(不确证无效信号)。当VS和IS都是0(不管DS如何)时或当全部三个信号VS、IS和DSb都是1时,已经发现不应被校正的无效编码;Invalid:=(VSANDISANDDSb)OR(NOT(VSANDIS))。不校正无效编码以避免另外变化,这些另外变化可能产生有效而非既定状态。表格4:可能的内部寄存器值,对应的验证逻辑值,以及其作为有效、无效或可校正错误的状态。图3是示出根据至少一个实施例的位存储装置的时钟产生器的方块图。时钟线222连接到基本时钟产生器(BCG)104的输入端,且将称为Clk的时钟信号作为输入施加到时钟分频器块361、第一时钟逻辑块363、第二时钟逻辑块364、第三时钟逻辑块365以及第四时钟逻辑块366。时钟分频器块361将在时钟线222处接收的时钟信号Clk除以二以在时钟线362处产生具有在时钟线222处接收的时钟信号Clk的一半频率的时钟信号(称为CH以表示一半时钟)。第一时钟逻辑块363使用时钟信号Clk和CH来将第一寄存器时钟信号提供到第一寄存器时钟线251。第二时钟逻辑块364使用时钟信号Clk和CH来将第二寄存器时钟信号提供到第二寄存器时钟线252。第三时钟逻辑块365使用时钟信号Clk和CH来将第三寄存器时钟信号提供到第三寄存器时钟线253。第四时钟逻辑块366使用时钟信号Clk和CH来将第四寄存器时钟信号提供到第四寄存器时钟线254。所提出的位存储元件通过使用利用若干保护策略的定时机制来强硬抵御时钟攻击。不直接利用所提供的基本时钟Clk。替代地,产生和使用内部时钟(Clk1到Clk4)。通过可以过滤掉许多时钟干扰的时钟门来从基本时钟得到内部时钟。出于此目的,通过简单的时钟分频器产生内部时钟相位信号CH。内部FF的所有更新在全周期内执行,所述全周期跨越两个Clk周期。每一内部FF使用不同的定时方案来使用其自身得到的时钟Clk1、Clk2、Clk3、Clk4,这些不同的定时方案根据以下规则而应用在全周期的前半周期或后半周期中:在每一半周期处,修改值(AV,AD)和相反值(IV,ID)。在每一半周期处,使用不同的定时方案来操作FF的交叉对。图4是示出根据至少一个实施例的通过图3的时钟产生器产生的时钟信号的时序图。时钟定时400涉及在时钟线222处接收到的时钟信号Clk、在时钟线362处接收到的时钟信号CH、在第一寄存器时钟线251处接收到的第一寄存器时钟信号(表示为Clk1)、在第二寄存器时钟线252处的第二寄存器时钟信号(表示为Clk2)、在第三寄存器时钟线253处接收到的第三寄存器时钟信号(表示为Clk3)以及在第四寄存器时钟线254处接收到的第四寄存器时钟信号(表示为Clk4)。时钟信号Clk被示为时钟波形474。时钟信号CH被示为时钟波形375。第一寄存器时钟信号Clk1被示为时钟波形476。第二寄存器时钟信号Clk2被示为时钟波形477。第三寄存器时钟信号Clk3被示为时钟波形478。第四寄存器时钟信号Clk4被示为时钟波形479。一个完整的时钟周期开始于时间471处,该时钟周期具有处于低逻辑电平的时钟信号Clk、处于高逻辑电平的时钟信号CH、处于低逻辑电平的时钟信号Clk1、处于高逻辑电平的时钟信号Clk2、处于低逻辑电平的时钟信号Clk3以及处于低逻辑电平的时钟信号Clk4。在第一完整时钟周期内的点C1处,时钟信号Clk、Clk1和Clk4变成高逻辑,时钟信号Clk2变成低逻辑电平,时钟信号CH保持在高逻辑电平并且时钟信号Clk3保持在低逻辑电平。在第一完整时钟周期中的点C1与C2之间中间的点处,时钟信号Clk、CH和Clk1变成低逻辑电平,时钟信号Clk2和Clk3保持在低逻辑电平并且时钟信号Clk4保持在高逻辑电平。在第一完整时钟周期内的点C2处,时钟信号Clk、Clk2和Clk3变成高逻辑电平,时钟信号Clk4变成低逻辑电平,并且时钟信号CH和Clk1保持在低逻辑电平。在第一完整时钟周期结束且后一时钟周期开始时的时间472处,时钟信号CH变成高逻辑电平,时钟信号Clk和Clk3变成低逻辑电平,时钟信号Clk1和Clk4保持在低逻辑电平,并且时钟信号Clk2保持在高逻辑电平。任何前一或后一完整周期的描述重复如图4中示出的先前描述以用于后续第二完整周期。本文中描述的定时方案的实施例可以采用(例如)衍生时钟的形式,其中时钟通过“下班打卡”方案产生,该方案例如通过应用时钟相而针对特定结果时钟Clk1-Clk4消除基时钟的每一第二时钟。第一定时方案CP1在第一半周期期间具有优势,而定时方案CP2在第二半周期期间具有优势。本文中描述的定时方案的另一实施例可以采用半频时钟的形式,即,通过闩锁每一基时钟Clk处的CH值(或其倒数)。这导致第一时钟CE1在第一半周期期间具有优势,第二时钟CE2在完整周期的第二半周期期间具有优势。表5:定时方案基于上述规则存在用于可能衍生时钟的时钟指派的多个组合,从而产生两个更新序列C#1和C#2,如下文在表6中所示。在相同的半循环中出现具有相同值X或Y的条目,该半循环是完整周期的第一半循环或第二半循环。因此针对两个组,更新次序的两个序列(X→Y、Y→X)是可能的,从而针对每一衍生时钟的以下定时指派产生总共四个可能性(<更新次序>和<更新序列>的交叉乘积)。表6:更新定时序列C#1和C#2时钟FFC#1C#2Clk1AVXXClk2IVXYClk3ADYYClk4IDYX下文中的表7是示出单个组合C#2、X→Y的四个可能次序O#1-O#4的实例。类似可能次序适用于另外三个组合。表7:定时序列C#2的可能次序O#1、O#2、O#3、O#4以及更新次序X→Y。两个可能写入序列中的一个写入序列可容许新值的写入,该写入序列另外表示为写入形式W1和形式W2。图5是示出根据至少一个实施例的第一写入脉冲的时序图。在开始于时间581处且结束于时间582处的完整时钟周期内,采样时间588和589出现于时钟信号Clk的时钟波形474的上升边缘上。在采样时间588处,第一写入脉冲WP1处于高逻辑电平,如通过第一写入脉冲波形586所示,而第二写入脉冲WP2处于低逻辑电平,如通过第二写入脉冲波形587所示。在采样时间589处,第一写入脉冲WP1处于低逻辑电平,如通过第一写入脉冲波形586所示,而第二写入脉冲WP2处于高逻辑电平,如通过第二写入脉冲波形587所示。写入脉冲逻辑电平的此种写入脉冲序列500称为形式W1。图6是示出根据至少一个实施例的第二写入脉冲的时序图。在开始于时间583处且结束于时间584处的完整时钟周期内,采样时间590和591出现于时钟信号Clk的时钟波形474的上升边缘上。在采样时间590处,第一写入脉冲WP1处于低逻辑电平,如通过第一写入脉冲波形586所示,而第二写入脉冲WP2处于高逻辑电平,如通过第二写入脉冲波形587所示。在采样时间591处,第一写入脉冲WP1处于高逻辑电平,如通过第一写入脉冲波形586所示,而第二写入脉冲WP2处于低逻辑电平,如通过第二写入脉冲波形587所示。写入脉冲逻辑电平的此种写入脉冲序列600称为形式W2。将新的有效值写入到存储装置中需要一些特定考量以避免产生安全攻击的漏洞。出于此目的,限定具体写入序列以获得有效结果。待写入的值以差分形式提供于信号In处以及(反相的)Inb处。写入使用写入脉冲WP1、WP2以在完整周期的二分之一周期中各自不同地切换。不遵守以上概念的任何部分写入序列将导致存储装置进入INVALID状态(确证输出“无效的”)。具体来说,当In和Inb处的值在被采样到内部FF中的情况下未反相、仅存在单个写入脉冲或WP1和WP2两者在采样时间处未反相,或违反或不恰好符合写入操作期间的预期更新序列(例如,由于同时篡改复位、电压或时钟/衍生时钟)时将是如此。如上文可以看出,在两对信号上存在与迫切的差分更新需求配对的时间分集(两个更新半循环),每一个更新半循环使用不同更新方案。通过组合选定更新序列C#1/C#2、更新次序X→Y/Y→X限定允许的有效写入序列,而不管使用的具体定时方案如何。随后需要根据以下表8选择每一FF的正确写入脉冲WP1、WP2:表8:定时序列、次序以及写入脉冲序列次序C1C2AVIVADIDC#1X→YAV+IVAD+IDWPjWPjWPkWPkC#1Y→XAD+IDAV+IVWPkWPkWPjWPjC#2X→YAV+IDAD+IVWPjWPkWPkWPjC#2Y→XAD+IVAV+IDWPkWPjWPjWPk更新形式的映射如下:形式W1的映射:WPj=WP1、WPk=WP2形式W2的映射:WPj=WP2、WPk=WP1C1、C2:是指完整周期的具体一半周期,如在图4中所指示AV、IF、AD、ID:是指在每一选定方案的具体时间中修改的修改后触发器。将输入信号In和Inb两者直接写入到相应FF中。信号In写入AV和AD,而(反相信号)Inb写入IV和ID。任何写入完全通过检查获得资格,该检查验证输入信号In和Inb的双轨编码以及写入脉冲WP1、WP2的正确性。以上规范导致任何中间状态为表4的<无效状态、写入不确定>编码中的一个。下文中的表9仅示出所有更新序列C#1、C#2以及次序X→Y/Y→X的有效变化(信号(相同→相同)改变的任何轻微改变将不修改且因此不引起改变)。表9:有效变化任何不完整更新序列(例如,停止时钟、差分检查失败等)将引起INVALID状态。WRITE&REPAIR逻辑选择每一内部FF的合适写入值,该写入值随后通过对应时钟定时到FF中。存在实施此行为的两个选项:当既不需要写入也不需要修复时,选择先前值或阻止写入(即,通过提供CanWrite信号)。通过选择先前值来实施此行为的选项可使用以下伪RTL代码实施:其中InZ和OutZ以及ClkZ是内部FF(AV、IV、AD、ID)中的任一个的相应输入和输出以及时钟信号并且在此FF被识别为切换到错误值的情况下,RepZ是对应FF的修复值,如在表4中所指示。通过使用CanWrite信号来实施此行为的选项使用类似伪RTL代码:其中InZ和ClkZ是内部FF(AV、IV、AD、ID)中的任一个的相应输入和时钟信号并且在此FF被识别为切换到错误值的情况下,RepZ是对应FF的修复值,如在表4中所指示。对于两个选项,信号WPz涉及WP1和/或WP2,如上文在表8中示出。下文在表10和11中示出其它选择。表10:信号选择表11:RepZ信号的选择:图7是示出根据至少一个实施例的例如使用上述有效写入的选择的方法的流程图。在确证复位输入“Rb”之后开始处理,这引起位存储装置100进入其“安全”状态701。随后在块702中,该位存储装置100等待切换输入时钟Clk。在块703中,在接收输入时钟之后,该位存储装置100产生衍生时钟Clk1、Clk2、Clk3和Clk4。在块704中,该位存储装置100采样写入脉冲WP1、WP2以及双轨输入In、Inb。同时根据表11计算每一FF(AV、IV、AD、ID)的修复信号RepZ。像在硬件中一样,可依序或完全并行执行块703和704的处理。块705中的以下处理针对每一内部FF(AV、IV、AD、ID)重复且同时执行。在此块中,在子块751中对应FF等待其相关时钟输入(Clk1、Clk2、Clk3、Clk4中的一个)(如在表6、7和10中示出)切换。当通过评估写入脉冲WP1、WP2和双轨输入In、Inb在子块752中检测到有效写入操作时,选择对应输入InZ作为写入数据;否则检查在子块753中是否需要修复操作。当需要修复时,如在表11中示出选择对应修复信号RepZ,否则选择原始信号Zin。随后在子块754中写入实际选定值。此写入操作还引起对应输出OutZ的产生。此后,处理重复等待输入时钟Clk的新时钟周期的步骤702。在块706中,与上述操作同时计算位存储装置的有效和无效输出两者。这是在更新内部FF中的一个之后立即发生的连续操作,这在FF中的一个内的所存储值将由于环境影响(例如,类似于辐射)受损的情况下还确保输出OutZ的有效性的正确反映。图8是说明根据至少一个实施例的方法的流程图。方法800在块801中开始且继续到块802。在块802中,在位存储装置的互补输入线上接收互补逻辑电平处的互补输入信号对,该互补逻辑电平表示接收到的位值。尽管互补逻辑电平确实互补,其中对于通过适当双轨编码的输入值,一个具有表示二进制0的逻辑电平且另一个具有表示二进制1的逻辑电平,但是对于错误输入,应适当地为互补逻辑电平的两者可具有相同逻辑电平。提供此错误输入的检测,并且可以防止此错误输入不恰当地改变存储在位存储装置中的所存储位值。方法800从块802继续到块803。在块803中,将输入信号施加到写入和修复逻辑电路。例如,当存储在位存储装置中的位值将通过新值更新时,来自块802的输入信号可以施加到写入和修复逻辑电路。在其它时候,例如当不存储新值时,在位存储装置内的寄存器的输出端处的输出值可以提供为到写入和修复逻辑电路的输入信号,以允许(例如)重写已存储在位存储装置中的现有值。任选地,可以将来自块802的输入信号以及来自寄存器的输出端处的输出值的其它输入信号均提供到写入和修复逻辑电路,并且写入和修复逻辑电路可以基于提供到写入和修复逻辑电路803的写入脉冲行值的值而选择或忽略该输入信号或其它输入信号。方法800从块803继续到块804。在块804中,基于输入信号提供多个相关数据信号。举例来说,多个相关数据信号可以包括实际值、相反值、差分实际值以及差分相反值。任选地,在由写入和修复逻辑提供之前这些信号中的一个可以改变,以执行通过内部位存储元件中的一个位存储元件所记录的错误值的校正。方法800从块804继续到块805。在块805中,提供源自所提供时钟输入的多个时钟信号以提供内部位存储元件的定时。方法800从块805继续到块806。举例来说,可以将第一衍生时钟信号提供到实际值内部位存储元件,可以将第二衍生时钟信号提供到相反值内部位存储元件,可以将第三衍生时钟信号提供到差分实际值内部位存储元件并且可以将第四衍生值时钟信号提供到差分相反值内部位存储元件。第一衍生时钟信号的定时(例如,相位)可以与第二衍生时钟信号或第四衍生时钟信号的定时相同,并且第三衍生时钟信号的定时(例如,相位)可以与第二衍生时钟信号中无论哪个的相反定时相同且第四衍生时钟信号具有与实际值时钟信号相同的定时(例如,相位)。在块806中,根据用于存储所存储位值的多个衍生时钟信号将多个相关数据信号施加到内部位存储元件。举例来说,可以将实际值提供到实际值内部位存储元件,可以将相反值提供到相反值内部位存储元件,可以将差分实际值提供到差分实际值内部位存储元件并且可以将差分相反值提供到差分相反值内部位存储元件。方法800从块806继续到块807。在块807中,将内部位存储元件的多个相关输出数据施加到验证逻辑电路。例如,可以将来自实际值内部位存储元件、相反值内部位存储元件、差分实际值内部位存储元件以及差分相反值内部位存储元件中的每一个元件的输出值提供到验证逻辑电路。根据一个实施例,可以经由另外一个逻辑电路提供输出值,例如,用于在输出值的组合上执行XNOR功能的充当XNOR门的逻辑电路方法800从块807继续到块808。在块808中,提供所存储位值的有效性指示。有效性指示可以包括有效性输出值和无效性输出值中的至少一个值。如果提供有效性输出值和无效性输出值两者,则此类值的组合可以表示(例如)位存储装置的所存储位值的有效性、位存储装置的所存储位值的无效性以及位存储装置的所存储位值的不确定状态。当遇到可校正位错误时,或在多相写入操作期间,可以产生不确定状态的实例。方法800从块808继续到块809。在块809中,在互补逻辑电平处提供互补输出信号对以表示所存储位值。互补输出信号对可以进行双轨编码。互补输出信号对中的一个输出信号可以表示实际输出值,而互补输出信号对中的另一个输出信号可以表示相反输出值,该相反输出值为实际输出值的逻辑非。至少一个实施例提供由于持续修复功能而存在中间无效状态的校正能力和信令。AV、AD、IV、ID的位翻转(一次一个位)指示将要修复所有此类位翻转(具有用于标记不一致状态的有效信号的临时撤销确证)。多于一个内部触发器的同时位翻转将不进行修复并且致使撤销确证有效信号以及确证无效信号。至少一个实施例提供由于持续写入操作而存在中间无效状态的信令。在有效写入操作期间,在写入序列的第一半期间撤销确证有效信号以确保在中间状态停止无法用作攻击途径。至少一个实施例提供存在不正确或不完整写入操作的信令。如果未对待存储的位值正确地进行双轨编码,则抑制写入操作。如果在写入序列期间修改待存储的位值,则进入无效状态且该无效状态通过确证无效的来标记。如果写入操作的有效第二半未紧跟在写入操作的有效第一半后面,则进入无效状态且该无效状态通过确证无效的来标记。至少一个实施例提供防篡改的差错校正位存储装置,该位存储装置可以替换基本存储元件(例如,触发器)以对抗已知安全攻击提供稳定性并且该位存储装置可以用于保持基本决策标准。类似于三人表决触发器(Triple-VotingFlop,TVF)的差错校正能力可以提供改进的可靠性,这例如对于安全应用可为有用的。根据至少一个实施例,位存储装置包括:包括第一输出端的第一寄存器,该第一寄存器被配置成存储实际值且该第一输出端被配置成提供第一输出值;包括第二输出端的第二寄存器,该第二寄存器被配置成存储相反值(例如,实际值的倒数),其中第二寄存器的第二输出端处的第二输出值与第一寄存器的第一输出端处的第一输出值相反(例如,互补);包括第三输出端的第三寄存器,该第三寄存器被配置成存储差分实际值;包括第四输出端的第四寄存器,该第四寄存器被配置成存储差分相反值,其中在第四输出端处的差分相反值相对于在第三寄存器的第三输出端处的差分实际值反相;验证电路,该验证电路包括耦合到第一寄存器的第一输出端的第一验证输入端、耦合到第二寄存器的第二输出端的第二验证输入端、耦合到第三寄存器的第三输出端的第三验证输入端、耦合到第四寄存器的第四输出端的第四验证输入端和用于提供有效性指示的有效性输出端;以及写入电路,该写入电路具有耦合到第一寄存器的第一写入电路输入端、耦合到第二寄存器的第二写入电路输入端、耦合到第三寄存器的第三写入电路输入端以及耦合到第四寄存器的第四写入电路输入端。写入电路被配置成在第一时钟边沿处使得第一寄存器存储实际值且造成第一其它存储操作,该第一其它存储操作选自由以下各项构成的第一群组:使得第二寄存器存储相反值以及使得第四寄存器存储差分相反值,该写入电路被配置成在第二时钟边沿处使得第三寄存器存储差分实际值且造成第二其它存储操作,该第二其它存储操作选自由以下各项构成的第二群组:使得第二寄存器存储相反值以及使得第四寄存器存储差分相反值。第二其它存储操作在与第一其它存储操作不同的寄存器上执行。根据至少一个实施例,写入电路另外被配置成接收第一、第二、第三和第四寄存器的输出值、确定第一、第二、第三和第四寄存器中的错误寄存器的可校正差错以及将校正值作为实际值提供到错误寄存器以校正可校正差错。根据至少一个实施例,位存储装置提供可用于防止差错累积的连续差错校正。根据至少一个实施例,第一其它存储操作的第一实例包括使得第一寄存器存储实际值且该第一其它存储操作由使得第二寄存器存储相反值构成,并且第一其它存储操作的第二实例包括使得第一寄存器存储实际值且该第一其它存储操作由使得第四寄存器存储差分相反值构成。根据至少一个实施例,第一寄存器的第一输出值、第二寄存器的第二输出值、第三寄存器的第三输出值以及第四寄存器的第四输出值的十六个组合中的仅两个组合对应于有效位存储值;其中该十六个组合中的两个组合具有该十六个组合内的最大可能汉明距离。根据至少一个实施例,第一、第二、第三和第四寄存器的输出值的十六个组合中的两个组合包括第一、第二、第三和第四寄存器的具有相同值的输出值且对应于无效编码,该无效编码既不能用除复位操作外的操作或有效写入序列来校正成正确的组合也不能用除复位操作外的操作或有效写入序列来修改成正确的组合。根据至少一个实施例,在第一、第二、第三和第四寄存器的输出端处的值的可校正位组合由与两个有效组合中的任一有效组合具有1汉明距离的组合构成。根据至少一个实施例,写入电路接收包括非反相输入线和反相输入线的双轨编码输入线作为位存储装置的输入,其中写入电路接收两个写入脉冲输入,其中当通过两个写入脉冲输入指示正确的写入操作时,第一寄存器的实际值和第三寄存器的差分实际值从非反相输入线得到,且第二寄存器的相反值和第四寄存器的差分相反值从反相输入线得到。根据至少一个实施例,正确的写入操作通过在两个写入脉冲输入处的相反编码写入脉冲输入指示。根据至少一个实施例,第一时钟边沿和第二时钟边沿从在位存储装置内产生的时钟信号获得。根据至少一个实施例,当第一寄存器的第一输出值、第二寄存器的第二输出值、第三寄存器的第三输出值以及第四寄存器的第四输出值对应于表示有效位存储的两个组合中的任一组合时,验证电路提供确证的有效性指示。根据至少一个实施例,方法包括接收实际值输入端处的实际值和相反值输入端处的相反值;在第一时钟边沿处将实际值存储在第一寄存器中且在第一时钟边沿处执行第一其它存储操作,该第一其它存储操作选自由以下各项构成的第一群组:将相反值存储在第二寄存器中以及将差分相反值存储在第四寄存器中;在与第一时钟边沿时间上偏移的第二时钟边沿处将差分实际值存储在第三寄存器中且在第二时钟边沿处执行第二其它存储操作,该第二其它存储操作选自由以下各项构成的第二群组:将相反值存储在第二寄存器中以及将差分相反值存储在第四寄存器中,其中第二其它存储操作在与第一其它存储操作不同的寄存器上执行。根据至少一个实施例,该方法另外包括:从第一、第二、第三和第四寄存器的输出值确定第一、第二、第三和第四寄存器中的错误寄存器的可校正差错;以及将正确值写入到错误寄存器以校正可校正差错。根据至少一个实施例,执行第一其它存储操作的第一实例由将相反值存储在第二寄存器中构成,并且其中执行第一其它存储操作的第二实例由将差分相反值存储在第四寄存器中构成。根据至少一个实施例,第一、第二、第三和第四寄存器的输出值的十六个组合中的仅两个组合对应于有效位存储值。根据至少一个实施例,该方法另外包括:接收包括非反相输入线和反相输入线的冗余输入线作为输入;以及提供包括非反相输出线和反相输出线的冗余输出线作为输出。根据至少一个实施例,该方法进一步包括从内部产生的时钟信号获得第一时钟边沿和第二时钟边沿。根据至少一个实施例,集成电路(integratedcircuit,IC)包括:包括第一输出端的第一寄存器,该第一寄存器被配置成存储实际值,该第一输出端被配置成提供第一输出值;包括第二输出端的第二寄存器,该第二寄存器被配置成存储相反值,其中相反值与实际值相反(例如,互补),该第二输出端被配置成提供第二输出值;包括第三输出端的第三寄存器,该第三寄存器被配置成存储差分实际值:包括第四输出端的第四寄存器,该第四寄存器被配置成存储差分相反值,其中差分相反值相对于差分实际值反相;验证电路,该验证电路包括耦合到第一寄存器的第一输出端的第一验证输入端、耦合到第二寄存器的第二输出端的第二验证输入端、耦合到第三寄存器的第三输出端的第三验证输入端和耦合到第四寄存器的第四输出端的第四验证输入端以及用于基于从第一、第二、第三和第四寄存器接收的输出值提供有效性指示的有效性输出端;以及写入电路,该写入电路具有耦合到第一寄存器的第一写入电路输入端、耦合到第二寄存器的第二写入电路输入端、耦合到第三寄存器的第三写入电路输入端以及耦合到第四寄存器的第四写入电路输入端,该写入电路被配置成在第一时钟边沿处使得第一寄存器存储实际值且造成第一其它存储操作,该第一其它存储操作选自由以下各项构成的第一群组:使得第二寄存器存储相反值以及使得第四寄存器存储差分相反值,该写入电路被配置成在第二时钟边沿处使得第三寄存器存储差分实际值且造成第二其它存储操作,该第二其它存储操作选自由以下各项构成的第二群组:使得第二寄存器存储相反值以及使得第四寄存器存储差分相反值,其中第二其它存储操作在与第一其它存储操作不同的寄存器上执行。根据至少一个实施例,集成电路提供可用于防止差错累积的连续差错校正。根据至少一个实施例,第一其它存储操作的第一实例包括使得第二寄存器存储相反值,并且第一其它存储操作的第二实例包括使得第四寄存器存储差分相反值。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1