CN110908932A - 数据处理装置及其数据保护方法 - Google Patents

数据处理装置及其数据保护方法 Download PDF

Info

Publication number
CN110908932A
CN110908932A CN201811474512.6A CN201811474512A CN110908932A CN 110908932 A CN110908932 A CN 110908932A CN 201811474512 A CN201811474512 A CN 201811474512A CN 110908932 A CN110908932 A CN 110908932A
Authority
CN
China
Prior art keywords
execution
flash memory
memory
processing apparatus
data processing
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.)
Granted
Application number
CN201811474512.6A
Other languages
English (en)
Other versions
CN110908932B (zh
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.)
Nuvoton Technology Corp
Original Assignee
Nuvoton Technology 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 Nuvoton Technology Corp filed Critical Nuvoton Technology Corp
Publication of CN110908932A publication Critical patent/CN110908932A/zh
Application granted granted Critical
Publication of CN110908932B publication Critical patent/CN110908932B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • 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
    • G06F21/755Protecting 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 with measures against power attack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • 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/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供一种数据处理装置及其数据保护方法,包括:一快闪存储器;一运算单元;以及一快闪存储器控制器,电连接至该运算单元,并用以控制快闪存储器的存取。快闪存储器控制器分别在快闪存储器的一第一存储器组及一第二存储器组配置一第一唯执行存储器空间设定及一第二唯执行存储器空间设定。快闪存储器控制器依据第一唯执行存储器空间设定或第二唯执行存储器空间设定在快闪存储器中配置一或多个唯执行存储器空间。

Description

数据处理装置及其数据保护方法
技术领域
本发明有关于程序码保护技术,特别是有关于一种数据处理装置及其数据保护方法。
背景技术
具安全防护能力的装置必须保护其中储存的内容不会被恶意复制或修改。当保护的内容是程序码时,必须防止那些非拥有者或不被授权人士的存取以及复制。因此,本发明实施例提出一种数据处理装置及其数据保护方法。
发明内容
本发明提供一种数据处理装置,包括:一快闪存储器;一运算单元;以及一快闪存储器控制器,电连接至所述运算单元,并用以控制所述快闪存储器的存取;其中所述快闪存储器控制器分别在所述快闪存储器的一第一存储器组及一第二存储器组配置一第一唯执行存储器空间设定及一第二唯执行存储器空间设定,其中所述快闪存储器控制器依据所述第一唯执行存储器空间设定或所述第二唯执行存储器空间设定在所述快闪存储器中配置一或多个唯执行存储器空间。
本发明更提供一种数据保护方法,用于一数据处理装置,其中所述数据处理装置包括一快闪存储器、一运算单元、及一快闪存储器控制器,该方法包括:分别在所述快闪存储器的一第一存储器组及一第二存储器组配置一第一唯执行存储器空间设定及一第二唯执行存储器空间设定;以及依据所述第一唯执行存储器空间设定或所述第二唯执行存储器空间设定在所述快闪存储器中配置一或多个唯执行存储器空间。
附图说明
图1A依据本发明一实施例中的运算装置的***方块图;
图1B依据本发明图1A实施例的唯执行存储器空间的配置的示意图;
图2依据本发明一实施例中的活动区域及备用区域的示意图;
图3显示依据本发明一实施例中的数据处理装置的操作流程的示意图;
图4显示依据本发明一实施例中的数据保护方法的流程图。
附图标记说明
100~数据处理装置;
110~运算单元;
120~快闪存储器控制器;
130~控制暂存器;
131~第一状态暂存器;
132~第二状态暂存器;
140~快闪存储器;
141A、141B~存储器组;
1411A、1411B~数据区域;
1412A、1412B~信息区域;
1415A、1415B~XOM设定;
1416A~安全区域设定;
1416B~非安全区域设定;
1417A、1417B~其他设定区域;
1413~数据区块;
1414~页面;
150~写入接口;
151~第一写入接口;
152~第二写入接口;
XOM0-XOM3~唯执行存储器空间;
201~活动区域;
202~备用区域;
S302-S324、S410-S420~步骤。
具体实施方式
为使本发明的上述目的、特征和优点能更明显易懂,下文特举一较佳实施例,并配合所附图式,作详细说明如下。
图1A依据本发明一实施例中的运算装置的***方块图。图1B依据本发明图1A实施例的唯执行存储器空间的配置的示意图。
在一实施例中,数据处理装置100包括一运算单元110、一快闪存储器控制器120、一控制暂存器130、一快闪存储器140、及一数据写入接口150。运算单元110例如可为中央处理器(central processing unit)、一般用途处理器(general-purpose processor)等等。运算单元110用以执行储存于快闪存储器140中的程序码以进行相应的操作及控制。
在一实施例中,快闪存储器控制器120电连接至运算单元110,并用以控制快闪存储器140的存取。快闪存储器140为一种非挥发性存储器,其中储存的数据并不会因断电而消失。举例来说,快闪存储器控制器120包括一快闪转译层(flash translation layer),用以将来自运算单元110的写入、读取、或抹除指令的逻辑地址转换为在快闪存储器140中的相应的物理地址,并依据所转换的物理地址对快闪存储器140中的页面或数据区块进行相应的操作。
以下举例以快闪存储器作为说明,然而只要是非挥发存储器皆可适用,例如EPROM(erasable programmable read-only memory)、PROM(programmable read-only memory)、ROM(read-only memory)、EEPROM(electrically erasable programmable read-onlymemory)等非挥发性存储器。因此,在以下内容中所提到的快闪存储器控制器120也可替换为非挥发性存储器控制器(non-volatile memory controller)用以控制非挥发性存储器。
快闪存储器140划分为存储器组(memory bank)141A及141B。其中,存储器组141A包括数据区域1411A及信息区域1412A,存储器组141B包括数据区域1411B及信息区域1412B。数据区域1411A及1411B用以储存程序码或数据,其中数据区域1411A及1411B包括多个数据区块(block)1413,且各数据区块1413包括多个页面(page)1414。
信息区域1412A包括一XOM设定1415A、一安全区域设定1416A、及一其他设定区域1417A。信息区域1412B包括一XOM设定1415B、一非安全区域设定1416B、及一其他设定区域1417B。在一实施例中,XOM设定1415A及1415B、安全区域设定1416A、及非安全区域设定1416B的大小例如为一个页面,但本发明并不限于此。
XOM设定1415A及1415B用以储存在快闪存储器140的数据区域1411A及/或1411B中的一或多个唯执行存储器(execute-only memory,XOM)空间XOM0~XOM3的每一者的基础逻辑地址(或起始逻辑地址)、大小(例如页面数量)或结束逻辑地址、及控制位的设定。唯执行存储器空间XOM0~XOM3在快闪存储器120中的配置例如图1B所示。需注意的是,本发明的唯执行存储器空间的数量可视实际情况而定,且最少可支援一个唯执行存储器空间。
当上述控制位等于一特定地址或数值时,则相应的唯执行存储器则会关闭。此外,每一个唯执行存储器空间XOM0~XOM3的大小可分别设定为不同的数值。
举例来说,快闪存储器控制器120依据XOM设定1415A及1415B的其中一者以设定唯执行存储器空间XOM0~XOM3,且XOM设定1415A及1415B在同时间只有其中一者会做为活动区域(active region),而另一者则为备用区域(backup region),如图2所示。当数据处理装置100处于初始状态或是电源开启时,快闪存储器控制器120会以XOM设定1415A及1415B之中具有较多的控制设定的一者做为活动区域。当XOM设定1415A为活动区域(activeregion)时,XOM设定1415B则可视为备用区域(backup region)。类似地,当XOM设定1415B为活动区域(active region)时,XOM设定1415A则可视为备用区域(backup region)。因此,基于上述设计,本发明中的唯执行存储器空间可具有断电攻击保护(power attackprotection)的功能,其细节将详述于后。
在一实施例中,唯执行存储器空间的数量例如可为4个,例如分别为唯执行存储器空间XOM0~XOM3,但本发明并不限于此。举例来说,唯执行存储器空间XOM0~XOM3的起始逻辑地址为可为24位的地址,且其大小及控制位均为8位,若基础逻辑地址及大小均是对齐页面(page-aligned),则其相应的地址关系可用表1表示:
表1
逻辑地址 XOM0 XOM1 XOM2 XOM3
基础逻辑地址 0x20_0000 0x20_0010 0x20_0020 0x20_0030
大小 0x20_0004 0x20_0014 0x20_0024 0x20_0034
控制位 0x20_0008 0x20_0018 0x20_0028 0x20_0038
安全区域设定1416A用以储存用以配置在快闪存储器140中的安全区域(secureregion)的设定,例如其起始地址及大小。非安全区域设定1416B用以储存用以配置在快闪存储器140中的非安全区域(non-secure region)的设定,例如其起始地址及大小。举例来说,安全区域例如可包含一安全位组,可以为最高位组(most significant byte)、最低位组(least significant byte)、或任意地址的位组。若安全区域中的安全位组被设定为一个特定值时,例如“0xFF”,则代表安全区域目前为开放存取状态,若安全位组被设定为其他值而非为此特定值,则代表安全区域目前正处于保护状态。快闪存储器140中的非安全区域可视为一般的使用者代码区,且没有利用特定的位组进行数据保护。
在一实施例中,唯执行存储器空间XOM0~XOM3可配置于安全区域或是非安全区域,且可横跨存储器组141A及141B。在一般情况下,运算单元110并无法读取、写入、或抹除唯执行存储器空间XOM0~XOM3所储存的数据或程序码,但运算单元110可通过函式库/数据库呼叫的方式执行在快闪存储器140中的唯执行存储器空间XOM0~XOM3所储存的程序码。当数据处理装置100正在运作时,运算单元110或其他的写入接口并无法修改的唯执行存储器空间XOM0~XOM3的设定,例如储存于XOM设定1415A及1415B中的设定值。
此外,当XOM设定1415A及/或1415B中的设定值被设定完成后,各个唯执行存储器空间XOM0~XOM3的位置及大小均无法再经由编程(programming)进行调整。然而,当有一使用者欲重新规划各个唯执行存储器空间XOM0~XOM3的位置及大小,该使用者例如可利用运算单元110或写入接口150发送一群体抹除(mass erase)指令至快闪存储器控制器120以清除全部的唯执行存储器空间XOM0~XOM3。举例来说,快闪存储器控制器120支援一特别抹除指令以清除指定的唯执行存储器空间XOM0~XOM3,但上述特别抹除指令无法指定直接清除储存于XOM设定1415A及1415B中的唯执行存储器空间XOM0~XOM3的设定。
详细而言,非安全程序码(non-secure code)需呼叫安全应用程序接口(Application Programming Interface,API)以发送此特别抹除指令至快闪存储器控制器120以清除指定的唯执行存储器空间XOM0~XOM3的全部或其中一者,其中此特别抺除指令具有一特定指令类型地址(例如表示快闪存储器页面抺除指令)、一特定数据地址(例如欲清除的页面数量)、及一指定地址(例如欲指定抺除的唯执行存储器空间的基础逻辑地址)。当指定欲清除的唯执行存储器空间的数据均抹除后,快闪存储器控制器120会接着抺除指定的唯执行存储器空间在XOM设定1415A或1415B(例如为活动区域的XOM设定)中的相应设定。若有一特定的唯执行存储器空间是横跨于存储器组141A及141B,则上述的数据抹除动作需分割为在不同存储器组的多个页面抹除指令。
在一些实施例中,控制暂存器130包括第一状态暂存器(status register)131及多个第二状态暂存器132,其中第一状态暂存器131用以表示唯执行存储器空间XOM0~XOM3是否开启(active)及是否有页面抹除错误(例如为XOM设定1415A或1415B相应的脏位)。各第二状态暂存器132用以记录各唯执行存储器空间XOM0~XOM3已对齐页面的基础逻辑地址及大小。
在一实施例中,数据处理装置100例如可被整合至各种产品中,例如,通讯产品、电视、储存装置等。举例来说,不同的唯执行存储器空间XOM0~XOM3可分别存放由同一厂商的不同使用者或是不同厂商所开发的程序码,但本发明并不限于此。假设快闪存储器140具有四个唯执行存储器空间XOM0~XOM3,且同一个数据处理装置100会由不同的厂商或使用者依序进行产品开发。当第一厂商(或同一厂商的第一使用者)在使用数据处理装置100进行产品开发时,第一厂商(或同一厂商的第一使用者)可将其所开发的第一核心程序码或是所开发的第一定制化函式库(customized library)存放在其中一个唯执行存储器空间,例如唯执行存储器空间XOM0。
当第一厂商的产品开发阶段完成后,数据处理装置100交给第二厂商(或同一厂商的第二使用者),且第二厂商可将其所开发的第二核心程序码存放在另一个未使用的唯执行存储器空间(例如唯执行存储器空间XOM1)、或是在唯执行存储器空间XOM0~XOM3之外的其他安全区域或非安全区域。其中,上述第二核心程序码可呼叫存放于唯执行存储器空间XOM0中的第一定制化函式库,故第二厂商可节省其产品开发时间。
需注意的是,本发明中的唯执行存储器空间与安全区域并不相同。安全区域虽然为一受保护区域(protected region)以限制数据存取,但使用者仍可利用运算单元110或写入接口150发送特定的指令及地址以存取储存于安全区域中的数据或程序码。然而,唯执行存储器空间XOM0~XOM3中所储存的数据、程序码、函式库均无法进行存取。举例来说,若上述实施例中的唯执行存储器空间XOM0~XOM3均设置于安全区域时,第二厂商(或同一厂商的第二使用者)可利用运算单元110发出特定指令以使用安全区域,但是运算单元110仍无法存取(包括写入及读取)储存于唯执行存储器空间XOM0中的第一核心程序码及第一定制化函式库。意即,第二厂商(或同一厂商的第二使用者)需执行其开发的第二核心程序码以呼叫在唯执行存储器空间XOM1中的第一定制化函式库、或是通过运算单元110以执行储存于唯执行存储器空间XOM0中的第一核心程序码。
在一实施例中,数据处理装置100中的数据写入接口150例如可包括一或多个写入接口,例如第一写入接口151及第二写入接口152,其中第一写入接口151例如可支援平行写入接口(Parallel Writer Interface),且第二写入接口152例如可支援电路内部编程接口(In-Circuit Programming(ICP)Interface),但本发明并不限于此。
在一实施例中,在唯执行存储器空间XOM0~XOM3中的数据及其相关设定可以有条件的修改。举例来说,使用者可通过运算单元110发送一***内部编程指令(In-SystemProgramming(ISP)Command),例如为唯执行存储器空间XOM0的页面抹除指令。详细而言,为了与一般的快闪存储器页面抹除指令(例如可操作于唯执行存储器空间之外的安全区域或非安全区域)进行区隔,上述***内部编程指令的类型、数据、及地址需符合特定条件,运算单元110才会判断上述***内部编程指令为有效的唯执行存储器空间页面抹除指令,例如需分别符合一特定指令类型地址(例如表示快闪存储器页面清除指令)、一特定数据地址(例如欲清除的页面数量)、及一指定地址(例如欲指定清除的唯执行存储器空间的基础逻辑地址)。若不符合上述条件的任一者,则运算单元110会判断此***内部编程指令为一无效(invalid)指令,并将相应的一旗标值(例如为***内部编程指令失效旗标(ISP commandfail flag,ISPFF))设定为一特定数值,例如为0或1,以表示此***内部编程指令为无效指令。
当运算单元110判断上述***内部编程指令为一有效指令,运算单元110才会将上述***内部编程指令发送至快闪存储器控制器120,且快闪存储器控制器120可依据上述***内部编程指令于一状态机中进行相应的操作,其细节将于图3的实施例中详述。
图3显示依据本发明一实施例中的数据处理装置的操作流程的示意图。
在步骤S302,执行一唯执行存储器空间页面抹除指令。举例来说,为了与一般的快闪存储器页面抹除指令(例如可操作于唯执行存储器空间之外的安全区域或非安全区域)进行区隔,上述***内部编程指令的类型、数据、及地址需符合特定条件。
在步骤S304,判断上述唯执行存储器空间页面抹除指令是否为有效指令。举例来说,运算单元110判断上述唯执行存储器空间页面抹除指令的类型、数据、及地址是否符合特定条件,例如需分别符合一特定指令类型地址(例如表示快闪存储器页面清除指令)、一特定数据地址(例如欲清除的XOM页面数量)、及一指定地址(例如欲指定清除的唯执行存储器空间的基础逻辑地址)。若不符合上述条件的任一者,则运算单元110会判断此***内部编程指令为一无效指令。若步骤S304的判断为“是”,则执行步骤S308;若步骤S304的判断为“否”,则执行步骤S306。
在步骤S306,将***内部编程指令失效旗标(ISPFF)设定为一特定数值。举例来说,当运算单元110判断此唯执行存储器空间页面抹除指令为一无效指令,运算单元110***将相应的内部编程指令失效旗标设定为一特定数值,例如为0或1,以表示此唯执行存储器空间页面抹除指令为无效指令。
在步骤S308,对XOM页面抹除状态机进行初始化。举例来说,当运算单元110判断此唯执行存储器空间页面抹除指令为一有效指令,则快闪存储器控制器120则会将XOM页面抹除状态机进行初始化。意即,对唯执行存储器空间的页面抹除操作均会依照此XOM页面抹除状态机的流程进行。
在步骤S310,对备用区域及活动区域中的脏位(dirty bit)进行编程。举例来说,快闪存储器控制器120将备用区域及活动区域的脏位设定为1以表示备用区域及活动区域均有脏信息(dirty information)以防止在后续状态中的断电攻击。
在步骤S312,判断已抹除的该唯执行存储器空间的页面的计数值是否等于唯执行存储器空间的大小。若是,则执行步骤S318;若否,则执行步骤S314。举例来说,当欲抹除唯执行存储器空间中的页面时,是以页面的数量为单位进行计算。当抹除的页面的计数值等于唯执行存储器空间的大小(即唯执行存储器空间的页面数量)时,则可判断对唯执行存储器空间的抹除动作已完成。
在步骤S314,增加计数值并进行页面/区块抹除。举例来说,当执行步骤S314时,即表示唯执行存储器空间的页面尚未完成抹除,故仍需持续抹除对唯执行存储器空间中尚未抹除的页面。举例来说,在一实施例中,依据快闪存储器140的工艺,有部分的快闪存储器可提供区块抹除(block erase)的功能,意即可一次抹除在数据区块中的多个页面。此外,另一部分的快闪存储器仅提供页面抹除(page erase)的功能。在步骤S314中,快闪存储器控制器120会以最快的方式清除唯执行存储器空间的页面。若一数据区块包括N个页面,则进行区块抹除后,上述计数值会增加N。若进行页面抹除,则上述计数值则增加1。
在步骤S316,判断抹除时间是否逾时。举例来说,依据快闪存储器140的工艺,快闪存储器控制器120会判断每次抹除动作(例如可为区块抹除或页面抹除)的时间是否已逾时(time out),其中逾时的时间阈值需符合快闪存储器的工艺厂所规定的区块抹除时间或页面抹除时间。若抹除时间逾时,则回到步骤S312;若抹除时间未逾时,则回到步骤S316持续进行抹除动作。
在步骤S318,抹除备用区域。举例来说,将备用区域抹除后,即表示备用区域可用于储存新的XOM设定。
在步骤S320,更新备用区域。举例来说,使用者可将在数据处理装置100重置后欲进行保护的XOM空间的相关设定更新至备用区域。
在步骤S322,抹除活动区域的内容。举例来说,在步骤S322的抹除动作是清除做为活动区域的XOM设定1415A或1415B,并非清除控制暂存器130的内容。在数据处理装置100重置后,快闪存储器控制器120会将做为活动区域的XOM设定1415A或1415B的内容载入至控制暂存器130,且运算单元110可依据控制暂存器130的内容以得知目前的XOM空间设定。
在步骤S324,抹除指令完成。举例来说,当抹除指令完成后,运算单元110会发出通知或提示以提醒使用者XOM空间已被抹除完成,且新XOM空间设定已更新。需注意的是,当步骤S324完成后,快闪存储器控制器120将目前的活动区域及备用区域对调(swap),意即在步骤S320中所更新的备用区域的新XOM设定,在数据处理装置100重置后,会做为活动区域,并且上述更新的XOM设定会被载入至控制暂存器130,并据以在快闪存储器140中配置相应的XOM空间。
步骤S308至S324即为快闪存储器控制器120所执行的状态机,用以调整XOM空间,例如需先抹除目前的XOM空间的数据及其相关设定,再将新XOM设定更新至备用区域。当数据处理装置100重置时,原本的备用区域会被对调为活动区域,故可套用新XOM设定以在快闪存储器140中配置相应的XOM空间。
此外,需特别说明的是,在步骤S310中将目前的活动区域及备用区域的脏位设定为1。例如当备用区域的脏位设定为1时,可防止在步骤S318至步骤S320的断电攻击。当活动区域的脏位设定为1时,可防止在步骤S322的断电攻击。详细而言,对数据处理装置100的断电攻击可能在任何时候发生。若断电攻击发生在执行状态机之外的时间,则活动区域及备用区域的内容并不会受到影响。
在一实施例中,快闪存储器控制器120会在成功完成步骤S320的更新备用区域后才会将备用区域的脏位设定为0,以表示目前的备用区域已成功更新。若断电攻击发生在执行状态机的步骤S318及S320时,则表示目前的备用区域尚未完成更新,故其脏位仍为1。意即在进行XOM空间的页面抹除时,数据处理装置100遭到断电攻击,且备用区域的脏位可用以通知快闪存储器控制器120及运算单元上一个XOM空间的页面抹除动作有问题,可能会造成快闪存储器的内容错误。此时,当数据处理装置100在遭受断电攻击后重新启动,快闪存储器控制器120将XOM设定1415A及1415B的内容载入至控制暂存器130,故运算单元110可判断出目前的活动区域及备用区域的脏位为1,故可得知数据处理装置100曾遭受断电攻击。意即,表示目前的活动区域的XOM设定仍未被修改或抹除,故快闪存储器控制器120会依据目前的活动区域的XOM设定,以在快闪存储器140中配置相应的XOM空间。
在此实施例中,快闪存储器控制器120会在成功完成步骤S322的抹除活动区域后才会将活动区域的脏位设定为0,以表示目前的活动区域已成功抹除。若断电攻击发生在执行状态机的步骤S322时,则表示目前的备用区域已完成更新,故其脏位为0,但是目前的活动区域的脏位仍维持在1。此时,当数据处理装置100在遭受断电攻击后重新启动,快闪存储器控制器120将XOM设定1415A及1415B的内容载入至控制暂存器130,故运算单元110可判断出目前的活动区域的脏位为1且备用区域的脏位均为0,故可得知数据处理装置100曾遭受断电攻击。意即,虽然目前的活动区域的XOM设定仍未被修改或抹除,但备用区域的XOM设定已成功更新(其脏位为0),故快闪存储器控制器120会将目前的活动区域及备用区域对调,并依据目前的活动区域的XOM设定以在快闪存储器140中配置相应的XOM空间。此外,因为页面抹除的操作仅能针对快闪存储器120的其中一个存储器组进行,故断电攻击并无法同时影响在不同存储器组141A及141B中的XOM设定1415A及1415B。
因此,基于上述机制,本发明中的快闪存储器中的唯执行存储器空间可具有断电攻击保护(power attack protection)的功能。
图4显示依据本发明一实施例中的数据保护方法的流程图。
在步骤S410,分别在快闪存储器的第一存储器组及第二存储器组配置一第一唯执行存储器空间设定及一第二唯执行存储器空间设定。举例来说,第一存储器组及第二存储器组例如分别为存储器组141A及141B,且第一唯执行存储器空间设定及第二唯执行存储器空间设定例如分别为XOM设定1415A及1415B。
在步骤S420,依据第一唯执行存储器空间设定或第二唯执行存储器空间设定在快闪存储器中配置一或多个唯执行存储器空间。举例来说,第一唯执行存储器空间设定或第二唯执行存储器空间设定的其中一者为活动区域,且另一者则为备用区域。当数据处理装置100重置时,快闪存储器控制器120会先比对在活动区域及备用区域中的脏位以判断数据处理装置100是否遭受断电攻击。若数据处理装置100未遭受断电攻击(即活动区域及备用区域中的脏位均为0),则快闪存储器控制器120将活动区域中的XOM设定载入至控制暂存器130,并据以在快闪存储器140中配置相应的一或多个XOM空间。若数据处理装置100曾遭受断电攻击(即活动区域及备用区域中的脏位的任一者为1),则快闪存储器控制器120可依据在图3的实施例中的判断机制以决定要载入目前的活动区域或备用区域的XOM设定,并据以在快闪存储器140中配置相应的一或多个XOM空间。
综上所述,本发明提供一种数据处理装置及其数据保护方法,其可在快闪存储器140中的不同存储器组分别储存一组XOM设定,且可依据其中一组XOM设定以在快闪存储器140中配置相应的一或多个XOM空间。当快闪存储器140中具有多个XOM空间,依据产品开发的顺序,在顺序较前的开发者可将其核心程序码储存于其中一或多个XOM空间中以保护其核心程序码。因为储存于XOM空间中的函式库及核心程序码仅能通过运算单元进行呼叫并执行,故顺序较后的开发者并无法存取先前的开发者在其XOM空间所储存的核心程序码,且可达成保护先前开发者的设计的功能。此外,本发明中的快闪存储器控制器可执行一状态机,可调整目前的XOM空间及设定,并且经由状态机的设计,使得快闪存储器中的唯执行存储器空间可具有断电攻击保护(power attack protection)的功能。
在权利要求中使用如“第一”、“第二”、“第三”等词用来修饰权利要求中的器件,并非用来表示之间具有优先权顺序,先行关系,或者是一个器件先于另一个器件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的器件。
本发明虽以较佳实施例揭露如上,然其并非用以限定本发明的范围,任何所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可做些许的更动与润饰,因此本发明的保护范围以权利要求为准。

Claims (10)

1.一种数据处理装置,其特征在于,该装置包括:
一快闪存储器;
一运算单元;以及
一快闪存储器控制器,电连接至所述运算单元,并用以控制所述快闪存储器的存取;
其中所述快闪存储器控制器分别在所述快闪存储器的一第一存储器组及一第二存储器组配置一第一唯执行存储器空间设定及一第二唯执行存储器空间设定;
其中所述快闪存储器控制器依据所述第一唯执行存储器空间设定或所述第二唯执行存储器空间设定在所述快闪存储器中配置一或多个唯执行存储器空间。
2.根据权利要求1所述的数据处理装置,其特征在于,所述一或多个唯执行存储器空间中所储存的程序码或函式库无法被所述运算单元存取,且所述运算单元执行一应用程序以呼叫储存于所述一或多个唯执行存储器空间程序码或函式库。
3.根据权利要求1所述的数据处理装置,其特征在于,所述第一唯执行存储器空间设定或所述第二唯执行存储器空间设定在所述数据处理装置运作时无法被修改。
4.根据权利要求1所述的数据处理装置,其特征在于,所述运算单元依据所执行的一***内部编程指令的特定指令类型地址、一特定数据地址、及一指定地址以判断所述***内部编程指令是否为有效的一唯执行存储器空间页面抹除指令。
5.根据权利要求4所述的数据处理装置,其特征在于,当所述运算单元判断所述***内部编程指令为有效的所述唯执行存储器空间页面抹除指令时,所述快闪存储器控制器初始化一状态机并执行。
6.根据权利要求5所述的数据处理装置,其特征在于,所述第一唯执行存储器空间设定或所述第二唯执行存储器空间设定的其中一者为一活动区域,另一者为一备用区域,且所述快闪存储器控制器将所述活动区域及所述活动区域所相应的一第一脏位及第二脏位设定为一第一数值。
7.根据权利要求6所述的数据处理装置,其特征在于,所述快闪存储器控制器依据所述唯执行存储器空间页面抹除指令将所述一或多个唯执行存储器空间中的数据抹除;
其中当所述一或多个唯执行存储器空间中的数据抹除完成后,所述快闪存储器控制器抹除所述备用区域的数据,并将所述唯执行存储器空间页面抹除指令中的一新唯执行存储器空间设定更新至所述备用区域。
8.根据权利要求7所述的数据处理装置,其特征在于,当所述备用区域更新完成后,所述快闪存储器控制器更新所述第二脏位为一第二数值,并抹除所述活动区域的内容;
其中当所述活动区域的内容抹除完成后,所述快闪存储器控制器更新所述第一脏位为所述第二数值。
9.一种数据保护方法,用于一数据处理装置,其特征在于,所述数据处理装置包括一快闪存储器、一运算单元、及一快闪存储器控制器,该方法包括:
分别在所述快闪存储器的一第一存储器组及一第二存储器组配置一第一唯执行存储器空间设定及一第二唯执行存储器空间设定;以及
依据所述第一唯执行存储器空间设定或所述第二唯执行存储器空间设定在所述快闪存储器中配置一或多个唯执行存储器空间。
10.根据权利要求9所述的数据保护方法,其特征在于,所述一或多个唯执行存储器空间中所储存的程序码或函式库无法被所述运算单元存取,且所述运算单元执行一应用程序以呼叫储存于所述一或多个唯执行存储器空间程序码或函式库。
CN201811474512.6A 2018-09-18 2018-12-04 数据处理装置及其数据保护方法 Active CN110908932B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW107132757A TWI688861B (zh) 2018-09-18 2018-09-18 資料處理裝置及其資料保護方法
TW107132757 2018-09-18

Publications (2)

Publication Number Publication Date
CN110908932A true CN110908932A (zh) 2020-03-24
CN110908932B CN110908932B (zh) 2022-03-25

Family

ID=69774614

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811474512.6A Active CN110908932B (zh) 2018-09-18 2018-12-04 数据处理装置及其数据保护方法

Country Status (3)

Country Link
US (1) US11455401B2 (zh)
CN (1) CN110908932B (zh)
TW (1) TWI688861B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11327809B2 (en) * 2019-06-19 2022-05-10 International Business Machines Corporation Virtual machine memory removal increment selection
TWI811633B (zh) * 2021-02-09 2023-08-11 新唐科技股份有限公司 電子裝置與其操作方法
FR3136079A1 (fr) * 2022-05-25 2023-12-01 STMicroelectronics (Alps) SAS Méthode pour la gestion d’une zone de données sensible en mémoire FLASH
CN115469815B (zh) * 2022-10-31 2023-04-18 之江实验室 提高闪存可靠性的缓存管理方法、装置、设备和储存介质
CN117420964B (zh) * 2023-12-18 2024-03-22 合肥康芯威存储技术有限公司 一种存储装置及其数据处理方法
CN117492663B (zh) * 2023-12-29 2024-03-26 合肥康芯威存储技术有限公司 一种存储器及其数据处理方法
CN117891410B (zh) * 2024-03-14 2024-06-11 合肥康芯威存储技术有限公司 一种存储器***及闪存存储器的数据处理方法

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101128802A (zh) * 2005-02-25 2008-02-20 罗伯特·博世有限公司 数据保护用的方法和用于其实施的设备
CN101499315A (zh) * 2008-01-30 2009-08-05 群联电子股份有限公司 快闪存储器平均磨损方法及其控制器
CN101788958A (zh) * 2010-02-04 2010-07-28 杭州晟元芯片技术有限公司 一种存储器数据保护的方法
CN102866961A (zh) * 2011-09-12 2013-01-09 微软公司 具有扩展的数据和用户隐私保护的存储器转储
CN103678157A (zh) * 2012-09-20 2014-03-26 慧荣科技股份有限公司 数据储存装置以及快闪存储器控制方法
CN105760253A (zh) * 2016-01-13 2016-07-13 奇瑞汽车股份有限公司 一种电子节气门芯片安全监控的软件实现方法
CN105900105A (zh) * 2014-02-06 2016-08-24 英特尔公司 用于多操作***环境的介质保护策略实施
WO2017201453A1 (en) * 2016-05-19 2017-11-23 Narf Industries, LLC System and method for probabilistic defense against remote exploitation of memory
CN107533515A (zh) * 2015-04-24 2018-01-02 高通股份有限公司 阻止存储器溢出攻击的精细粒度存储器保护
TW201821998A (zh) * 2016-12-05 2018-06-16 挪威商諾迪克半導體股份有限公司 記憶體保護邏輯

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7804718B2 (en) 2007-03-07 2010-09-28 Mosaid Technologies Incorporated Partial block erase architecture for flash memory
US20090187726A1 (en) * 2008-01-22 2009-07-23 Serebrin Benjamin C Alternate Address Space to Permit Virtual Machine Monitor Access to Guest Virtual Address Space
US7895404B2 (en) * 2008-02-14 2011-02-22 Atmel Rousset S.A.S. Access rights on a memory map
CN102184360B (zh) * 2011-05-13 2013-06-05 华中科技大学 一种适用于嵌入式处理器的信息流安全监控方法
CN103488578B (zh) * 2012-12-28 2016-05-25 晶天电子(深圳)有限公司 虚拟存储设备(vmd)应用/驱动器
US9489316B2 (en) * 2013-03-15 2016-11-08 Freescale Semiconductor, Inc. Method and device implementing execute-only memory protection
EP2955633B1 (en) * 2013-03-15 2018-05-23 Huawei Technologies Co., Ltd. Data erasing method and device for flash memory
US9940048B2 (en) * 2014-02-26 2018-04-10 Macronix International Co., Ltd. Nonvolatile memory data protection using nonvolatile protection codes and volatile protection codes
US9753863B2 (en) * 2014-12-27 2017-09-05 Intel Corporation Memory protection with non-readable pages

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101128802A (zh) * 2005-02-25 2008-02-20 罗伯特·博世有限公司 数据保护用的方法和用于其实施的设备
CN101499315A (zh) * 2008-01-30 2009-08-05 群联电子股份有限公司 快闪存储器平均磨损方法及其控制器
CN101788958A (zh) * 2010-02-04 2010-07-28 杭州晟元芯片技术有限公司 一种存储器数据保护的方法
CN102866961A (zh) * 2011-09-12 2013-01-09 微软公司 具有扩展的数据和用户隐私保护的存储器转储
CN103678157A (zh) * 2012-09-20 2014-03-26 慧荣科技股份有限公司 数据储存装置以及快闪存储器控制方法
CN105900105A (zh) * 2014-02-06 2016-08-24 英特尔公司 用于多操作***环境的介质保护策略实施
CN107533515A (zh) * 2015-04-24 2018-01-02 高通股份有限公司 阻止存储器溢出攻击的精细粒度存储器保护
CN105760253A (zh) * 2016-01-13 2016-07-13 奇瑞汽车股份有限公司 一种电子节气门芯片安全监控的软件实现方法
WO2017201453A1 (en) * 2016-05-19 2017-11-23 Narf Industries, LLC System and method for probabilistic defense against remote exploitation of memory
TW201821998A (zh) * 2016-12-05 2018-06-16 挪威商諾迪克半導體股份有限公司 記憶體保護邏輯

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
黄平: "基于固态盘特征的存储优化研究", 《中国博士学位论文全文数据库 信息科技辑》 *

Also Published As

Publication number Publication date
TWI688861B (zh) 2020-03-21
CN110908932B (zh) 2022-03-25
US20200089894A1 (en) 2020-03-19
TW202013196A (zh) 2020-04-01
US11455401B2 (en) 2022-09-27

Similar Documents

Publication Publication Date Title
CN110908932B (zh) 数据处理装置及其数据保护方法
JP6306578B2 (ja) メモリ保護装置及び保護方法
JP4713867B2 (ja) メモリコントローラ,メモリ装置及びメモリコントローラの制御方法
US5829013A (en) Memory manager to allow non-volatile memory to be used to supplement main memory
KR100531192B1 (ko) 비휘발성 메모리의 제어방법
US5371876A (en) Computer system with a paged non-volatile memory
US6154819A (en) Apparatus and method using volatile lock and lock-down registers and for protecting memory blocks
JP4818793B2 (ja) マイクロコンピュータ及びメモリアクセスの制御方法
TWI537972B (zh) 記憶體之積體電路上之資料保護方法及相關之記憶體電路
US7222214B2 (en) Device-level address translation within a programmable non-volatile memory device
JPH0778766B2 (ja) ランダム・アクセス可能かつ書換え可能メモリを用いる外部記憶装置におけるプログラム直接実行の制御方法および装置
KR100604877B1 (ko) 내장 시스템의 메모리 어드레스의 매핑을 제어하는 장치와방법
US20040205314A1 (en) Semiconductor memory with access protection scheme
US10303386B2 (en) Data processing device and method for saving power in a data processing device
US20080109612A1 (en) Dynamic Code Relocation for Low Endurance Memories
JP2011209963A (ja) メモリ制御装置及びメモリ制御方法
US6738887B2 (en) Method and system for concurrent updating of a microcontroller's program memory
US20040186947A1 (en) Access control system for nonvolatile memory
CN110908597B (zh) 适应性锁定范围管理的方法、数据存储装置及其控制器
JP4892414B2 (ja) 制御回路、記憶媒体、処理装置、組込みシステムならびに領域管理方法
US6898680B2 (en) Minimization of overhead of non-volatile memory operation
JP4031693B2 (ja) 不揮発性メモリおよびこれを有したデータ記憶装置
JP2007513421A (ja) フラッシュメモリ内でのアクセスを制御するための方法、およびこのような方法の実施のためのシステム
JP2015090512A (ja) メモリダンプ機能を有する情報処理装置
JP2005293177A (ja) メモリコントローラ及びフラッシュメモリシステム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant