半导体装置与数据保护方法

文档序号:1141161 发布日期:2020-09-11 浏览:3次 >En<

阅读说明:本技术 半导体装置与数据保护方法 (Semiconductor device and data protection method ) 是由 林宗民 于 2019-12-31 设计创作,主要内容包括:本发明提供了一种半导体装置与数据保护方法,该半导体装置包括一处理单元、一系统资源群组以及一除错验证逻辑单元。系统资源群组包括多个系统资源。系统资源包括一既定存储器,既定存储器存储多个程序代码,并且既定存储器被定义为仅能执行的存储器。除错验证逻辑单元耦接至一外部除错器,用以控制外部除错器存取系统资源的一权限。除错验证逻辑单元自外部除错器接收请求存取一系统资源的一存取请求。存取请求包括一存取位址。除错验证逻辑单元根据该处理单元目前的一操作状态与存取位址判断是否允许存取请求。当除错验证逻辑单元判断不允许存取请求时,除错验证逻辑单元忽略存取请求,或者回复一错误信息或回复一既定数据给外部除错器。(The invention provides a semiconductor device and a data protection method. The group of system resources includes a plurality of system resources. The system resource includes a given memory storing a plurality of program codes, and the given memory is defined as an executable-only memory. The debug verification logic is coupled to an external debugger for controlling an access right of the external debugger to the system resources. The debug verification logic receives an access request from the debugger requesting access to a system resource. The access request includes an access address. The debug verification logic unit determines whether to allow the access request according to a current operating state and the access address of the processing unit. When the DIG logic determines that the access request is not allowed, the DIG logic ignores the access request, and returns an error message or returns predetermined data to the external debugger.)

半导体装置与数据保护方法

技术领域

本发明是关于一种半导体装置,特别是包含一种可可有效保护XOM区域所存储的数据内容的半导体装置。

背景技术

仅能执行的存储器(eXecute-Only-Memory,缩写为XOM)是一种固件保护技术,通过定义仅能执行的存储器区域,以保护关键程序代码。通过XOM的保护,程序存储器空间的一部分仅支援程序执行,任何装置都无法读回存储器的内容。

图1是显示一存储器空间范例。如图所示,存储器空间100配置了一个XOM区域。正常存储器区域所存储的程序代码可通过呼叫程序(function call)的方式呼叫XOM区域所存储的程序,但无法读取其程序代码,也无法看到XOM区域所存储的数据内容。换言之,XOM区域仅允许取指令(instruction fetch),不允许其他数据的读取及写入等存取行为。

对于连接一外部除错器的装置而言,虽XOM区域可防止外部除错器与此装置的处理单元对其直接进行数据读取,但不能防止攻击者使用外部除错器控制处理单元进入除错状态,并以单步(single step)执行的方式,读取指令,观察其变化。

为了解决上述问题,本发明提出一种半导体装置,其可有效保护XOM区域所存储的数据内容,并且在阻止外部除错器通过任何方式读取指令的同时,亦能维持半导体装置与外部除错器的间的连结,因而不会导致外部除错器误认为连结中断而造成除错失败或其他不良影响。

发明内容

根据本发明的一实施例,一种半导体装置,包括一处理单元、一系统资源群组以及一除错验证逻辑单元。系统资源群组包括多个系统资源。系统资源包括一既定存储器,既定存储器存储多个程序代码,并且既定存储器被定义为仅能执行的存储器。除错验证逻辑单元耦接至一外部除错器,用以控制外部除错器存取系统资源的一权限。除错验证逻辑单元自外部除错器接收请求存取一系统资源的一存取请求。存取请求包括一存取位址。除错验证逻辑单元根据该处理单元目前的一操作状态与存取位址判断是否允许存取请求。当除错验证逻辑单元判断不允许存取请求时,除错验证逻辑单元忽略存取请求,或者回复一错误信息或回复一既定数据给外部除错器。

根据本发明的另一实施例,一种数据保护方法,适用于一半导体装置,半导体装置包括一处理单元、一除错验证逻辑单元以及一系统资源群组,系统资源群组包括多个系统资源,系统资源包括被设定为仅能执行的存储器的一既定存储器,既定存储器存储多个程序代码,除错验证逻辑单元用以控制外部除错器存取等系统资源的权限,该方法包括:自外部除错器接收请求存取一系统资源的一存取请求,其中存取请求包括一存取位址;根据处理单元目前的一操作状态与存取位址判断是否允许存取请求;以及当判断不允许存取请求时,忽略存取请求,或者回复一错误信息或回复一既定数据给外部除错器。

附图说明

图1是显示一存储器空间范例。

图2是显示根据本发明的第一实施例所述的一半导体装置的范例方块图。

图3是显示根据本发明的一实施例所述的用以保护半导体装置的XOM所存储的数据的数据保护方法流程图。

图4是显示根据本发明的第二实施例所述的一半导体装置的范例方块图。

图5是显示根据本发明的第三实施例所述的一半导体装置的范例方块图。

附图标记:

50~外部除错器

100~存储器空间

200、400、500~半导体装置

210~调试访问端口装置

220、420、520~除错验证逻辑单元

230、430、530~处理单元

240~系统资源群组

250~系统汇流排

260~监测逻辑

241、242~控制暂存器

243、XOM~仅能执行的存储器

250~系统汇流排

DBG_Bus~除错汇流排

Fetching_Addr~指令存取的位址信息

JTAG~联合测试工作群组

SWD~序列除错

State_Info~状态信息

XOM_Region_Info~XOM的区域位址

具体实施方式

为让本发明的目的、特征和优点能更明显易懂,下文特举出本发明的具体实施例,并配合所附图式,作详细说明如下。目的在于说明本发明的精神而非用以限定本发明的保护范围,应理解下列实施例可经由软体、硬体、固件、或上述任意组合来实现。

如上述,虽XOM区域可防止外部除错器与处理单元对其进行数据读取,但不能防止攻击者使用外部除错器控制处理单元进入除错状态,并以单步(single step)执行的方式,读取指令,观察其变化。传统的一种解决方法为控制处理单元进入除错模式的权限。当侦测到处理单元正在执行XOM所存储的程序代码时,便不允许处理单元进入除错模式。如此一来,处理单元在执行XOM所存储的程序代码时,无法执行除错操作。然而,实现此方法的结果将造成外部除错器完全无法于处理单元执行XOM所存储的程序代码时存取系统资源,导致外部除错器误认为装置与外部除错器之间的连结中断,进而造成除错失败或其他不良影响。本发明所提出的半导体装置架构及数据保护方法可有效解决上述问题。以下将通过数个实施例详细介绍本发明所提出的半导体装置架构及数据保护方法。

图2是显示根据本发明的第一实施例所述的一半导体装置的范例方块图。根据本发明的一实施例,半导体装置200为一晶片,例如,一微处理器晶片。半导体装置200可包括一调试访问端口装置(Debug Access Port,缩写为DAP)210、一除错验证逻辑单元220、一处理单元230、一系统资源群组240以及一系统汇流排250。一外部除错器50可耦接至半导体装置200。调试访问端口装置210提供做为外部除错器50与半导体装置200的内部装置元件连接的接口。外部除错器50通过序列除错(Serial Wire Debug,缩写为SWD)或联合测试工作群组(Joint Test Action Group,缩写为JTAG)等通讯协议与调试访问端口装置210沟通。

调试访问端口装置210通过除错汇流排DBG_Bus耦接至除错验证逻辑单元220。除错汇流排DBG_Bus可为高级高效能汇流排(Advanced High performance Bus,缩写为AHB)。根据本发明的实施例,除错验证逻辑单元220用以控制外部除错器50存取半导体装置200的系统资源的权限。

根据本发明的第一实施例,除错验证逻辑单元220通过除错汇流排DBG_Bus耦接至处理单元230。处理单元230用以控制半导体装置200的运作。系统资源群组240可包括多个系统资源,所述的系统资源可以是,例如,存储器装置、控制暂存器等。如图所示,系统资源群组240可包括控制暂存器241与242,以及一被定义为仅能执行的存储器(XOM)243(既定存储器)。控制暂存器241与242可用以暂存系统参数或数据。XOM 243用以存储多个程序代码。

值得注意的是,为简洁说明,图2仅显示出与本发明相关的元件。本领域技术人员均可理解,半导体装置亦可包含一或多个未示于图2的内部元件,因此,本发明并不限于图2所示的半导体装置结构。

根据本发明的一实施例,除错验证逻辑单元220可自外部除错器50接收请求存取一系统资源的一存取请求,存取请求包括一存取位址。于接收到存取请求时,除错验证逻辑单元220会根据处理单元230目前的一操作状态与存取请求所带的存取位址判断是否允许该存取请求。

根据本发明的一实施例,系统资源群组240所包含的各个系统资源都有其对应的位址,使得半导体装置的各元件可根据对应的位址存取所需的系统资源。除错验证逻辑单元220可自处理单元230或系统资源群组240内的一存储器控制器(图未示)取得XOM 243的区域位址XOM_Region_Info。举例而言,于处理单元230执行初始化程序,以初始化半导体装置200的各元件时,可为系统资源群组240的各个系统资源设定对应的位址,并且于设定后将被设定或被定义为仅能执行的存储器的区域的位址提供给除错验证逻辑单元220。举另一例而言,系统资源群组240可包含一存储器(例如,一快闪存储器)与对应的一存储器控制器。存储器控制器可依系统需求设定或定义存储器的一特定区域为仅能执行的存储器,并且于设定后将被设定或被定义的区域的位址提供给除错验证逻辑单元220。

此外,根据本发明的一实施例,除错验证逻辑单元220可自一监测逻辑260取得处理单元230目前进行指令存取的位址信息Fetching_Addr。监测逻辑260可被设置为耦接至系统汇流排250或耦接至处理单元230与系统汇流排250之间的实体接口,用以监测处理单元230所发出的存取指令,以取得处理单元230目前进行指令存取的位址信息Fetching_Addr,并将此信息提供给除错验证逻辑单元220。

此外,根据本发明的一实施例,处理单元230亦可将处理单元230目前的一状态信息State_Info提供给除错验证逻辑单元220。举例而言,处理单元230可告知除错验证逻辑单元220目前是否操作于一除错状态。

于本发明的一实施例中,处理单元230可根据XOM 243的区域位址XOM_Region_Info、处理单元230目前进行指令存取的位址信息Fetching_Addr及/或处理单元230目前的一状态信息State_Info判断处理单元240目前的一操作状态(例如,是否正在执行XOM 243所存储的程序代码、目前是否操作于一除错状态等)。

图3是显示根据本发明的一实施例所述的用以保护半导体装置的XOM所存储的数据的数据保护方法流程图。数据保护方法的程序起始于除错验证逻辑单元220自外部除错器50接收到请求存取一系统资源的一存取请求。首先,除错验证逻辑单元220根据处理单元230目前的一操作状态判断处理单元230是否正在执行XOM所存储的程序代码(步骤S302)。举例而言,除错验证逻辑单元220可根据所得的XOM 243的区域位址XOM_Region_Info及处理单元230目前进行指令存取的位址信息Fetching_Addr判断处理单元230是否正在执行XOM 243所存储的程序代码。

若否,则表示目前XOM 243所存储的程序代码并没有被存取的风险,除错验证逻辑单元220可直接判断允许外部除错器50的存取请求(步骤S308)。

若是,除错验证逻辑单元220进一步根据所得的状态信息State_Info判断处理单元230目前是否操作于一除错状态(步骤S304)。若否,则表示目前XOM 243所存储的程序代码并没有被存取的风险,除错验证逻辑单元220可直接判断允许外部除错器50的存取请求。

若是,除错验证逻辑单元220进一步根据存取请求所带的存取位址判断此存取位址是否为被允许的位址(步骤S306)。若是,则表示目前XOM 243所存储的程序代码并没有被存取的风险,除错验证逻辑单元220可直接判断允许外部除错器50的存取请求(步骤S308)。然而,若存取请求所带的存取位址判断此存取位址为不被允许的位址,则除错验证逻辑单元220将不允许外部除错器50的存取请求(步骤S310)。

根据本发明的一实施例,半导体装置的系统设计者可事先定义一些允许外部除错器50存取的位址,例如,系统控制区块、除错控制区块、及用以记录系统控制信息(例如,系统重置、系统时钟、电源模式等控制信息)的暂存器等的位址,使得当处理单元230正在执行XOM所存储的程序代码且操作于一除错状态时,外部除错器50仍可存取必须的信息,得知目前系统的状态,因而不会影响外部除错器50的操作,且外部除错器50仍可维持与半导体装置200的连线。此外,于本发明的一些实施例中,通过设定允许外部除错器50存取的位址,亦可进一步使得系统控制区块、除错控制区块等区块中仅部分区域允许外部除错器50存取。即,若有其他区域包含了处理单元230所执行的程序代码的信息,则仍可被设定为禁止外部除错器50存取的位址。

根据本发明的第一实施例,当除错验证逻辑单元220允许外部除错器50的存取请求时,可将存取请求传送至处理单元230,由处理单元230根据此存取请求进一步控制外部除错器50存取系统资源的权限。举例而言,处理单元230或半导体装置200内部的一装置或逻辑电路可设定一除错致能旗标值DBG_EN。当除错致能旗标值DBG_EN被设起时,代表处理单元230可执行除错操作。当除错致能旗标值DBG_EN未被设起时,处理单元230无法执行除错操作,于此状态下,处理单元230会持续忽略自除错汇流排DBG_Bus所接收到的讯号,直到除错致能旗标值DBG_EN再度被设起为止。

另一方,当除错验证逻辑单元220不允许外部除错器50的存取请求时,除错验证逻辑单元220可直接忽略该存取请求,亦即,除错验证逻辑单元220并不回复该存取请求,或者,错验证逻辑单元220可回复一错误信息(例如,一汇流排错误信息)或回复一既定数据(例如,全0或全1的数据)给外部除错器50。如此一来,使得外部除错器50仍可维持与半导体装置200的连线。

图4是显示根据本发明的第二实施例所述的一半导体装置的范例方块图。半导体装置400的结构大致与半导体装置200相同,其差别在于除错验证逻辑单元420可通过除错汇流排DBG_Bus直接与系统汇流排连接。对于相同或相似的元件,其说明可参考图2的相关内容,并于此不再赘述。

于本发明的第二实施例,半导体装置400所实施的数据保护方法流程与半导体装置200相同,因此,根据本发明的第二实施例所述的数据保护方法流程图可参考图3的相关内容,并于此不再赘述。

根据本发明的第二实施例,当除错验证逻辑单元420允许外部除错器50的存取请求时,可直接根据此存取请求存取系统资源。亦即,于本发明的第二实施例中,外部除错器50的存取权限将全由除错验证逻辑单元420所控制,外部除错器50不再通过处理单元430存取系统资源。

另一方,当除错验证逻辑单元420根据图3所示的流程决定不允许外部除错器50的存取请求时,除错验证逻辑单元420可直接忽略该存取请求(即,不回复该存取请求)的外,除错验证逻辑单元420也可选择回复一错误信息(例如,一汇流排错误信息)或回复一既定数据(例如,全0或全1的数据)给外部除错器50。如此一来,使得外部除错器50仍可维持与半导体装置400的连线。

值得注意的是,为简洁说明,图4仅显示出与本发明相关的元件。本领域技术人员均可理解,半导体装置亦可包含一或多个未示于图4的内部元件,因此,本发明并不限于图4所示的半导体装置结构。

图5是显示根据本发明的第三实施例所述的一半导体装置的范例方块图。半导体装置500的结构大致与半导体装置200相同,其差别在于除错验证逻辑单元520可通过除错汇流排DBG_Bus同时拥有与处理单元530的连结及与系统汇流排的连接。对于相同或相似的元件,其说明可参考图2的相关内容,并于此不再赘述。

于本发明的第三实施例,半导体装置500所实施的数据保护方法流程与半导体装置200相同,因此,根据本发明的第三实施例所述的数据保护方法流程图可参考图3的相关内容,并于此不再赘述。

根据本发明的第三实施例,当除错验证逻辑单元520允许外部除错器50的存取请求时,可直接根据此存取请求存取系统资源,亦可将此存取请求传送至处理单元530,由处理单元530根据此存取请求进一步控制外部除错器50存取系统资源的权限。换言之,于本发明的第三实施例中,半导体装置的系统设计者可依需求弹性地设计外部除错器50存取系统资源的路径。举例而言,当处理单元530正在执行XOM所存储的程序代码,且处理单元530目前操作于除错状态时,除错验证逻辑单元520不将存取请求传送至处理单元530,如此一来,外部除错器50仅能通过除错验证逻辑单元520存取系统资源。举另一例而言,系统设计者亦可将系统设计为对于特定的存取位址,外部除错器50仅能通过除错验证逻辑单元520存取系统资源,其余存取位址则可通过处理单元530存取系统资源。

值得注意的是,为简洁说明,图5仅显示出与本发明相关的元件。本领域技术人员均可理解,半导体装置亦可包含一或多个未示于图5的内部元件,因此,本发明并不限于图4所示的半导体装置结构。

传统技术中,仅仅因为处理单元正在执行XOM所存储的程序代码,相关的控制逻辑便将除错致能旗标值DBG_EN失能(即上述的不设起除错致能旗标值DBG_EN)。如此一来,将导致外部除错器误认为装置与外部除错器之间的连结中断,进而造成除错失败或其他不良影响。不同于传统技术,于本发明的实施例中,通过除错验证逻辑单元根据处理单元目前的操作状态与外部除错器所请求的存取位址判断是否允取外部除错器的存取请求,并且于判断不允许请求时,除错验证逻辑单元可通过回复特定的信息或数据保持半导体装置与外部除错器之间的连结。如此一来,有效解决传统技术中的所存在的问题。此外,外部除错器对于系统资源的存取亦可选择地被设计为通过处理单元或除错验证逻辑单元来进行,如此一来,设计者可根据数据的重要性作弹性地设计,以进一步提高数据保护的效能。

虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当视申请专利范围所界定者为准。

14页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:基于局部总线的数据采集系统的并行化存储实现方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类