CN117150494A - 半导体设备 - Google Patents

半导体设备 Download PDF

Info

Publication number
CN117150494A
CN117150494A CN202310448594.1A CN202310448594A CN117150494A CN 117150494 A CN117150494 A CN 117150494A CN 202310448594 A CN202310448594 A CN 202310448594A CN 117150494 A CN117150494 A CN 117150494A
Authority
CN
China
Prior art keywords
address
reset
boot
semiconductor device
processor unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310448594.1A
Other languages
English (en)
Inventor
森优树
久保悠司
森田浩史
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Publication of CN117150494A publication Critical patent/CN117150494A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4078Safety or protection circuits, e.g. for preventing inadvertent or unauthorised reading or writing; Status cells; Test cells

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本公开的各实施例涉及半导体设备。一种半导体设备,包括处理器单元、存储引导程序的存储器、复位控制器、和地址检查单元。该复位控制器基于复位请求控制用于该处理器单元的复位并且向将用于在复位释放后要执行的该引导程序的引导地址输出到该处理器单元。该地址检查单元对从该复位控制器输出的该引导地址执行篡改检查并且基于篡改检查结果输出引导地址错误信号。

Description

半导体设备
技术领域
本发明涉及一种半导体设备,并且可以适用于例如用于执行引导程序的半导体设备。
背景技术
近年来,汽车的安全性变得越来越重要。重要的是提高车载半导体设备的安全级别。
安全引导被认为是实现安全级别提高的技术中的一个。安全引导是用以在引导时确认程序认证以防止加载未经授权的程序的机制。安全引导是通过在复位释放后运行安全引导程序来实现的。安全引导程序存储在存储器中并且通过指定其起始地址来执行。在下文中,安全引导程序的起始地址被称为安全引导地址。
日本未审查专利申请公开第2008-59300号(专利文件1)公开了一种用于在从低功耗模式返回到正常操作模式时从外部ROM或保存RAM读取引导程序的微型计算机。专利文献1的微型计算机具有地址切换电路,用于选择用于访问外部ROM中的引导程序的引导地址和用于访问保存RAM中的引导程序的引导地址。
发明内容
故障注入攻击是众所周知的安全攻击中的一者。将电压或噪声注入到设备中的故障注入攻击(Fault injection attack),可能会导致设备发生故障并且避开安全机制。故意注入半导体设备的噪声可能导致安全引导地址被篡改。例如,如果如专利文献1中公开的用于选择引导地址的地址切换电路被故意注入噪声,则可能选择非故意的引导地址。以此方式,引导地址被篡改,并且预期的安全引导可能无法执行。因此,可能无法验证要执行的程序的认证。此外,基于非故意引导地址的未授权程序可能会被执行。
从本说明书和附图的描述中,其他目的和新颖特征将变得显而易见。
根据一个实施例的半导体设备包括处理器单元、存储引导程序的存储器、复位控制器、和地址检查单元。复位控制器基于复位请求控制用于处理器单元的复位并且将用于在复位释放后要执行的引导程序的引导地址输出到处理器单元。地址检查单元对从复位控制器输出的引导地址执行篡改检查并且基于篡改检查结果输出引导地址错误信号。
在根据实施例的半导体设备中,可以提高半导体设备的安全级别。
附图说明
图1是示出根据第一实施例的半导体设备的配置示例的框图。
图2是示出根据第一实施例的地址检查单元的配置示例的框图。
图3是示出根据第一实施例的半导体设备的操作的流程图。
图4是示出根据第一实施例的修改示例的半导体设备的配置示例的框图。
图5是示出根据第一实施例的修改示例的地址检查单元的配置示例的框图。
图6是用于说明根据第一实施例的修改示例的地址检查单元的操作的时序图。
图7是用于说明根据第一实施例的修改示例的地址检查单元的操作的时序图。
图8是示出根据第二实施例的半导体设备的配置示例的框图。
图9是示出根据第二实施例的复位控制器的配置示例的框图。
图10是示出根据第二实施例的地址检查单元的配置示例的框图。
图11是示出根据第二实施例的半导体设备的操作的流程图。
图12是示出根据第二实施例的修改示例的处理器模块的配置示例的框图。
图13是示出根据第二实施例的修改示例的地址检查单元的配置示例的框图。
图14是示出根据第三实施例的半导体设备的配置示例的框图。
图15是示出根据第三实施例的复位控制器的配置示例的框图。
图16是示出根据第三实施例的地址检查单元的配置示例的框图。
图17是图示根据第三实施例的处理器模块的操作的流程图。
图18是示出根据第三实施例的修改示例的处理器模块的配置示例的框图。
图19是示出根据第三实施例的修改示例的地址检查单元的配置示例的框图。
具体实施方式
在下文中,将参考附图详细描述根据实施例的半导体设备。在说明书和附图中,相同或对应的形式元素由相同的附图标记表示,并且省略其重复描述。在附图中,为了便于描述,可以省略或简化配置。此外,至少一些实施例可以彼此任意组合。
(第一实施例)
图1是示出根据第一实施例的半导体设备100的配置示例的框图。
本实施例的半导体设备100例如是具有安全引导功能的SoC(片上系统),并且是使用公知的半导体制造技术形成在一个半导体芯片上的半导体集成电路(LSI)。半导体设备100具有安全引导功能。
半导体设备100包括复位控制器(RSTC)10、处理器模块(PM)20、存储器(MEM)30、功能模块(FM)40和总线50。复位控制器20、处理器模块20、存储器30和功能模块40经由总线50彼此连接。
复位控制器10响应于从外部输入到半导体设备100的外部复位信号RES,生成用于半导体设备100的内部模块的复位信号RST。内部模块基于复位信号RST而被复位。响应于外部复位信号RES,复位信号RST被断言预定时段。当复位被释放时复位信号RST被否定。当复位被释放时,复位控制器10向处理器模块20输出安全引导地址BTA。安全引导地址BTA是在复位释放之后由处理器模块20执行的安全引导程序的起始地址。
处理器模块20包括处理器单元21和地址检查单元22。处理器单元21被配置为能够执行存储在存储器30中的程序。当复位被释放时,处理器单元21基于从复位控制器10输出的安全引导地址BTA访问存储器30,然后执行安全引导程序。
地址检查单元(ADCHK)22执行用于检查从复位控制器10输出的安全引导地址是否已经被篡改的篡改检查,并且基于检查结果来断言或否定引导地址错误信号ERR。处理器单元21基于错误信号ERR来确定是否执行安全引导程序。
存储器30存储由处理器模块20执行的程序。存储器30存储安全引导程序,用于检查在复位释放后执行的程序的认证。例如,此类存储器30可以包括RAM(随机存取存储器)和ROM(只读存储器)。
功能模块40是用于执行特定处理的专用处理电路。此类功能模块40可以包括DMAC(直接存储器存取控制器)或图像处理电路。尽管图1中仅示出了一个功能模块,但是功能模块的数量不限于此。
如上面所描述的,总线50是半导体设备100的连接部件。例如,此类总线50可以包括符合AXI协议的AXI总线。总线50包括总线控制器(未示出)。例如,总线控制单元通过总线50接收由处理器单元21发出的存储器访问请求。总线控制单元基于来自处理器单元21的存储器访问请求来请求对存储器30的访问。
图2是示出根据本实施例的地址检查单元22的配置示例的框图。地址检查单元22包括比较电路2201。比较电路2201将来自复位控制器10的安全引导地址BTA与安全引导地址期望值BTA_E进行比较,并且输出比较结果作为安全引导地址错误信号ERR。如果来自复位控制器10的安全引导地址BTA与安全引导地址期望值BTA_E匹配,则比较电路2201否定安全引导地址错误信号ERR,假设复位控制器10输出的引导地址BTA是正确的(未被篡改的)地址。另一方面,如果来自复位控制器10的安全引导地址BTA与安全引导地址期望值BTA_E不匹配,则比较电路2201断言安全引导地址错误信号ERR,假设由复位控制器10输出的引导地址BTA已经被篡改。以此方式,地址检查单元22检查对从复位控制器10输出的安全引导地址BTA的篡改。
此外,基于复位信号RST使能比较电路2201。特别地,当复位信号RST响应于复位释放而处于否定状态时,比较电路2201变为使能状态并且执行比较操作。
接下来,参考图3,将描述复位释放之后半导体设备100的操作。首先,当复位信号rst被否定并且复位被释放时,安全引导地址BTA被输出到处理器模块20(步骤S01)。响应于被否定的复位信号RST,比较电路2201被使能。然后,比较电路2201将从复位控制器10输出的安全引导地址BTA与安全引导地址期望值BTA_E进行比较(步骤S02)。如果比较结果表明匹配(步骤S02中的是),则地址检查单元22否定引导地址错误信号ERR。基于被否定的安全引导地址错误信号ERR,处理器单元21确定从复位控制器10输出的安全引导地址BTA没有被篡改。在步骤S03中,处理器单元21基于从复位控制器10输出的引导地址BTA访问存储器30。基于引导地址BTA访问的安全引导程序由处理器单元21执行。另一方面,如果比较结果表明不匹配(步骤S02中的否),则地址检查单元22断言安全引导地址错误信号ERR。基于断言的安全引导地址错误信号ERR,处理器单元21确定从复位控制器10输出的安全引导地址BTA已经被篡改。处理器单元21不访问存储器30并且保持复位状态(步骤S04)。
如上面所描述的,根据第一实施例的半导体设备100包括地址检查单元22。地址检查单元22确认从复位控制器10输出的安全引导地址是否已经被篡改。也就是说,即使噪声被故意注入到半导体设备100中并且从复位控制器10输出的安全引导地址被篡改,也可以检测到安全引导地址不正确。当检测到由复位控制器10输出的安全引导地址被篡改并且是不正确的地址时,处理器单元21保持复位状态,而不执行由不正确的地址指定的程序。因此,如果在复位释放之后不能确认正确的安全引导地址,则可以通过不执行程序来实现强安全性。
(第一实施例的修改示例)
接下来,将描述第一实施例的修改示例。在上面所描述的第一实施例中,地址检查单元22对复位控制器10输出的安全引导地址BTA执行篡改检查。然而,可以通过使用从处理器单元21输出到总线50的安全引导地址来执行篡改检查。图4是示出根据第一实施例的修改示例的半导体设备100a的配置示例的框图。根据第一实施例的修改示例的半导体设备100a与图1中示出的半导体设备100的不同之处在于处理器模块20用处理器模块20a代替。其他部件可以类似于图1中示出的半导体设备100。因此,具有与图1中相同功能的部件用相同的附图标记表示,并且省略其描述。
处理器模块20a包括处理器单元21a和地址检查单元22a。处理器单元21a使用由复位控制器10输出的安全引导地址BTA生成存储器访问请求。存储器访问请求包括基于安全引导地址BTA的引导地址BA。地址检查单元22a设置在处理器单元21a和总线50之间,并且检查由处理器单元21a输出到总线50的存储器访问请求中包括的引导地址BA是否已经被篡改。此外,地址检查单元22a根据检查结果生成安全引导地址错误信号ERR并且将其反馈给处理器单元21a。
图5是示出地址检查单元22a的配置的框图。地址检查单元21a包括比较电路2201、引导进行中设置电路2202和引导完成检测器2203。
在复位信号RST被断言之后引导进行中设置电路2202输出引导进行中信号S1,直到引导操作完成。引导进行中信号S1由复位信号RST设置,并且由引导完成信号S2复位(清除)。引导进行中信号S1作为使能信号被供应给比较电路2201。
引导完成检测器2203观察被包括在处理器单元21a在复位释放之后首先输出的第一存储器访问请求中的引导地址BA,以及当存储器访问请求被接受时由总线50的总线控制单元(未示出)发出的请求接收信号(未示出),并且生成引导完成信号S2。在总线50接受处理器单元21a在复位释放之后首先输出的存储器访问请求的周期中,输出引导完成信号S2。
比较电路2201在设置引导进行中信号S1的时段期间,将来自处理器单元21a的存储器访问请求中所包括的引导地址BA与安全引导地址期望值BAE进行比较。然后,比较电路2201基于比较结果生成安全引导地址错误信号ERR。
图6和图7是用于解释根据本修改示例的地址检查单元21a的操作的时序图。参考图6,将描述当在复位释放之后来自处理器单元21a的存储器访问请求中包括的引导地址BA没有被篡改时,地址检查单元22a的操作。
当与外部复位信号RES的输入相对应的复位被释放并且复位信号RST被否定时(时间T01),引导进行中信号S1被设置。因此,比较电路2201被使能。安全引导地址BTA从复位控制器10传送到处理器模块20a。处理器模块20a中的处理器单元21a基于由复位控制器10指定的安全引导地址BTA向总线50生成包括引导地址(BA)的存储器访问请求。比较电路2201将来自处理器单元21a的存储器访问请求中包括的引导地址BA与安全引导地址期望值BAE进行比较。在图6中,比较结果表明匹配并且比较电路2201否定安全引导地址错误信号ERR。在时间T02,总线接收到来自处理器单元21a的存储器访问请求,并且引导完成检测器2203断言引导完成信号S2。引导进行中信号S1被引导完成信号S2复位(清除)。因此,比较电路2201被禁能,不执行后续的比较操作。
接下来,参考图7,将描述当在复位释放之后来自处理器单元21a的存储器访问请求中所包括的引导地址BA已经被篡改时,地址检查单元22a的操作。在图7中,从处理器单元21a输出的引导地址BA与安全引导地址BAE不匹配。因此,在时间T11,比较电路2201断言安全引导地址错误信号ERR。地址检查单元22a的其他操作与图6中的相同,并且因此将省略其描述。
处理器单元21a基于安全引导地址错误信号ERR来确定是否执行安全引导程序。当安全引导地址错误信号ERR被否定时,处理器单元21a执行所读取的安全引导程序。另一方面,当安全引导地址错误信号ERR被断言时,处理器单元21a不执行读取程序并且保持复位状态。
根据第一实施例的修改示例,半导体设备100a包括地址检查单元22a,并且能够以与根据第一实施例的半导体设备100基本上相同的方式确认安全引导地址是否已经被篡改。此外,根据第一实施例的修改示例,地址检查单元22a检查由处理器单元21a输出的存储器访问请求中包括的安全引导地址。因此,不仅当噪声被注入到复位控制器10中并且安全引导地址被篡改时可以被检测到,而且当噪声被注入到处理器单元21a中并且包括在存储器访问请求中的安全引导地址被篡改时可以被检测到。这防止了基于不正确的引导地址的未经授权的程序执行并且提供了更强的安全性。
(第二实施例)
图8是示出根据第二实施例的半导体设备100b的配置示例的框图。根据第二实施例的半导体设备100b和图1中示出的根据第一实施例的半导体设备100之间的区别在于,复位控制器10和处理器模块20相应地用复位控制器10b和处理器模块20b代替,并且进一步增加了另一个处理器模块60。处理器模块20b与第一实施例中描述的处理器模块20的不同之处在于地址检查单元22被地址检查单元22b代替。其他部件和操作与第一实施例中描述的半导体设备100的部件和操作相同,并且因此相同的部件由相同的附图标记表示,并且省略其重复描述。
在第二实施例中,处理器模块20b是执行诸如安全引导和加密处理的安全相关操作的安全模块。处理器模块20b也被称为安全模块20b。另一方面,处理器模块60是控制整个半导体设备100b的处理器。尽管图8中仅示出了两个处理器模块,但是处理器模块的数量不限于此。通过使用多个处理器,处理器模块60也可以是冗余的。
图9是示出根据第二实施例的复位控制器10b的配置示例的框图。复位控制器10b包括复位设置寄存器1010、复位控制电路1020和引导地址选择电路1030。
复位设置寄存器1010被配置为可由处理器模块60读取和写入。当数据被写入复位设置寄存器1010时,生成复位请求信号RR。在复位设置寄存器1010中,至少写入第一数据SRD1和第二数据SRD2。第一数据SRD1是用于请求整个半导体设备100b(半导体芯片)的复位(系统复位)的数据,并且第二数据SRD2是用于请求半导体设备100b的部分模块的复位(模块复位)的数据。尽管基于第二数据SRD2的要被复位的目标模块不受限制,但是在该实施例中,将描述基于第二数据SRD2请求安全模块20b的复位的情况作为示例。
复位控制电路1020基于复位请求(诸如从外部输入的外部复位信号RES或复位请求信号RR)生成复位信号RST1-RSTn。复位信号RST1-RSTn包括供应给半导体设备100b的相应内部模块(诸如安全模块20b、处理器模块50、存储器30和功能模块40)的复位信号。复位控制电路1020通过断言复位信号RST1-RSTn来指示复位,并且通过否定来释放复位。
此外,复位控制电路1020标识基于外部复位信号RES或复位请求信号RR请求的复位是系统复位还是模块复位,并且生成系统复位标识信号SR或模块复位标识信号MR。系统复位可以被视为第一复位,并且模块复位可以被视为第二复位。此外,系统复位标识信号SR可以被视为第一复位标识信号,并且模块复位标识信号可以被视为第二复位标识信号。
例如,当输入外部复位信号RES时,或当第一数据SRD1被写入复位设置寄存器1010中时,复位控制电路1020指示系统复位。在此情况下,复位控制电路1020断言所有复位信号RST1-RSTn并且生成系统复位标识信号SR。另一方面,当第二数据SRD2被写入复位设置寄存器1010时,复位控制电路1020断言用于安全模块20b的复位信号并且生成模块复位标识信号MR,以便指示模块复位。顺便提及,系统复位标识信号SR和模块复位标识信号MR在复位释放时被否定。
引导地址选择电路1030包括地址寄存器1031和选择电路1032。
地址寄存器1031保存安全引导地址S_BA(第一引导地址)和安全引导地址M_BA(第二引导地址)。安全引导地址S_BA是当释放系统复位时要执行的安全引导程序的起始地址。安全引导地址M_BA是当模块复位被释放时执行的安全引导程序的起始地址,并且不同于安全引导地址S_BA。
在系统复位释放时用于执行的安全引导程序的起始地址是预先确定的。因此,安全引导地址S_BA不能被用户改变。另一方面,在作为模块复位的复位目标的处理器模块20b的复位被释放之后,确认由处理器模块20b执行的程序的认证是足够的。因此,与在系统复位释放时执行的安全引导程序不同,在模块复位释放时执行的安全引导程序的内容由用户设置。然后,用户将在模块复位释放时执行的安全引导程序存储在存储器的预定区域中。因此,安全引导地址M_BA不是固定地址,并且可以由用户设置。
选择电路1032基于系统复位标识信号SR和模块复位标识信号MR选择保持在地址寄存器1031中的安全引导地址。例如,当一旦被断言的系统复位标识信号SR被否定时,选择电路1032选择安全引导地址S_BA并且将其作为安全引导地址BTA输出。当一旦被断言的模块复位标识信号MR被否定时,选择电路1032选择并且输出安全引导地址M_BA作为安全引导地址BTA。
接下来,将参考图10描述根据本实施例的地址检查单元22b。图10是示出地址检查单元22b的配置示例的框图。地址检查单元22b包括比较电路2201、2204和OR电路2205。地址检查单元22b确认来自复位控制器10b的安全引导地址BTA的有效性,并且输出确认结果作为引导地址错误信号ERR。以此方式,基于复位的类型来选择安全引导地址。
当系统复位被释放并且系统复位标识信号SR被否定时,比较电路2201变成使能状态。处于使能状态的比较电路2201将从复位控制器10b输出的安全引导地址BTA与安全引导地址期望值S_BAE进行比较。安全引导地址期望值S_BAE是在系统复位被释放之后要执行的安全引导程序的起始地址的期望值。然后,比较电路2201基于比较结果来断言或否定引导地址错误信号S_ERR。
当模块复位被释放并且模块复位标识信号MR被否定时,比较电路2204变成使能状态。处于使能状态的比较电路2204将从复位控制器10b输出的安全引导地址BTA与所期望的安全引导地址值M_BAE进行比较。所期望的安全引导地址M_BAE是在模块复位被释放之后安全引导程序的起始地址的期望值。然后,比较电路2204基于比较结果来断言或否定引导地址错误信号M_ERR。
如上面所描述的,在系统复位释放之后执行的安全引导程序的起始地址是预定的。因此,比较电路2201确定来自复位控制器10b的引导地址BTA的所有位是否准确地匹配安全引导地址期望值S_BAE的所有位。另一方面,由于模块复位释放之后的安全引导程序由用户分配在存储器30的预定区域中,所以可以确定来自复位控制器10b的引导地址BTA是否存在于存储器30的预定区域中。因此,比较电路2204将引导地址BTA的高阶位数据与安全引导地址期望值M_BAE的高阶位数据进行比较。
OR电路2205接收引导地址错误信号S_ERR和M_ERR,并且将安全引导地址错误信号ERR输出到处理器模块20b的处理器单元21。如果在系统复位释放或模块复位释放之后发布的安全引导地址被篡改并且是不正确的地址,则断言安全引导地址错误信号ERR。
参考图11,将描述复位释放之后半导体设备100b的操作。首先,复位控制电路1020标识基于外部复位信号RES或复位请求信号RR请求的复位是系统复位还是模块复位(步骤S11)。当所请求的复位是系统复位时,引导地址选择电路1030在系统复位释放之后基于系统复位标识信号SR选择安全引导地址S_BA,并且输出所选择的安全引导地址S_BA作为引导地址BTA(步骤S12)。在步骤S13中,地址检查单元22b的比较电路2201基于系统复位标识信号SR被使能,并且将引导地址BTA与安全引导地址期望值S_BAE进行比较。如果引导地址BTA与安全引导地址期望值S_BAE匹配(步骤S13中的是),则确定从复位控制器10b输出的引导地址BTA是正确的。处理器单元21基于引导地址BTA访问存储器30,并且读取和执行将在系统复位被释放之后执行的安全引导程序(步骤S14)。另一方面,如果引导地址BTA与安全引导地址期望值S_BAE不匹配(步骤S13中的“否”),则引导地址错误信号S_ERR被断言,并且因此,安全引导地址错误信号ERR被断言。因此,处理器单元21不访问存储器30并且保持系统复位状态(步骤S15)。
类似地,当所请求的复位是模块复位时,引导地址选择电路1030在模块复位释放之后基于模块复位标识信号MR选择安全引导地址M_BA,并且输出所选择的安全引导地址M_BA作为引导地址BTA(步骤S16)。地址检查单元22b的比较电路2204基于模块复位标识信号MR处于使能状态,比较引导地址BTA的高阶位数据和在模块复位释放之后要执行的安全引导地址M_BA的高阶位数据。然后,比较电路2204确定引导地址BTA是否在预定的地址区域内(步骤S17)。如果引导地址BTA的高阶位数据与安全引导地址M_BA的高阶位数据匹配(步骤S17中的是),则从复位控制器10b输出的引导地址BTA被确定为正确。在步骤S18中,处理器单元21基于被确定为正确的引导地址BTA来访问存储器30,读取并且执行要在模块复位被释放之后执行的安全引导程序。另一方面,如果引导地址BTA的高阶位数据与安全引导地址M_BA的高阶位数据不匹配(步骤S17中的“否”),则引导地址错误信号M_ERR被断言,并且因此,安全引导地址错误信号ERR被断言。因此,处理器单元21不访问存储器30并且保持模块复位状态(步骤S15)。
如上面所描述的,根据第二实施例,由于提供了地址检查单元22b,所以可以在复位被释放之后执行由复位控制器10b指定的引导地址的篡改检查。此外,根据第二实施例,复位控制器10b生成复位标识信号,并且地址检查单元22b根据复位标识信号切换安全引导地址的期望值。因此,不仅具有系统复位功能而且具有模块复位功能的半导体设备可以对在系统复位释放之后和模块复位释放之后指定的安全引导地址执行篡改检查,并且执行与所请求的复位相对应的正确的安全引导程序。
此外,根据第二实施例,当在系统复位释放之后或在模块复位释放之后检测到由复位控制器10b指定的引导地址被篡改时,处理器单元21保持复位状态,而不基于由复位控制器10b指定的引导地址引导程序。这防止了由错误引导地址指定的程序的执行并且提供了存储安全性。
(第二实施例的修改示例)
接下来,将描述第二实施例的修改示例。在上面所描述的第二实施例中,如在第一实施例的修改示例中,可以检查从处理器模块20b输出到总线的存储器访问请求中包括的安全引导地址。图12是示出根据第二实施例的修改示例的半导体设备100c的处理器模块20c(安全模块20c)的配置示例的框图。
处理器模块(安全模块)20c包括处理器单元21c和地址检查单元22c。处理器单元21c使用由复位控制器10b指定的安全引导地址BTA来执行存储器访问。地址检查单元22c检查包括在从处理器单元21c输出到总线50的存储器访问请求中的地址是否已经被篡改。然后,地址检查单元22c基于检查结果生成安全引导地址错误信号ERR,并且将信号ERR反馈给处理器单元21c。
图13是示出地址检查单元22c的配置示例的框图。与第二实施例的地址检查单元22b相比,地址检查单元22c还包括引导进行中设置电路2202c和2206c以及引导完成检测器2203c。由于其他部件和操作与实施例2中描述的图10的地址检查单元22b的相同,所以相同的部件由相同的附图标记表示,并且省略其重复描述。
引导进行中设置电路2202c和2206c具有与图5中示出的第一实施例的修改示例的引导进行中设置电路2202相同的配置和功能。引导进行中设置电路2202c和2206c相应地由系统复位标识信号SR和模块复位标识信号MR设置。引导进行中设置电路2202c和2206c都被引导完成信号S2c复位(清除)。也就是说,在系统复位标识信号SR被断言之后输出引导进行中信号S1c,直到引导处理完成。在模块复位标识信号MR被断言之后输出引导进行中信号S3c,直到引导过程完成。
引导完成检测器2203c与上面所描述的第一实施例的修改示例的引导完成检测器2203相同。引导完成检测器2203c观察在系统复位释放之后或模块复位释放之后由处理器单元21c输出的存储器访问请求中包括的引导地址BA和来自总线50的请求接收信号(未示出),并且生成引导完成信号S2c。
比较电路2201和2204相应地基于引导进行中信号S1c、S3c处于使能状态。基于系统复位释放而使能的比较电路2201将处理器单元21c输出的存储器访问请求中包括的引导地址(BA)与在系统复位之后执行的安全引导程序的安全引导地址期望值S_BAE进行比较。另外,基于模块复位释放而使能的比较电路2204将由处理器单元21c输出的存储器访问请求中所包括的引导地址(BA)与在模块复位之后执行的安全引导程序的安全引导地址期望值M_BAE进行比较。
因此,根据第二实施例的修改示例,如在第二实施例中,可以检测在系统复位和模块复位之后指定的安全引导地址是否已经被篡改。此外,根据第二实施例的修改示例,通过提供引导执行中设置电路2202c和2206c以及引导完成检测器2203c,可以执行在复位被释放之后首先输出的存储器访问请求的地址的篡改检查。这可以检测到不仅在复位控制器10b中而且在处理器模块20c中的安全引导地址已经被篡改。
(第三实施例)
接下来,将描述第三实施例。图14是示出根据第三实施例的半导体设备100d的配置示例的框图。根据第三实施例的半导体设备100d和图8中示出的根据第二实施例的半导体设备100b之间的区别在于,分别用复位控制器10d和地址检查单元22d代替复位控制器10b和地址检查单元22b,并且增加了熔丝模块70和解码器80。半导体设备100d的其他部件和功能与第二实施例中描述的半导体设备100b的部件和功能相同,并且因此相同的部件由相同的附图标记表示,并且省略其重复描述。
熔丝模块70具有电可写入电熔丝。在熔丝模块70中,由半导体设备100d的设备制造商或评估者写入表明半导体设备100d的状态的寿命周期状态信息,诸如客户运送状态或调试模式状态。
当系统复位被释放时,解码器80获取存储在熔丝模块70中的生命周期状态信息,并且基于获取的生命周期状态信息生成生命周期状态信号LCS。生命周期状态信号LCS包括表明安全引导有效状态的安全引导标志位。例如,当生命周期状态信息表明客户运送状态时,解码器80生成表明正常操作模式的生命周期状态信号LCS。此时,生命周期状态信号LCS中所包括的安全引导标志位被设置,以表明安全引导有效。例如,安全引导标志位被设置为“1”。当生命周期状态信息表明调试状态时,生成表明调试模式的生命周期状态信号LCS。此时,生命周期状态信号LCS中所包括的安全引导标志位被设置以表明安全引导无效。例如,安全引导标志位被设置为“0”。
图15是示出根据第三实施例的复位控制器10d的配置示例的框图。复位控制器10d与图9中示出的第二实施例的复位控制器10b的不同之处在于,地址选择电路1030被地址选择电路1030d代替。地址选择电路1030d包括地址寄存器1031d和选择电路1032d。
除了在系统复位释放之后执行的安全引导程序和在模块复位释放之后执行的安全引导程序的起始地址信息之外,地址寄存器1031d还保存除安全引导程序之外的引导程序的起始地址信息。也就是说,除了安全引导地址S_BA(第一引导地址)和安全引导地址M_BA(第二引导地址)之外,地址寄存器1031d还保存引导地址D_BA(第三引导地址)。引导地址D_BA用于例如调试模式。
选择电路1032d基于系统复位标识信号SR、从复位控制电路1020输出的模块复位标识信号MR或由解码器80生成的生命周期状态信号LCS,选择保存在地址寄存器1031d中的引导地址。当生命周期状态信号LCS的安全引导标志位为“1”时,也就是说,当安全引导有效时,选择电路1032d基于系统复位标识信号SR或模块复位标识信号MR选择安全引导地址S_BA或安全引导地址M_BA。当生命周期状态信号LCS的安全引导标志位为“0”时,也就是说,当安全引导无效时,选择电路1032d根据系统复位标识信号SR选择引导地址D_BA。
图16是示出根据第三实施例的地址检查单元22d的配置示例的框图。地址检查单元22d与图10中示出的第二实施例的地址检查单元22b的不同之处在于增加了生命周期状态确定单元2207以及使能信号发生电路2208和2209。其他部件与图10中示出的第二实施例中描述的地址检查单元22b相同,因此相同的附图标记被给予相同的配置,其描述将被省略。
生命周期状态确定单元2207将生命周期状态信号LCS与表明安全引导有效的安全引导有效数据SE进行比较,以确定通过生命周期状态信号LCS的安全引导是有效还是无效。也就是说,生命周期状态确定单元2207确定生命周期状态信号LCS的安全引导标志位是否为“1”。当基于生命周期状态信号LCS确定安全引导有效时,生命周期状态确定单元2207输出“1”。另一方面,当确定安全引导无效时,生命周期状态确定单元2207输出“0”。
使能信号发生电路2208和2209分别生成用于比较电路2201和2204的使能信号EN1、EN2。使能信号生成电路2208基于生命周期状态确定单元2207的确定结果和系统复位标识信号SR生成用于比较电路2201的使能信号EN1。类似地,使能信号生成电路2209基于生命周期状态确定单元2207的确定结果和模块复位标识信号MR,生成用于比较电路2202的使能信号EN2。例如,使能信号生成电路2208、2209包括例如AND电路。当对应的复位标识信号被否定,即复位被释放时,使能信号生成电路2208、2209基于生命周期状态确定单元2207的确定结果生成使能信号EN1、EN2。
如果安全引导有效,则使能信号生成电路2208响应于系统复位标识信号SR而断言使能信号EN1。因此,比较电路2201被使能。此外,响应于模块复位标识信号MR,使能信号生成电路2209断言用于比较电路2204的使能信号EN2。因此,比较电路2204被使能。也就是说,如果安全引导有效,则执行安全引导地址的篡改检查。
另一方面,当安全引导无效时,不管对应的复位标识信号如何,使能信号生成电路2208和2209都不断言使能信号EN1、EN2。也就是说,比较电路2001和2204被禁能,并且不执行从复位控制器10b输出的安全引导地址BTA的篡改检查。以此方式,生命周期状态信号LCS可以被视为安全引导地址的篡改检查必要性信号。
图17是第三实施例中的处理器模块20d的操作流程。首先,地址检查单元22d的生命周期状态确定单元2207基于生命周期状态信号LCS确定安全引导是有效还是无效(步骤S21)。当安全引导有效时,响应于复位标识信号,比较电路2201或比较电路2204被使能(步骤S22)。被使能的比较电路2201或2204将从复位控制器10d输出的安全引导地址BTA与对应的期望值进行比较,并且确认从复位控制器10d输出的安全引导地址BTA是否已经被篡改(步骤S23)。如果安全引导地址BTA没有被篡改(步骤S23中的“否”),则处理器单元21基于从复位控制器10d输出的安全引导地址BTA读取并且执行安全引导程序。同时,当检测到安全引导地址BTA已经被篡改时,处理器单元21保持复位状态(步骤S25)。
另一方面,当安全引导无效时,比较电路2201和2204被禁能(步骤S26)。因此,不执行从复位控制器10d输出的引导地址BTA的篡改检查,并且处理器单元21基于引导地址BTA读取并且执行程序(步骤S27)。
如上面所描述的,第三实施例具有用于安全引导地址的篡改检查的地址检查部段22d,使得可以获得类似于第二实施例的效果。此外,基于熔丝模块70中设置的生命周期状态信息,它控制是否执行从复位控制器10b输出的引导地址的篡改检查。因此,在调试模式中,可以执行来自任何地址的引导处理,并且可以提高调试效率。
(第三实施例的修改示例)
在上面所描述的第三实施例中,如在第二实施例的修改示例中,可以使用从处理器模块20b输出到总线50的存储器访问请求中包括的安全引导地址来执行篡改检查。图18是示出根据第三实施例的修改示例的半导体设备100e的处理器模块20e(安全模块20e)的配置示例的框图。
处理器模块20e包括处理器单元21e和地址检查单元22e。处理器单元21e基于从复位控制器输出的安全引导地址BTA生成存储器访问请求。当生命周期状态信号LCS表明使能进行安全引导时,地址检查单元22e检查由处理器单元21e生成的存储器访问请求中所包括的安全引导地址是否已经被篡改。然后,地址检查单元22e基于检查结果生成安全引导地址错误信号ERR,并且将信号ERR反馈给处理器单元21e。另一方面,如果生命周期状态信号LCS表明安全引导被禁能,则不执行地址篡改检查,并且读取,并且执行基于从复位控制器输出的引导地址的程序。
图19是示出根据第三实施例的修改示例的地址检查单元22e的配置示例的框图。与图16中示出的第三实施例的地址检查单元22d相比,地址检查单元22e的不同之处在于它还包括引导进行中设置电路2202e和2206e以及引导完成检测器2203e。其他部件和操作与第三实施例的地址检查单元22d中的相同,因此相同的部件由相同的附图标记表示,并且将省略重复的描述。
引导进行中设置电路2202e和2206e具有与图5中示出的第一实施例的修改示例的引导进行中设置电路2202相同的配置和功能。引导进行中设置电路2202e和2206e相应地由系统复位标识信号SR和模块复位标识信号MR设置。引导进行中设置电路2202e和2206e都被引导完成信号S2e复位(清除)。也就是说,在系统复位标识信号SR被断言之后输出引导进行中信号S1e,直到引导过程完成。在模块复位标识信号MR被断言之后输出引导进行中信号S3e,直到引导过程完成。
类似于第一实施例的修改示例的引导完成检测器2203,引导完成检测器2203e观察在系统复位被释放之后或在模块复位被释放之后由处理器单元21e输出的存储器访问请求中所包括的引导地址BA,以及来自总线50的请求接收信号(未示出),并且生成引导完成信号S2e。
因此,当生命周期状态信号LCS表明安全引导有效时,比较电路2201处于使能状态,直到在发出复位系统的指令之后从总线接收到请求接收信号。另外,比较电路2204处于使能状态,直到在发出复位模块的指令之后从总线接收到请求接收信号。被使能的比较电路2201和2204中的每一者将输出到总线50的引导地址BA与相应的安全引导地址期望值(S_BAE,M_BAE)进行比较并且检测用于访问安全引导程序的地址是否已经被篡改。另一方面,当生命周期状态信号LCS表明安全引导无效时,比较电路2201和2204处于禁能状态,并且不执行对输出到总线50的引导地址BA的篡改检查。
因此,根据第三实施例的修改示例,如在第三实施例中,可以检测在系统复位和模块复位之后指定的安全引导地址是否已经被篡改。根据第三实施例的修改示例,通过提供引导执行中设置电路2202e、2206e和引导完成检测器2203e,当安全引导有效时,执行在复位被释放之后首先输出的存储器访问请求的地址的篡改检查。因此,不仅可以检测复位控制器10b中的安全引导地址,而且可以检测处理器模块20c中的安全引导地址已经被篡改。
尽管已经基于实施例具体描述了由本发明人做出的发明,但是本发明不限于上面所描述的实施例,并且不用说,可以在不脱离其主旨的情况下做出各种修改。

Claims (12)

1.一种半导体设备,包括:
处理器单元;
存储器,存储引导程序;
复位控制器,被配置为基于复位请求控制用于所述处理器单元的复位,并且将用于在复位释放后要执行的所述引导程序的引导地址输出到所述处理器单元;以及
地址检查单元,被配置为针对从所述复位控制器输出的所述引导地址执行篡改检查,并且基于篡改检查结果输出引导地址错误信号。
2.根据权利要求1所述的半导体设备,
其中所述地址检查单元包括引导地址期望值,并且将从所述复位控制器输出的所述引导地址与所述引导地址期望值进行比较,以生成所述篡改检查结果。
3.根据权利要求1所述的半导体设备,
其中所述处理器单元被配置为基于所述引导地址错误信号来确定是否执行所述引导程序。
4.根据权利要求1所述的半导体设备,
其中所述处理器单元被配置为当所述引导地址错误信号表明所述引导地址被篡改时,保持复位状态。
5.根据权利要求1所述的半导体设备,还包括:
总线,连接到所述处理器单元和所述存储器;
其中所述处理器单元被配置为基于从所述复位控制器输出的所述引导地址生成存储器访问请求以输出到所述总线,并且
其中所述地址检查单元被配置为针对由所述处理器单元生成的所述存储器访问请求中所包括的所述引导地址执行所述篡改检查。
6.根据权利要求5所述的半导体设备,
其中所述地址检查单元被配置为响应于当所述总线接收到所述存储器访问请求时发出的请求接收信号,而停止所述篡改检查。
7.根据权利要求1所述的半导体设备,
其中所述处理器单元是第一处理器单元,
其中所述半导体设备还包括第二处理器单元,
其中所述复位控制器包括:
复位控制电路,被配置为基于所述复位请求来指示第一复位和第二复位并且生成复位标识信号以标识所指示的复位;以及
地址选择电路,具有第一引导地址和第二引导地址,并且被配置为在所述复位释放之后基于由所述复位标识信号所表明的信息来选择所述第一引导地址或所述第二引导地址,以及
其中所述地址检查单元包括多个引导地址期望值,每个引导地址期望值与由所述复位标识信号表明的所述信息相对应,并且将由所述地址选择电路选择的所述引导地址与对应于由所述复位识别信号表明的所述信息的所述引导地址期望值进行比较。
8.根据权利要求7所述的半导体设备,
其中当所述复位标识信号表明第一复位时,所述地址检查单元将由所述地址选择电路选择的所述引导地址的所有位、与对应于由所述复位标识信号表明的所述信息的所述引导地址期望值的所有位进行比较。
9.根据权利要求7所述的半导体设备,
其中当所述复位标识信号表明所述第二复位时,所述地址检查单元将由所述地址选择电路选择的所述引导地址的高阶位数据、与对应于由所述复位标识信号表明的所述信息的所述引导地址期望值的高阶位数据进行比较。
10.根据权利要求7所述的半导体设备,还包括:
熔丝模块,保存表明是否由所述地址检查单元执行所述篡改检查的篡改检查必要性信息。
11.一种用于控制半导体设备的方法,所述半导体设备包括:
处理器单元;
复位控制器,被配置为基于复位请求来控制用于处理器单元的复位,并且将用于在复位释放之后要由所述处理器单元执行的引导程序的引导地址输出到所述处理器单元,
针对从所述复位控制器输出的所述引导地址执行篡改检查,以及
基于篡改检查结果执行所述引导程序。
12.根据权利要求11所述的方法,
其中当所述篡改检查结果表明从所述复位控制器输出的所述引导地址已经被篡改时,所述处理器单元保持所述复位状态。
CN202310448594.1A 2022-05-31 2023-04-24 半导体设备 Pending CN117150494A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/828,388 US20230385071A1 (en) 2022-05-31 2022-05-31 Semiconductor device
US17/828,388 2022-05-31

Publications (1)

Publication Number Publication Date
CN117150494A true CN117150494A (zh) 2023-12-01

Family

ID=88697129

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310448594.1A Pending CN117150494A (zh) 2022-05-31 2023-04-24 半导体设备

Country Status (4)

Country Link
US (1) US20230385071A1 (zh)
JP (1) JP2023177247A (zh)
CN (1) CN117150494A (zh)
DE (1) DE102023113788A1 (zh)

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7464256B2 (en) * 2003-09-18 2008-12-09 Aristocrat Technologies Australia Pty. Limited Bios protection device preventing execution of a boot program stored in the bios memory until the boot program is authenticated
US20060026417A1 (en) * 2004-07-30 2006-02-02 Information Assurance Systems L.L.C. High-assurance secure boot content protection
US8239686B1 (en) * 2006-04-27 2012-08-07 Vudu, Inc. Method and system for protecting against the execution of unauthorized software
JP2008059300A (ja) 2006-08-31 2008-03-13 Renesas Technology Corp マイクロコンピュータ
US8443181B2 (en) * 2008-09-30 2013-05-14 Qualcomm Incorporated Processor boot security device and methods thereof
WO2013089739A1 (en) * 2011-12-15 2013-06-20 Intel Corporation Secure debug trace messages for production authenticated code modules
US10055588B2 (en) * 2013-11-13 2018-08-21 Via Technologies, Inc. Event-based apparatus and method for securing BIOS in a trusted computing system during execution
US10311236B2 (en) * 2016-11-22 2019-06-04 Advanced Micro Devices, Inc. Secure system memory training
US10936722B2 (en) * 2018-04-18 2021-03-02 Nuvoton Technology Corporation Binding of TPM and root device
US10984107B2 (en) * 2018-04-24 2021-04-20 Mellanox Technologies, Ltd. Secure boot
WO2020047351A1 (en) * 2018-08-31 2020-03-05 Fungible, Inc. Rapidly establishing a chain of trust in a computing system
US11068599B2 (en) * 2018-12-19 2021-07-20 Dell Products, L.P. Secure initialization using embedded controller (EC) root of trust
US20220180005A1 (en) * 2020-12-03 2022-06-09 Seagate Technology Llc Secure system-on-a-chip (soc) bootup

Also Published As

Publication number Publication date
JP2023177247A (ja) 2023-12-13
DE102023113788A1 (de) 2023-11-30
US20230385071A1 (en) 2023-11-30

Similar Documents

Publication Publication Date Title
US10509568B2 (en) Efficient secure boot carried out in information processing apparatus
KR101010801B1 (ko) 액세스 허용을 결정하는 방법 및 장치
JP5975629B2 (ja) メモリ保護ユニットおよび記憶素子へのアクセスコントロール方法
US9116840B2 (en) Semiconductor device and data processing method
CN109670319B (zh) 一种服务器flash安全管理方法及其系统
US9304943B2 (en) Processor system and control method thereof
CN110020561B (zh) 半导体装置和操作半导体装置的方法
CN113348110B (zh) 电子控制装置、电子控制装置的安全验证方法
KR20170102285A (ko) 보안 요소
US7934050B2 (en) Microcomputer for flash memory rewriting
JP4743182B2 (ja) マイクロコンピュータ
US10949570B2 (en) Processing system, related integrated circuit and method
US7891556B2 (en) Memory access controller and method for memory access control
CN117150494A (zh) 半导体设备
CN115454517A (zh) 多介质安全启动的方法、系统、存储介质、设备及芯片
CN115129511A (zh) 处理系统、相关集成电路、设备和方法
KR20230082388A (ko) 차량 제어기의 부트로더 검증 장치 및 그 방법
WO2007026508A1 (ja) 半導体装置、テストモード制御回路
CN112947861A (zh) 存储设备的数据读取方法及电子设备系统
US20240012903A1 (en) Method for Executing a Program on a Data Processing Device
US20240004804A1 (en) Method for managing access rights of memory regions and corresponding system on chip
CN117873800A (zh) 针对服务器部件的安全检测方法、装置、服务器及介质
CN113961982A (zh) 安全检测方法及装置、电子设备、存储介质
JP2013073472A (ja) マイクロコンピュータ
JP2000322319A (ja) 半導体記憶装置用セキュリティ回路およびセキュリティシステム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication