可编微程序设备代码签名的制作方法

文档序号:6607488阅读:144来源:国知局
专利名称:可编微程序设备代码签名的制作方法
技术领域
本发明大体涉及一种可编微程序设备,具体涉及一种被配置用来执行代码、同时 检查代码未被损坏(corrupt)的可编微程序设备。
背景技术
众所周知,可编微程序设备是一种包括下述元件的电子设备处理器;存储软件 和/或固件代码的代码存储器,当所述可编微程序设备使用时,所述处理器执行该代码;和 数据存储器,在执行该代码时所使用的变量的值被存储在数据存储器中。众所周知,可编微程序设备的代码存储器的内容(即,代码)可因可编微程序设备 所暴露的电磁干扰(EMI)而被改变(即,损坏)。为确定代码的损坏,因而循环计算代码签名并将其与参考签名相比较。更具体地,签名计算包括涉及所有存储在代码存储器中的要素的数字_逻辑计 算,并且该计算是由处理器基于签名计算函数而进行的,该签名计算函数构成存储在代码 存储器中的代码的一部分。另一方面,参考签名在编译可编微程序设备代码时被计算,并且与代码同时被存 储在可编微程序设备代码存储器中。签名计算函数由处理器周期性地执行,并且通常具有最低的优先级,S卩,当处理器 不执行其他代码函数时才执行签名计算函数。如果处理器计算的签名与存储在代码存储器中的参考签名不符,可编微程序设备 即被禁用以防止损害。但是,申请人已观察到,当代码被损坏时,不可能预测代码执行的进展 (development),这意味着,当代码被损坏时,不再能确保签名计算函数的执行。更具体地,当代码被损坏时,签名可能被错误地计算,更严重的是,可能停止被处 理器计算,因而代码的损坏可能永不被检测到。

发明内容
因此,本发明的目的在于提供一种可以削弱(alleviate)上述缺陷的可编微程序 设备。该目的是通过本发明来实现的,其中本发明涉及一种可编微程序电子设备,该设 备包括存储包含许多指令的软件和/或固件代码的代码存储器,所述可编微程序电子设备 被配置用来计算存储在代码存储器中的代码的签名;和基于所计算出的签名来检测存储在代码存储器中的代码的任何损坏;所述可编微程序电子设备的特征在于,其被进一步配置用来根据指令周期操作,每个指令周期被分成各自的第一操作阶段和各自的第二操作 阶段;
在指令周期的第一操作阶段从代码存储器中读取第一指令;在所述指令周期的第二操作阶段解码并执行所读取的第一指令;在所述指令周期的第二操作阶段从所述代码存储器中读取第二指令;基于所读取的第二指令计算所述签名。


为更好地理解本发明,现将参考附图(未按比例绘制)来描述优选的实施方式,该 实施方式仅是示例性的并且不能被解释为对本发明的限制,其中图1显示由本发明的可编微程序电子设备进行的各种操作关于指令周期和该可 编微程序电子设备的时钟(clock)的时序图;图2显示本发明优选实施方式的可编微程序电子设备的操作结构图。
具体实施例方式以下描述用来使本领域技术人员制造和使用本发明。对这些实施方式的各种修改 对于本领域技术人员来说将是显而易见的,且不背离要求保护的本发明的范围。因此,本发明不限于所显示的实施方式,而应给予与本文公开的原理和特征相一 致的且在所附权利要求中限定出的最大范围。根据本发明,其提供一种可编微程序电子设备,该设备包括存储包含多个指令的 软件和/或固件代码的代码存储器,所述可编微程序电子设备被配置用来计算存储在代码存储器中的代码的签名;和基于所计算出的签名来检测存储在代码存储器中的代码的任何损坏。本发明的可编微程序电子设备的特征在于,其进一步被配置用来根据指令周期操作,每个指令周期被分成各自的第一操作阶段和各自的第二操作 阶段;在指令周期的第一操作阶段从代码存储器中读取第一指令;在所述指令周期的第二操作阶段解码并执行所读取的第一指令;在所述指令周期的第二操作阶段从所述代码存储器中读取第二指令;基于所读取的第二指令计算所述签名。根据本发明,代码中的每个指令的执行因而被分成两个操作阶段,如同两级输送
管道一样。也就是说,在指令周期的第一操作阶段,代码存储器被用来读取代码的指令,并且 在该指令周期的第二操作阶段,当所读取的指令被解码和执行时,代码存储器被用来读取 用于签名计算的指令。更具体地,本发明的可编微程序电子设备包括签名计算单元,该签名计算单元被 配置用来在所述指令周期的第二操作阶段从所述代码存储器中读取所述第二指令;基于所读取的第二指令计算所述签名;和基于所计算出的签名来检测存储在代码存储器中的代码的任何损坏。所述签名计算单元优选也被配置用来
将所述计算出的签名与参考签名比较;和如果所述计算出的签名与参考签名不同,禁用所述可编微程序电子设备的操作。所述签名计算单元也被便利地配置用来从所述代码存储器中读取所述参考签名。为更清楚地理解本发明,图1显示了由本发明可编微程序电子设备进行的各种操 作的关于指令周期和该可编微程序电子设备的时钟的时序图。更具体地,图1时序图从上至下显示可编微程序电子设备的时钟的时距图;可编微程序电子设备对应于时钟的时距图的指令周期Cl、C2、C3和C4 ;从可编微程序电子设备的代码存储器提取第一指令II、12、13和14的第一提取 操作FETCH II、FETCH 12、FETCH 13禾口 FETCH 14相对于指令周期Cl、C2、C3、C4以及可编 微程序电子设备的时钟的时间安排,所述第一提取操作FETCH II、FETCH 12、FETCH 13和 FETCH 14是由可编微程序电子设备的提取单元进行的;从代码存储器提前第二指令Wl、W2、W3和W4的第二提取操作FETCH WUFETCH W2、 FETCH W3和FETCH W4相对于指令周期C1、C2、C3、C4以及可编微程序电子设备的时钟的时 间安排,所述第二提取操作FETCH WUFETCH W2、FETCH W3和FETCH W4是由可编微程序电 子设备的签名计算单元进行的;和所述第一指令II、12、13和14的解码和执行操作D&E II、D&E 12、D&E 13和D&E 14相对于指令周期C1、C2、C3、C4以及可编微程序电子设备的时钟的时间安排,所述解码和 执行操作D&E IUD&E I2、D&E 13和D&E 14是由可编微程序电子设备的解码和执行单元进 行的。更具体地,如图1所示,可编微程序电子设备的时钟频率是指令周期C1、C2、C3、C4 的频率的两倍,每个指令周期包含第一操作阶段(在图1中分别标示为cn、c21、c31、c41)和 第二操作阶段(在图1中分别标示为ci2、C22, C32、C42)。而且,如图1所示,在第一操作阶段Cn、C21、C31、C41,可编微程序电子设备的提取单 元进行从代码存储器中提取第一指令I1、I2、I3和14的第一提取操作FETCH IUFETCH 12、 FETCH 13和FETCH 14,即,在代码存储起中搜索和读取第一指令II、12、13和14。在第二操作阶段C12、C22、C32、C42,签名计算单元进行从代码存储器中提取第二指令 Wl、W2、W3 禾口 W4 的第二提取操作 FETCH WU FETCHW2、FETCH W3 禾口 FETCH W4,即,签名计算 单元在代码存储起中搜索和读取第二指令W1、W2、W3和W4,同时,解码和执行操作单元进行 所述第一指令II、12、13和14的解码和执行操作D&E II、D&E 12、D&E 13和D&E 14。为更加清楚地理解本发明,除图1之外,图2显示了根据本发明的优选实施方式的 可编微程序电子设备20的操作结构图。更具体地,可编微程序电子设备20包括提取单元21;复用器22 ;存储包含多个指令的代码的代码存储器23 ;锁存器24;解码和执行单元25 ;和
签名计算单元26。更具体地,提取单元21被配置用来从代码存储器23中取回要被执行的指令,从而 为复用器22提供程序计数器,即,提供要被执行的指令的指示器(即,地址)。同样地,数字计算单元26被配置用来从代码存储器23中取回要被用于代码签名 计算的指令,从而为复用器22提供要被用于代码签名计算的指令的地址。复用器22受控制信号控制,因而要被执行的或要被用于代码签名计算的指令在 存储器23中被读取,即,要被执行的指令或要被用于代码签名计算的指令被从代码存储器 23中取回。例如,参考图1和图2,复用器22可方便地被可编微程序电子设备的时钟控制,从 而在时钟的上升沿(rising edge)将从代码存储器23中读取第一指令II、12、13和14替 代为读取第二指令Wl、W2、W3和W4。更具体地,在第一操作阶段Cn、C21、C31、C41,复用器22允许从代码存储器23中读取 /取回第一指令II、12、13和14,并存储在锁存器24中,并且在第二操作阶段C12, C22, C32, C42,复用器22允许签名计算单元26从代码存储器23中读取/取回第二指令W1、W2、W3和 W4。在第二操作阶段C12、C22, C32> C42,解码和执行单元25也读取和解码并执行存储在 锁存器24中的第一指令II、12、13和14。解码和执行单元25随后更新提取单元21的程序计数器以指向要被执行的另一个 指令,该另一个指令在逻辑上遵循刚被执行的那个指令。 最终,在基于存储在代码存储器23中的所有指令计算签名后,签名计算单元26将 计算出的签名与存储在代码存储器23中的参考签名比较。如果所计算出的签名不同于参考签名,签名计算单元26禁用可编微程序电子设 备20的操作(即使该设备失效),从而防止其引起任何损害。签名计算单元26为计算签名并将计算出的签名与参考签名比较而进行的操作可 优选地基于循环冗余校验(CRC)法,例如CRC-32 (32位)。可编微程序电子设备20可便利地包括被配置用来执行提取单元21、锁存器24和 解码和执行单元25的第一处理器,以及被配置用来执行数字计算单元26的协处理器。在 这种情况下,处理器和协处理器通过复用器22共用代码存储器23。本发明的优点由于以上描述而变得清楚。特别地,重要的是要注意到,用于计算本发明的签名的时间是如何可预测的,并且 该时间等于存储在代码存储器中的指令的数目乘以指令周期的长度(即操作阶段的长度 的2倍)。另一个优点在于,当代码被损坏时,数字的正确计算未受代码存储器的内容或代 码存储器的内容的任何损坏的影响。明显地,可对本发明作出改变,但是不背离如所附权利要求书界定出的本发明的 范围。
权利要求
一种可编微程序电子设备,其包括存储有包含许多指令的软件和/或固件代码的代码存储器(23),所述可编微程序电子设备被配置用来计算存储在所述代码存储器(23)中的代码的签名;和基于所计算出的签名来检测存储在所述代码存储器(23)中的代码的任何损坏;所述可编微程序电子设备的特征在于,其被进一步配置用来根据指令周期(C1、C2、C3、C4)操作,每个指令周期被分成各自的第一操作阶段(C11;C21;C31;C41)和各自的第二操作阶段(C12;C22;C32;C42);在指令周期(C1、C2、C3、C4)的第一操作阶段(C11;C21;C31;C41)从所述代码存储器(23)中读取第一指令(I1;I2;I3;I4);在所述指令周期(C1、C2、C3、C4)的第二操作阶段(C12;C22;C32;C42)解码并执行所读取的第一指令(I1;I2;I3;I4);在所述指令周期(C1、C2、C3、C4)的第二操作阶段(C12;C22;C32;C42)从所述代码存储器(23)中读取第二指令(W1;W2;W3;W4);基于所读取的第二指令(W1;W2;W3;W4)计算所述签名。
2.如权利要求1所述的可编微程序电子设备,其还包括签名计算单元(26),所述签名 计算单元被配置用来在所述指令周期(C1、C2、C3、C4)的第二操作阶段(C12 ;C22 ;C32 ;C42)从所述代码存储器 (23)中读取所述第二指令(Wl ;W2 ;W3 ;W4);基于所读取的第二指令(Wl ;W2 ;W3 ;W4)计算所述签名;和基于所计算出的签名来检测存储在代码存储器(23)中的代码的任何损坏。
3.如权利要求2所述的可编微程序电子设备,其中所述签名计算单元(26)还被配置用来还基于存储在所述代码存储器(23)中的参考签名来检测存储在所述代码存储器(23) 中的代码的所述任何损坏。
4.如权利要求3所述的可编微程序电子设备,其中所述签名计算单元(26)还被配置用来将所述计算出的签名与所述参考签名比较;和如果所述计算出的签名与所述参考签名不同,检测存储在所述代码存储器(23)中的 代码的所述任何损坏。
5.如权利要求3所述的可编微程序电子设备,其中所述签名计算单元(26)还被配置用来从所述代码存储器(23)中读取所述参考签名。
6.如权利要求2所述的可编微程序电子设备,其中所述签名计算单元(26)还被配置用来如果检测到存储在所述代码存储器(23)中的代码的所述任何损坏,则禁用所述可编 微程序电子设备的操作。
7.如权利要求2所述的可编微程序电子设备,其中所述签名计算单元(26)还被配置用来基于循环冗余校验(CRC)法计算所述签名。
8.一种用于可编微程序电子设备的电子处理装置,其被配置成权利要求2所述的数字 计算单元(26)。
9.一种包含指令的软件和/或固件产品,当所述指令被可编微程序电子设备的可编程 处理装置执行时,所述指令使得所述可编程处理装置变得被配置成权利要求2所述的签名 计算单元(26)。
全文摘要
本发明公开一种可编微程序电子设备,其具有存储包含许多指令的软件和/或固件代码的代码存储器(23)。所述可编微程序电子设备被配置用来计算存储在代码存储器(23)中的代码的签名,并基于所计算出的签名检测存储在代码存储器(23)中的代码的任何损坏。可编微程序电子设备的特征在于,其进一步被配置用来根据指令周期(C1、C2、C3、C4)操作,每个指令周期被分成各自的第一操作阶段(C11;C21;C31;C41)和各自的第二操作阶段(C12;C22;C32;C42);用来在指令周期(C1、C2、C3、C4)的第一操作阶段(C11;C21;C31;C41)从所述代码存储器(23)中读取第一指令(I1;I2;I3;I4);用来在所述指令周期(C1、C2、C3、C4)的第二操作阶段(C12;C22;C32;C42)解码并执行所读取的第一指令(I1;I2;I3;I4);用来在所述指令周期(C1、C2、C3、C4)的第二操作阶段(C12;C22;C32;C42)从所述代码存储器(23)中读取第二指令(W1;W2;W3;W4);以及用来基于所读取的第二指令(W1;W2;W3;W4)计算所述签名。
文档编号G06F9/22GK101989188SQ20101024977
公开日2011年3月23日 申请日期2010年8月3日 优先权日2009年8月3日
发明者克劳迪奥·根塔, 阿尔贝托·曼佐尼 申请人:C.R.F.阿西安尼顾问公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1