微型计算机以及电子设备的制造方法_2

文档序号:8543222阅读:来源:国知局
35]图10为电子设备的结构例。
【具体实施方式】
[0036]以下,对适合本发明的实施的方式进行详细的说明。另外,以下所说明的本实施方式不是对权利要求书中所记载的本发明的内容进行不当的限定的方式,在本实施方式中所说明的结构并非全是作为本发明的解決方法所必须的结构。
[0037]1.比较例
[0038]图1为表示本实施方式的比较例的工作说明图。
[0039]微型计算机由对命令进行处理的CPU (Central Processing Unit:中央处理单元)和包含存储装置或接口等在内的外部设备而构成。CPU以被供给时钟信号CK_CPU并且与该时钟信号CK_CPU的上升沿同步的方式而工作。
[0040]S卩,根据时钟信号CK_CPU的上升而实施取命令,并根据下一次的上升而对该命令进行解码从而实施地址计算。在地址计算中,在例如存储有用于执行的数据的主存储装置的地址进行计算。然后,根据下一次的时钟信号CK_CPU的上升而执行命令并将执行结果写入寄存器。在命令的执行中,从根据例如地址计算而得出的地址中读出数据,并由计算装置针对该数据实施处理。
[0041]在实管道传送处理时,针对每I个时钟的方式开始进行第一命令、第2命令,……的处理并对多个的命令进行并行处理。在该情况下,针对每I个时钟而得出命令的执行结果O
[0042]在此种工作中,微型计算机的消耗电流(IDD)根据命令的内容而不同。例如,在计算的内容不同的命令中,根据计算装置而使用的逻辑电路的个数或种类不同,并且根据该逻辑电路而消耗的电流不同。或者,在使用或不使用计算装置的命令和访问或不访问主存储装置的命令中,由于工作的电路不同因此消耗电流不同。
[0043]如上所述,由于与时钟信号CK_CPU的上升同步而对命令进行处理,因此会由于各个时钟的上升而产生消耗电流,该消耗电流对应于该时刻的执行中的命令。因此,通过对该消耗电流(例如,该时间变化的模式)进行解析,从而能够对微型计算机正在执行中的命令或者由该指命令而被构成的算法进行推测。
[0044]2.微型计算机
[0045]图2表示了能够解決此种问题的本实施方式的微型计算机的结构示例。
[0046]微型计算机包括:时钟供给部10 (时钟发生器)、控制数据生成部20、CPU30(处理部)、R0M40、RAM50 (主存储装置)、总线60、第一?第s的外部设备PHl?PHs (s为自然数)。
[0047]CPU30为实施指令处理的处理部。指令处理指的是,如上所述的取命令、解码、地址计算、执行、寄存器写入这一系列的处理。CPU30被构成为,例如命令解码器或寄存器、计算装置(ALU:Arithmetic Logic Unit:计算逻辑单元)等。CPU30通过总线60而将RAM50或外部设备PHl?PHS等的各个部分连接并该通过总线60而实施各个部分间的通信。
[0048]R0M40和RAM50为微型计算机的内部存储器。RAM50作为对CPU30所处理的程序或数据进行存储主存储装置(一次存储装置)而被使用。
[0049]外部设备PHl?PHs为实现微型计算机的周边功能的装置,例如计数器或计时器、插入控制器、串行接口(例如 UART:Universal Asynchronous Receiver Transmitter:通用异步收发报机)、AD转换器、DA转换器、振荡电路等。
[0050]时钟供给部10接收从时钟源被供给的时钟信号CKSl?CKSt (t为自然数)并生成多个时钟信号。时钟源为,例如微型计算机外部的时钟生成电路或微型计算机内部的振荡电路等。时钟供给部10分别向外部设备PHl?PHs、控制数据生成部20、CPU30 (以及R0M40、RAM50)供给所生成的时钟信号 CK_PH1 ?CK_PHs、CK_SYS、CK_CPU。
[0051]控制数据生成部20生成使指令处理的工作时机变化的控制数据CTL。CPU30实施根据该控制数据CTL而使工作时机变化的指令处理。
[0052]具体而言,控制数据生成部20包括产生随机数数据的随机数产生部21,控制数据生成部20根据该随机数数据而输出控制数据CTL。时钟供给部10根据该控制数据CTL而使时钟信号CK_CPU的周期发生变化。而且,CPU30根据该周期发生变化的时钟信号CK_CPU而实施指令处理从而使指令处理的工作时机发生变化。
[0053]图3为表示本实施方式的工作时序图。
[0054]控制数据生成部20从MSB (最高有效位)侧(或LSB (最低有效位)侧)逐位地将随机数的位列作为控制数据CTL而输出。例如当随机数为16进制的“4”时,由于其在二进制的位列的情况下为“0100”,因此控制数据CTL以“0”、“1”、“0”、“0”的顺序而被输出。例如,在图3的例中的时钟信号CK_SYS以每2个时钟的方式逐位地输出。
[0055]时钟供给部10在控制数据CTL为“O”时,将时钟信号CK_CPU以基准的周期而输出。在图3的示例中,其与时钟信号CK_SYS为相同的周期。另一方面,在控制数据CTL为“I”时,以与基准的周期相比而延迟的周期输出时钟信号CK_CPU。在图3的例中,为基准的周期的一半的周期,并使时钟信号CK_SYS的两个脉冲中的第二个的脉冲缺失。由于控制数据CTL是根据随机数数据而被生成的,因此周期发生延迟的时机是随机的。
[0056]由于CPU30根据以该随机的方式使周期发生变化的时钟信号CK_CPU而进行工作,因此微型计算机的消耗电流(IDD)的产生时机也是随机的。具体而言,由于在时钟信号CK_CPU的脉冲缺失时,指令处理不进入下一步骤而成为等待状态,因此消耗电流变小,并且由于该时机为随机,因此能够降低指令与消耗电流之间的关联。
[0057]但是,由于使用随机数而会有以下的问题。如图4所示,在产生例如16进制的“0000”?“FFFF”的随机数的数据时,其成为二进制中的16位的位列。当直接将该位列作为控制数据CTL而使用时,由于在随机数的数据中含有“0000”或“FFFF”,因此“O”或“I”的位最多会连续16回以上。
[0058]在位“O”连续时,此期间由于CPU30在正常的时机而工作,因此指令与消耗电流之间的关联将变大。因此,存在通过消耗电流的解析而能够破解算法或密码的可能性。另一方面,在位“I”连续时,此期间由于CPU30的工作频率延迟,因此微型计算机的性能(处理速度)会降低(或者产生性能的不稳定)。
[0059]在此,在本实施方式中,控制数据生成部20包括代码转换部22,该代码转换部22对随机数的数据进行加工,并以相同逻辑的位不会连续产生规定数值的方式而生成控制数据 CTL。
[0060]图5为表示代码转换的示例图。在该示例中,以将随机数的数据转换为20位的位列并且以“O”或“I”的同一逻辑的位不会产生连续5回以上的方式而生成控制数据CTL。例如,在随机数的数据为“ 0000 ”时,位“ O ”最多只连续3回,随机数的数据为“FFFF”时位“I”最多只连续3回。
[0061]以此方式,通过以同一逻辑的位不会较长地连续的方式而对随机数的数据进行加工,从而能够防止由“O”的连续而导致的入侵的可能性和由“I”的连续而导致的性能的降低。
[0062]更具体而言,代码转换部22根据SblOb方式而对随机数的数据进行转换。SblOb方式为将8位位列转换为10位位列的代码转换法。在本实施方式中,分别将随机数的数据的MSB (最高有效位)侧(上位)8位和LSB (最低有效位)侧(下位)8位转换为10位,并生成共计20位的位列。
[0063]在SblOb
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1