TW202013196A - 資料處理裝置及其資料保護方法 - Google Patents

資料處理裝置及其資料保護方法 Download PDF

Info

Publication number
TW202013196A
TW202013196A TW107132757A TW107132757A TW202013196A TW 202013196 A TW202013196 A TW 202013196A TW 107132757 A TW107132757 A TW 107132757A TW 107132757 A TW107132757 A TW 107132757A TW 202013196 A TW202013196 A TW 202013196A
Authority
TW
Taiwan
Prior art keywords
memory
execution
flash memory
memory space
data processing
Prior art date
Application number
TW107132757A
Other languages
English (en)
Other versions
TWI688861B (zh
Inventor
劉明穎
吳坤益
陳俊吉
Original Assignee
新唐科技股份有限公司
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 新唐科技股份有限公司 filed Critical 新唐科技股份有限公司
Priority to TW107132757A priority Critical patent/TWI688861B/zh
Priority to CN201811474512.6A priority patent/CN110908932B/zh
Priority to US16/426,230 priority patent/US11455401B2/en
Application granted granted Critical
Publication of TWI688861B publication Critical patent/TWI688861B/zh
Publication of TW202013196A publication Critical patent/TW202013196A/zh

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/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/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/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圖實施例之唯執行記憶體空間之配置的示意圖。
在一實施例中,資料處理裝置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-only memory)等非揮發性記憶體。因此,在以下內容中所提到的快閃記憶體控制器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為活動區域(active region)時,XOM設定1415B則可視為備用區域(backup region)。類似地,當XOM設定1415B為活動區域(active region)時,XOM設定1415A則可視為備用區域(backup region)。因此,基於上述設計,本發明中之唯執行記憶體空間可具有斷電攻擊保護(power attack protection)之功能,其細節將詳述於後。
在一實施例中,唯執行記憶體空間之數量例如可為4個,例如分別為唯執行記憶體空間XOM0~XOM3,但本發明並不限於此。舉例來說,唯執行記憶體空間XOM0~XOM3之起始邏輯位址為可為24位元之位址,且其大小及控制位元均為8位元,若基礎邏輯位址及大小均是對齊頁面(page-aligned),則其相應的位址關係可用表1表示:
Figure 107132757-A0304-0001
表1
安全區域設定1416A係用以儲存用以配置在快閃記憶體140中之安全區域(secure region)之設定,例如其起始位址及大小。非安全區域設定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-System Programming (ISP) Command),例如為唯執行記憶體空間XOM0之頁面抹除指令。詳細而言,為了與一般的快閃記憶體頁面抹除指令(例如可操作於唯執行記憶體空間之外的安全區域或非安全區域)進行區隔,上述系統內部編程指令之類型、資料、及位址需符合特定條件,運算單元110才會判斷上述系統內部編程指令為有效的唯執行記憶體空間頁面抹除指令,例如需分別符合一特定指令類型位址(例如表示快閃記憶體頁面清除指令)、一特定資料位址(例如欲清除的頁面數量)、及一指定位址(例如欲指定清除的唯執行記憶體空間之基礎邏輯位址)。若不符合上述條件之任一者,則運算單元110會判斷此系統內部編程指令為一無效(invalid)指令,並將相應的一旗標值(例如為系統內部編程指令失效旗標(ISP command fail 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)之功能。
於權利要求中使用如"第一"、"第二"、"第三"等詞係用來修飾權利要求中的元件,並非用來表示之間具有優先權順序,先行關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。
本發明雖以較佳實施例揭露如上,然其並非用以限定本發明的範圍,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可做些許的更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
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圖實施例之唯執行記憶體空間之配置的示意圖。 第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:第二寫入介面

Claims (10)

  1. 一種資料處理裝置,包括: 一快閃記憶體; 一運算單元;以及 一快閃記憶體控制器,電性連接至該運算單元,並用以控制該快閃記憶體之存取; 其中該快閃記憶體控制器係分別在該快閃記憶體之一第一記憶體組及一第二記憶體組配置一第一唯執行記憶體空間設定及一第二唯執行記憶體空間設定; 其中該快閃記憶體控制器係依據該第一唯執行記憶體空間設定或該第二唯執行記憶體空間設定在該快閃記憶體中配置一或多個唯執行記憶體空間。
  2. 如申請專利範圍第1項所述之資料處理裝置,其中該一或多個唯執行記憶體空間中所儲存之程式碼或函式庫無法被該運算單元存取,且該運算單元執行一應用程式以呼叫儲存於該一或多個唯執行記憶體空間程式碼或函式庫。
  3. 如申請專利範圍第1項所述之資料處理裝置,其中該第一唯執行記憶體空間設定或該第二唯執行記憶體空間設定在該資料處理裝置運作時無法被修改。
  4. 如申請專利範圍第1項所述之資料處理裝置,其中該運算單元係依據所執行的一系統內部編程指令之特定指令類型位址、一特定資料位址、及一指定位址以判斷該系統內部編程指令是否為有效的一唯執行記憶體空間頁面抹除指令。
  5. 如申請專利範圍第4項所述之資料處理裝置,其中當該運算單元判斷該系統內部編程指令為有效的該唯執行記憶體空間頁面抹除指令時,該快閃記憶體控制器係初始化一狀態機並執行。
  6. 如申請專利範圍第5項所述之資料處理裝置,其中該第一唯執行記憶體空間設定或該第二唯執行記憶體空間設定之其中一者為一主動區域,另一者為一備用區域,且該快閃記憶體控制器係將該主動區域及該活動區域所相應的一第一髒位元及第二髒位元設定為一第一數值。
  7. 如申請專利範圍第6項所述之資料處理裝置,其中該快閃記憶體控制器係依據該唯執行記憶體空間頁面抹除指令將該一或多個唯執行記憶體空間中之資料抹除; 其中當該一或多個唯執行記憶體空間中之資料抹除完成後,該快閃記憶體控制器係抹除該備用區域之資料,並將該唯執行記憶體空間頁面抹除指令中之一新唯執行記憶體空間設定更新至該備用區域。
  8. 如申請專利範圍第7項所述之資料處理裝置,其中當該備用區域更新完成後,該快閃記憶體控制器係更新該第二髒位元為一第二數值,並抹除該活動區域之內容; 其中當該活動區域之內容抹除完成後,該快閃記憶體控制器係更新該第一髒位元為該第二數值。
  9. 一種資料保護方法,用於一資料處理裝置,其中該資料處理裝置包括一快閃記憶體、一運算單元、及一快閃記憶體控制器,該方法包括: 分別在該快閃記憶體之一第一記憶體組及一第二記憶體組配置一第一唯執行記憶體空間設定及一第二唯執行記憶體空間設定;以及 依據該第一唯執行記憶體空間設定或該第二唯執行記憶體空間設定在該快閃記憶體中配置一或多個唯執行記憶體空間。
  10. 如申請專利範圍第9項所述之資料保護方法,其中該一或多個唯執行記憶體空間中所儲存之程式碼或函式庫無法被該運算單元存取,且該運算單元執行一應用程式以呼叫儲存於該一或多個唯執行記憶體空間程式碼或函式庫。
TW107132757A 2018-09-18 2018-09-18 資料處理裝置及其資料保護方法 TWI688861B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW107132757A TWI688861B (zh) 2018-09-18 2018-09-18 資料處理裝置及其資料保護方法
CN201811474512.6A CN110908932B (zh) 2018-09-18 2018-12-04 数据处理装置及其数据保护方法
US16/426,230 US11455401B2 (en) 2018-09-18 2019-05-30 Data-processing device and data-protection method thereof

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
TWI688861B TWI688861B (zh) 2020-03-21
TW202013196A true TW202013196A (zh) 2020-04-01

Family

ID=69774614

Family Applications (1)

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

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 合肥康芯威存储技术有限公司 一种存储器***及闪存存储器的数据处理方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005008716A1 (de) * 2005-02-25 2006-08-31 Robert Bosch Gmbh Verfahren zur Datensicherung und Gerät zu dessen Ausführung
US7804718B2 (en) 2007-03-07 2010-09-28 Mosaid Technologies Incorporated Partial block erase architecture for flash memory
US8307360B2 (en) * 2008-01-22 2012-11-06 Advanced Micro Devices, Inc. Caching binary translations for virtual machine guest
CN101499315B (zh) * 2008-01-30 2011-11-23 群联电子股份有限公司 快闪存储器平均磨损方法及其控制器
US7895404B2 (en) * 2008-02-14 2011-02-22 Atmel Rousset S.A.S. Access rights on a memory map
CN101788958A (zh) * 2010-02-04 2010-07-28 杭州晟元芯片技术有限公司 一种存储器数据保护的方法
CN102184360B (zh) * 2011-05-13 2013-06-05 华中科技大学 一种适用于嵌入式处理器的信息流安全监控方法
US8645763B2 (en) * 2011-09-12 2014-02-04 Microsoft Corporation Memory dump with expanded data and user privacy protection
US9013922B2 (en) * 2012-09-20 2015-04-21 Silicon Motion, Inc. Data storage device and flash memory control method thereof
CN103488578B (zh) * 2012-12-28 2016-05-25 晶天电子(深圳)有限公司 虚拟存储设备(vmd)应用/驱动器
EP2955633B1 (en) * 2013-03-15 2018-05-23 Huawei Technologies Co., Ltd. Data erasing method and device for flash memory
US9489316B2 (en) * 2013-03-15 2016-11-08 Freescale Semiconductor, Inc. Method and device implementing execute-only memory protection
US10049216B2 (en) * 2014-02-06 2018-08-14 Intel Corporation Media protection policy enforcement for multiple-operating-system environments
US9658787B2 (en) * 2014-02-26 2017-05-23 Macronix International Co., Ltd. Nonvolatile memory data protection using nonvolatile protection codes and volatile mask codes
US9753863B2 (en) * 2014-12-27 2017-09-05 Intel Corporation Memory protection with non-readable pages
US20160313938A1 (en) * 2015-04-24 2016-10-27 Qualcomm Incorporated Fine grained memory protection to thwart memory overrun attacks
CN105760253B (zh) * 2016-01-13 2018-08-10 奇瑞汽车股份有限公司 一种电子节气门芯片安全监控的软件实现方法
US10866908B2 (en) * 2016-05-19 2020-12-15 Narf Industries, LLC System and method for probabilistic defense against remote exploitation of memory
GB2557305A (en) * 2016-12-05 2018-06-20 Nordic Semiconductor Asa Memory protection logic

Also Published As

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

Similar Documents

Publication Publication Date Title
TWI688861B (zh) 資料處理裝置及其資料保護方法
JP6306578B2 (ja) メモリ保護装置及び保護方法
JP4818793B2 (ja) マイクロコンピュータ及びメモリアクセスの制御方法
JP4584044B2 (ja) 半導体装置
JP4713867B2 (ja) メモリコントローラ,メモリ装置及びメモリコントローラの制御方法
TWI537972B (zh) 記憶體之積體電路上之資料保護方法及相關之記憶體電路
JP4939387B2 (ja) データ処理装置及びアドレス空間保護方法
JPH0844630A (ja) ファイルアクセス制御装置およびその制御方法
JP2008059052A (ja) 半導体集積回路及びマイクロコンピュータ
JP4177360B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
US20060080497A1 (en) Program-controlled unit
TWI530954B (zh) 保護非揮發性記憶體中儲存之程式碼的裝置
US20040186947A1 (en) Access control system for nonvolatile memory
JP4609406B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4865064B2 (ja) 半導体装置
JP4031693B2 (ja) 不揮発性メモリおよびこれを有したデータ記憶装置
JP2011222055A (ja) マイクロコンピュータ及びメモリアクセスの制御方法
JP2015090512A (ja) メモリダンプ機能を有する情報処理装置
JP2005293177A (ja) メモリコントローラ及びフラッシュメモリシステム
CN116635855A (zh) 基于执行上下文管理可执行代码对数据内存的访问的装置和方法
CN110569205A (zh) 安全***单芯片及其操作方法
JPH081606B2 (ja) シングルチップマイクロコンピュータ
JP2005135036A (ja) メモリ制御装置