TW201409236A - 記憶體保護 - Google Patents

記憶體保護 Download PDF

Info

Publication number
TW201409236A
TW201409236A TW102122332A TW102122332A TW201409236A TW 201409236 A TW201409236 A TW 201409236A TW 102122332 A TW102122332 A TW 102122332A TW 102122332 A TW102122332 A TW 102122332A TW 201409236 A TW201409236 A TW 201409236A
Authority
TW
Taiwan
Prior art keywords
memory
protection
area
read
volatile memory
Prior art date
Application number
TW102122332A
Other languages
English (en)
Other versions
TWI581099B (zh
Inventor
Frank Berntsen
Ola Marvik
Lasse Olsen
Joel David Stapleton
Original Assignee
Nordic Semiconductor Asa
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 Nordic Semiconductor Asa filed Critical Nordic Semiconductor Asa
Publication of TW201409236A publication Critical patent/TW201409236A/zh
Application granted granted Critical
Publication of TWI581099B publication Critical patent/TWI581099B/zh

Links

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
    • G06F12/1433Protection 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 for a module or a part of a module
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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
    • G06F12/1441Protection 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 for a range
    • 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/77Protecting 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 in smart cards
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/22Safety or protection circuits preventing unauthorised or accidental access to memory cells
    • 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/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

一種積體電路裝置(1)包括處理器(7)、記憶體(13)用於儲存可執行的程式碼、以及記憶體保護邏輯(9)。記憶體保護邏輯(9)被設定用以:決定用於記憶體(13)一被保護區域之一讀取保護旗標的狀態;偵測處理器(7)的一記憶體讀取需求;決定是否該讀取需求係用於記憶體(13)的被保護區域的一位址;決定是否處理器(7)於執行儲存在記憶體(13)的被保護區域裡的程式碼時發出該讀取需求;以及假如用於被保護區域的讀取需求旗標被設立,拒絕用於被保護區域之位址的讀取需求,除非符合一或多個存取條件之至少一個,其中該等存取條件之一係為當執行儲存在被保護區域的程式碼時,處理器(7)發出該等讀取需求。

Description

記憶體保護
本發明係關於一積體電路裝置裡的記憶體保護。
一微控制器或晶片上系統(system-on-chip)裝置典型地儲存可執行的程式碼於記憶體裡。其可在其記憶體中已儲存由該晶片製造商所寫入的一些程式碼(例如一作業系統或韌體模組)、以及由一客戶或使用者所寫入的其他程式碼(例如軟體應用)。這些程式碼經常被儲存在非揮發性記憶體裡,例如EEPROM或快閃記憶體。
其有需要來防止該使用者程式碼或一外部除錯介面可以讀取或覆寫該晶片製造者寫入的程式碼,而不限制對該晶片製造者的程式碼之記憶體存取。其係由於該晶片製造者的程式碼包含了營業秘密而不想被其他人進行存取。其也可輔助防止因該使用者程式碼裡的錯誤而造成該晶片製造者的程式碼無意的毀損。
US8,051,263專利描述一記憶體保護單元,其根據用於記憶體之特定區域的一組可設定的記憶體保護屬性來選擇性地同意或拒絕記憶體存取需求。對該區域之存取係依據是否一執行單元正操作於一被允許的(privileged) 或不被允許的(non-privileged)操作模式。
假如該使用者程式碼執行於一不被允許的模式,該機制可被用於保護包含敏感程式碼的一記憶體區域被使用者程式碼所讀取。
然而,其有可能因一惡意的攻擊而造成該處理器在一允許操作模式時從該記憶體中讀取敏感的程式碼,並接著輸出內容給該攻擊者。此外,並非所有處理器都支援執行允許或不被允許的模式。
本發明因此採用不同的處理方法。
本發明的第一個目的是提供一積體電路裝置,包括一處理器、記憶體用於儲存可執行的程式碼、以及記憶體保護邏輯,其中該記憶體保護邏輯被設定用以:決定用於該記憶體一被保護區域之一讀取保護旗標的狀態;偵測該處理器的一記憶體讀取需求;決定是否該讀取需求係用於該記憶體被保護區域裡的一位址;決定是否該處理器於執行儲存在該記憶體的該被保護區域裡的程式碼時發出該讀取需求;以及假如用於該被保護區域的該讀取保護旗標被設立,拒絕用於該被保護區域中之位址的讀取需求,除非符合一或多個存取條件之至少一個,其中該等存取條件之一係為當執行儲存在該記憶體被保護區域裡的程式碼時,該處理器 發出該等讀取需求。
本發明第二個目的是提供一種控制一積體電路裝置上記憶體存取的方法,該積體電路裝置包括一處理器和記憶體用於儲存可執行的程式碼,該方法包括:決定用於該記憶體的一被保護區域的一讀取保護旗標的狀態;偵測該處理器的一記憶體讀取需求;決定是否該讀取需求係用於該記憶體的被保護區域裡的一位址;決定是否該處理器於執行儲存在該記憶體的被保護區域裡的程式碼時發出該讀取需求;以及假如該讀取保護旗標用於該被保護的區域被設立,拒絕該等在該被保護區域中之位址裡的讀取需求,除非符合一或多個存取條件之至少一個,其中該等存取條件之一係為當執行儲存在該被保護區域裡的程式碼時,該處理器發出該等讀取需求。
本發明更進一步的目的係提供一種控制一積體電路裝置上記憶體存取的方法,該積體電路裝置包括一處理器和記憶體用於儲存可執行的程式碼,該方法包括:決定用於該記憶體的一被保護區域的一讀取保護旗標被設立;偵測該處理器的一記憶體讀取需求;決定該讀取需求係用於該記憶體的該被保護區域裡的一位址; 決定該處理器於執行儲存在該記憶體的該被保護區域裡的程式碼時發出該讀取需求;以及允許該讀取需求。
因此所屬領域具通常知識者根據本發明可知,當處理器需求讀取存取至該記憶體的一被保護區域時,由該處理器所執行之程式碼的位址用以決定是否允許該需求。源自被儲存在該被保護區域外之程式碼的需求可以被拒絕(假如該讀取保護旗標被適當地設立),而來自儲存在該被保護區域內之程式碼的需求本身被允許。對於許多處理器架構,例如來自ARM(RTM)者,程式碼可發出資料讀取需求至該程式碼本身被儲存的一區域是非常重要的,以使得該處理器可存取嵌入於該程式碼裡的常數。
該保護藉由該記憶體保護邏輯而被實施,其較佳地被安排以獨立於該處理器而運行。該記憶體保護邏輯較佳地包括與該處理器分離的硬體邏輯。藉此,相比於依靠該處理器裡特准模式(privilege modes)之保護,其可減少更多惡意程式碼的有意欺騙的影響。
該晶片製造者可方便地儲存其程式碼於該被保護區域內以及設立該讀取保護旗標以防止一客戶的程式碼讀取該晶片製造者的程式碼,同時保留未限制的記憶體存取給其本身的程式碼。其它敏感的資訊,例如設定資料,也可以被儲存在該被保護區域。
假如用於該被保護區域的讀取保護旗標沒有被設立,該記憶體保護邏輯被較佳地設定以允許該被保護 區域中之位址的讀取需求。其在該裝置和軟體的初始開發階段裡十分有用。相似地,假如一寫入保護旗標沒有被設立,該記憶體保護邏輯被較佳地設定以允許該被保護區域中之位址的寫入需求。
假如該被保護區域的讀取保護旗標被設立,該記憶體保護邏輯被較佳地設定以拒絕該被保護區域之位址的讀取需求,除非該處理器於執行儲存在該被保護區域裡的程式碼(在此例中為被允許)時發出該等讀取需求。該較佳實施例僅具有一上述存取條件。然而,其它組實施例仍然可提供多個存取條件,每一條件可有效地重疊(override)於該讀取保護旗標;舉例來說,假如該處理器於執行一儲存在ROM裡的製造者啟動載入器程式時發出該讀取需求,一裝置可理解地允許該被保護區域的讀取。
該記憶體保護邏輯可進一步被相似地設定,以決定用於該被保護區域的一寫入保護旗標之狀態,以及假如用於該被保護區域的寫入保護旗標被設立,拒絕該被保護區域位址的寫入需求,除非該處理器於執行儲存在該被保護區域裡的程式碼時發出該等寫入需求。該讀取保護旗標也可做為寫入保護旗標,或可為二分離的旗標。
於一組較佳實施例裡,該記憶體為非揮發性記憶體,例如快閃記憶體。該處理器在執行時可直接從該非揮發性記憶體取得程式碼,或在一些實施例裡,至少一些程式碼可被快取(例如在揮發性記憶體裡)。假如該裝置包括此一快取(cache),可知此處參照來執行儲存在被保護區域裡 的程式碼包含執行該程式碼的一快取複製。
在其它實施例裡,該記憶體可為揮發性記憶體,例如保留給可執行程式碼之RAM的一部分,以及該被保護區域是揮發性記憶體的一區域。當該裝置的電源打開時,該可執行的程式碼可被複製至此記憶體(例如從ROM或快閃記憶體)。二擇一地,當該裝置使用時,程式碼的區段或個別的指令可視所需而被複製至揮發性記憶體的一被保護區域。
該處理器和記憶體可藉由一或多個匯流排而被連結。該記憶體保護邏輯亦可被連結於至少一組該等匯流排。該記憶體保護邏輯被較佳地設定來監督該記憶體的所有存取(例如所有讀取、寫入和指令-取得操作)。
該記憶體保護邏輯可決定是否該處理器於執行儲存在該記憶體被保護區域的程式碼時發出該等讀取需求,其係藉由判斷緊接於該記憶體存取需求之前的一指令-取得(instruction-fetch)操作的位址是否位於該被保護區域內來決定。根據是否該取得之指令是位於該被保護區域,該記憶體保護邏輯可被設定用以設立一暫存器於每個指令-取得操作上。該暫存器可包括一二進位旗標,該旗標根據是否該指令取得的位址是在該被保護區域裡而被設立。
該記憶體保護邏輯可被設定用以在一記憶體匯流排上使用交換型態資訊來辨識一指令-取得操作(例如將其從一讀取需求中區別)。二擇一地,其可被設定用以藉由決定一處理器腳位的狀態來辨識一指令-取得操作,或藉 由辨識匯流排來傳送該取得指令(例如在裝置裡具有分開的資料-取得以及指令-取得匯流排)。當使用ARM(RTM)的Cortex-M0處理器,該記憶體保護邏輯可從Cortex-M0使用該HPROT[0](資料/運算碼)信號來區別一運算碼取得和資料存取。
該被保護區域可包括數個離散區域或位址範圍。然而,較佳地其藉由一單一、連續位址範圍定義,來簡化邏輯執行。在一些較佳實施例裡,該被保護區域係可變的以及藉由儲存於該裝置之一或多位址而被定義,例如儲存為非揮發性記憶體裡的設定資料。
該被保護區域可在記憶體位址範圍內的一預設常數位址和一變化點之間延伸。該常數位址可方便地為用於該記憶體的一基底或終點位址,或甚至用於該裝置的所有記憶體位址空間;例如零(0x0000 0000)。藉此該區域可藉由儲存在該裝置的一單一值而被簡潔地特定為定義該記憶體內被保護區域的變數終點的位址。
該記憶體保護單元可接著被設定用以決定是否該讀取需求係用於該記憶體的被保護區域的一位址,其係藉由是否該位址係位於該預設常數位址和該可變記憶體位址之間來決定。此操作可使用相當少的邏輯閘來執行。
實施例中前述被保護記憶體區域是位於非揮發性記憶體裡,該裝置也可包括揮發性記憶體,如RAM。假如用於該揮發性記憶體被保護區域的一讀取保護旗標被設立,該記憶體保護邏輯可額外被設定來拒絕用於該揮發 性記憶體被保護區域位址的該等讀取需求,除非該處理器於執行儲存在該非揮發性記憶體被保護區域的程式碼時發出該等讀取需求。以此方式,被保護RAM的一區域可由儲存在該非揮發性記憶體(例如用於累積儲存)的被保護區域的程式碼所使用,同時被保護免由區域外的程式碼所讀取,此可保護晶片製造商所寫之程式碼儲存於RAM中之敏感資訊。
相似地,假如用於該揮發性記憶體的一寫入保護旗標被設立,該記憶體保護邏輯可被設定來拒絕用於該揮發性記憶體被保護區域位址的該等寫入需求,除非該處理器於執行儲存在該非揮發性記憶體被保護區域的程式碼時發出該等寫入需求。以此方式,儲存在非揮發性記憶體被保護區域外之客戶程式碼可避免無意或惡意的改變或覆寫該非揮發性記憶體被保護區域的程式碼所屬的揮發性資料。
該等非揮發性記憶體保護旗標也可作為揮發性記憶體保護旗標,或該揮發性記憶體旗標可包括一或多個分離旗標。
在前述任一實施例中,該裝置可包括一介面(例如一或多個腳位)以允許藉由一外部除錯器或軟體載入器來進行記憶體存取。在本發明較佳實施例中,假如一個用於被保護區域的除錯保護旗標被設立,該記憶體保護邏輯被配置來拒絕經由用於非揮發或揮發性記憶體的一些或全部被保護區域中之位址的該介面所接收之讀取需求。該 保護可相似地被提供用於寫入存取至揮發性或非揮發性記憶體的一被保護區域及/或用於一被保護區域的指令取得。該記憶體保護邏輯可被設定以藉由判斷何時一除錯器作為於該裝置裡的一記憶體匯流排之一匯流排主要裝置,而辨識記憶體存取需求係發源於一除錯介面。當該處理器為ARM(RTM)的一Cortex-M0,該處理器可使用該Cortex-M0的HMASTER信號來區別處理器核心和除錯器的執行。
該記憶體保護邏輯可進一步被設定用以決定可執行程式碼的記憶體之一使用者區域的一讀取保護旗標之狀態。此使用者區域可包括部分或全部記憶體鄰近但排除該位址空間裡的被保護之碼區域。假如用於該使用者區域的讀取保護旗標被設立,該記憶體保護邏輯可被設定來拒絕用於該使用者區域裡的位址且從一除錯介面被接收的讀取及/或寫入需求。以此方式,一客戶或其他使用者可保護其使用者應用程式碼免於第三方未被授權的存取;例如,基於機密性的理由。
在一些實施例裡,該裝置包括積體射頻通訊邏輯,例如一射頻發射器及/或接收器(即一晶片上射頻,radio-on-a-chip)。包括有實現一射頻堆疊之程式碼的一韌體模組可被儲存在程式碼記憶體之被保護區域。界接於該韌體模組的一軟體應用可被儲存在該被保護區域外。
本發明實施例特別適用於不具傳統操作系統的裝置,但允許一使用者開發本質程式碼(native code)以直接執行在該處理器上。其係因為該等裝置不能依靠一作業 系統來控制記憶體存取以及保護該裝置製造者安裝在該裝置上的任何機密軟體資料庫或模組。
在本發明任一實施例裡,該等讀取及/或寫入保護旗標被較佳地儲存在非揮發性記憶體裡。在使用上,該等旗標當然地被快取於一暫存器或一RAM裡。一保護旗標可正好為一組較大設定值的一元素。其可以任何適合的方式被編碼。在一些實施例裡,每一如此之保護旗標被儲存為一個二進位旗標或位元欄。
一或多個保護旗標可被儲存在非揮發性記憶體的一保護-設定區域裡。較佳地,該裝置包括非揮發性記憶體控制邏輯,其被配置用以避免寫入至該保護-設定區域的任何部分,除非該部分是一被抹除狀態。較佳地,該非揮發性記憶體控制邏輯進一步被配置用以只有當該非揮發性記憶體的一被保護區域是一抹除狀態時,才允許該保護-設定區域被抹除。
以此方式,在沒有先抹除任何儲存在該非揮發性記憶體保護區域的資料之情況下,該等保護旗標不能重新寫入。儲存在該被保護區域的敏感可執行程式碼因此不能夠僅藉由重置用於該非揮發性記憶體的讀取保護旗標而予以讀取。
此構想是新穎的並具有創造性。因此,從更進一步的觀點,本發明提供一積體電路裝置,其包括一處理器、非揮發性記憶體、非揮發性記憶體控制邏輯、及記憶體保護邏輯,其中: 該記憶體保護邏輯被配置用以依據儲存在該非揮發性記憶體的一保護-設定區域的保護設定資料來控制該非揮發性記憶體的一可保護區域的存取;該非揮發性記憶體控制邏輯被配置用以避免寫入該保護-設定區域的任何部分,除非該部分屬於一抹除狀態;以及該非揮發性記憶體控制邏輯被配置用以只有在該可保護區域屬於一抹除狀態時才允許該保護-設定區域被抹除。
從另一觀點來看,本發明提供一方法用以控制包括一處理器和非揮發性記憶體的一積體電路裝置上之記憶體存取,該方法包括:依據儲存在該非揮發性記憶體的一保護-設定區域的保護設定資料來控制該非揮發性記憶體的一可保護區域的存取;避免寫入該保護-設定區域的任何部分,除非該部分屬於一抹除狀態;只有當該可保護區域屬於一抹除狀態時才允許該保護-設定區域被抹除。
先前所述之特色和其實施例亦可作為這些實施例的附加特色,只要合適。尤其是如先前所述,該可保護區域可為該非揮發性記憶體的一被保護區域,以及如前述該保護設定資料可包括一或多個保護旗標。
較佳地,非揮發性記憶體控制邏輯操作獨立於該處理器。其較佳地包括與該處理器分離的不同邏輯閘。 以此方式,一惡意或未注意的程式不能夠忽略該非揮發性記憶體控制邏輯而執行程式碼於該處理器上。在較佳實施例裡,該記憶體保護邏輯相似地係獨立於該處理器。
US 6952778專利描述一微控制器根據所設定的規則來提供一實施記憶體之記憶體區塊讀取及/或寫入的保護。該等規則分配記憶體區塊的各自等級並被儲存在一監督非揮發性記憶體裡。當其根據一終端使用者的需求而已經開始被程式化時,該區塊安全等級可以被增強,除非該監督者非揮發性記憶體被抹除以及該微控制器被重新起始。此導致該使用者定義的預設安全等級被重新儲存。
然而該方法依賴該預設安全等級成功的復原來使得該等記憶體區塊被充分地保護。假如一攻擊者可界接重新起始該微控制器的處理,該記憶體的內容可能失去保護而被該攻擊者所讀取。
對照之下,本發明較佳實施例使用專門的非揮發性記憶體控制邏輯與記憶體保護邏輯來確保該保護設定資料僅在任何敏感資訊已經從該裝置上先被抹除後才可以被重置。
該非揮發性記憶體控制邏輯可被設定使得該非揮發性記憶體控制邏輯所提供用來抹除該保護-設定區域的唯一機制為一指令,其皆抹除可保護區域和保護-設定區域。此可為一指令用來抹除該裝置上的所有非揮發性記憶體。
假如該保護-設定區域和該可保護區域包括不 同記憶體頁或可抹除區塊,該非揮發性記憶體控制邏輯較佳地被設定用以在抹除任何形成部分該保護-設定區域的頁或區塊之前,抹除所有形成可保護區域的頁或區塊。以此方式,假如該抹除操作在完成前被中斷,若該可保護區域尚未被完全抹除,該保護設定資料仍將被呈現,藉此持續提供保護。
該記憶體保護邏輯可被設定,以使得當該保護-設定區域是在一抹除狀態時,該可保護區域的存取是該限制等級的序組中之最高等級。其藉由以預設而限制該可保護區域的存取,例如,假設一使用者在抹除後忘記設定新的設定資料,而可提供額外的安全性。
藉由在一被抹除狀態時允許寫入該保護-設定區域,該保護設定資訊可被設定在製造過程或授權時,以及在該裝置之任何後續重新程式化的時間裡。
該非揮發性記憶體控制邏輯較佳地被配置用以接收一指令來寫入該保護-設定區域的一部分,並且在允許寫入前檢查該部分是否是抹除狀態以回應該指令。其可藉由讀取該部分以及決定其屬於非揮發性記憶體型態的一本質(natural)抹除狀態來完成。舉例來說,在一頁已被抹除後,快閃記憶體具有一個二進位“1”於每個位元上。該記憶體控制邏輯藉此可在允許寫入操作前檢查每一位元是否為“1”。其它記憶體型態當然也可讀取“0”或具有其它本質抹除狀態。
二擇一地,該非揮發性記憶體區域可包括抹除 狀態旗標,當該區域被抹除時該等旗標被重置,但當一第一寫入操作被執行至該區域時,該等旗標藉由該非揮發性記憶體控制邏輯被設立。在此情況下,該非揮發性記憶體控制邏輯在允許一寫入操作至該保護-設定區域的一部份之前,可檢查一或多個抹除狀態旗標。
該記憶體-保護設定區域可儲存一或多個值,如先前所述該值定義非揮發性記憶體的可保護區域及/或定義揮發性記憶體的一被保護區域。以此方式,攻擊者如沒有先破壞這些內容則不能改變該(該等)被保護區域的定義。
上述實施例僅係為了方便說明而舉例而已,而非僅限於上述實施例。
2‧‧‧最高階供應模組
4a‧‧‧高等級主要模組
4b,4c‧‧‧其他主要模組
6‧‧‧副模組
6a,6b,6c‧‧‧周邊
8‧‧‧副模組
10‧‧‧時脈閘控制
52‧‧‧資源需求輸入
54‧‧‧重置需求線
56‧‧‧代價等級設定
58‧‧‧時脈來源輸入
60‧‧‧搭檔需求輸入端
62‧‧‧搭檔需求輸出端
64‧‧‧介面
12,12a,12b,12c,12d‧‧‧狀態機器
14 16 22‧‧‧介面
28‧‧‧超低電量(ULP)暫存器
30‧‧‧主要電壓暫存器
32‧‧‧開關
34‧‧‧RC(電阻-電容)震盪器
36‧‧‧晶體震盪器
38‧‧‧時脈來源部分
40‧‧‧緩衝器
50‧‧‧資源需求線
65‧‧‧設定介面
66‧‧‧時脈輸出端
68‧‧‧重置輸出端
69‧‧‧狀態輸出
70,72,74,76,78,80‧‧‧主要模組
82,84,86‧‧‧下游連結
88‧‧‧需求重置連結
90‧‧‧重置下游連結
92‧‧‧搭檔需求
本發明的一些較佳實施例將在此被描述,但僅是舉例,並參考所附圖式,其中:圖1係本發明一實施例之一微控制器示意圖;圖2係該微控制器架構裡主要軟體元件示意圖;以及圖3係該微控制器的示意記憶體映射。
圖1顯示一積體電路微控制器1或一晶片上射頻(radio-on-a-chip)包括一可具有一電阻-電容振盪器及/或可接收來自一外接-晶片(off-chip)晶體振盪器(圖未顯示)的一輸入的時脈邏輯3、一電源管理電路5、一處理器7(如一ARM(RTM)Cortex-M0)、一記憶體保護單元9、一隨機存取記憶體(RAM)11、一快閃記憶體控制器20、一快閃記憶體 13、一射頻通訊邏輯17、一或多個周邊15、以及一輸入/輸出電路19。
這些元件使用合適的線路及/或匯流排(圖未顯示)而被互相連結。該微控制器1可使用一Harvard架構或一von Neumann架構。該記憶體保護單元9被配置用以攔截從該處理器7至該RAM11以及至該快閃記憶體控制器20的所有記憶體存取指令。
該微控制器1也具有一除錯介面18可被用於載入資料至該快閃記憶體13以及用於除錯該處理器7。其不直接對該RAM11與快閃記憶體13進行存取,而是必須經由該記憶體保護單元9與快閃記憶體控制器20來對這些記憶體進行存取。
在使用上,該微控制器1可被連結至數個外部元件,例如一個電源供應、射頻天線、晶體振盪器、數個感應器、輸出裝置等。
圖2顯示可安裝在該微控制器1的軟體元件。界接於該微控制器1硬體的是一選擇的硬體抽象層21,例如為ARM(RTM)Cortex微控制器軟體介面標準。在其之上的是一韌體模組23以及一分開軟體應用27。
該韌體模組23是一個二進位應用包括數個嵌入的軟體區塊。一射頻協定區塊31實現一或多個無線協定堆疊。一射頻事件管理器33提供用於該射頻通訊邏輯17的存取排程和多組事件。一資料庫35提供被分享的硬體資源管理以及功能,例如隨機數量產生、設定攔截以及優先 順序、電量管理(例如用於致能及禁能數個周邊)、加密功能等。一韌體管理器37支援致能及禁能該韌體模組,並致能及禁能該無線協定堆疊。
該韌體模組23不須是一完整的作業系統,其不須支援多工處理、記憶體分配等。
用於該韌體模組23的一應用介面(API)29允許該軟體應用27來調用該韌體模組23裡的功能函數。其可完全使用系統呼叫來實現。當使用一ARM(RTM)處理器,每一API功能函數原型在編譯時間上經由一關聯的監督者呼叫單元而映射至一個韌體功能函數。該映射可被提供給該軟體應用27的開發者,以允許該功能函數被正確地呼叫。
該韌體模組23可傳遞事件至該軟體應用27作為軟體中斷,該內容被暫緩直到被該應用軟體27所讀取(輪詢)。該讀取經由一API呼叫所完成(例如event_get())。
圖3顯示該RAM11和快閃記憶體13如何在該韌體模組23和該軟體應用27之間被分享。該快閃記憶體13被分配數個由零(0x0000 0000)至SizeOfProgMem的位址來儲存可執行的程式碼。
可位於其自身的快閃頁面上之快閃記憶體13的其它區域,係從MemConfigStart延伸至MemConfigEnd並且被用於儲存給該記憶體保護單元9使用的設定資料。在一組實施例,此頁面從0x1000 0000延伸至0x1000 07ff,但如同此處所提到所有該位址的值,這些值係依照使用在任何給定之實施例上之特定處理器架構而定。
該RAM11被配置於從0x2000 0000的位址上升至0x2000 0000+SizeOfRAM的位址。
該快閃記憶體13的程式區域包括在一位址CLEAN0(程式碼長度區域0)兩側的兩限制區域。在零和CLEAN0之間的區域0是該韌體模組23被載入之處。一韌體中斷向量表被儲存在位址零。從CLEAN0上升至SizeOfProgMem的區域1是該軟體應用被載入之處。其也可以具有一中斷向量表位於位址CLEAN0處。
該RAM11相似地具有從該基底位址0x2000 000至RLENR0的一區域0,以及具有從RLENR0向上延伸的一區域1。RAM區域0提供堆積(heap)儲存以用於該韌體模組,而RAM區域1提供堆積儲存以用於該軟體應用27。一呼叫堆疊被分享在該韌體模組23和該軟體應用27之間,並且從(0x2000 0000+SizeOfRAM)開始向下成長。分配至該呼叫堆疊的記憶體必須足夠大以符合該軟體應用27和該韌體模組23的需求。
CLEANR0和RLENR0的值被儲存在該快閃記憶體13的記憶體保護設定區域。
在供電量時,儲存在該快閃記憶體13的記憶體保護設定區域裡的相關資料被複製至該記憶體保護邏輯9可存取的記憶體設定暫存器裡。該等暫存器只可由一僅於啟動該微控制器1時執行之硬體狀態機器所寫入,使得改變這些暫存器內容的唯一方法係改變該快閃記憶體13的記憶體保護設定區域裡的資料。
該記憶體保護邏輯9被配置來攔截從該處理器7至該快閃記憶體13和該RAM11的所有記憶體存取需求(例如資料提取或指令提取操作)。其可以辨識來自該記憶體匯流排上一“交易(transaction)型態”的一指令-提取操作。對於該處理器7產生來自該快閃記憶體13的所有指令提取,假如該被提取指令的位址小於CLEAR0,該記憶體保護邏輯9更新一“韌體區域”暫存器裡的一單一位元旗標為1,假如該被提取指令的位址大於或等於CLEAR0,該記憶體保護邏輯9更新該旗標為0。
對於每一資料存取需求,該記憶體保護邏輯9藉由檢查該“韌體區域”暫存器之值而判斷是否該存取需求來自於該韌體模組23或其他地方。其可被設定藉由判斷該活動的記憶體匯流排主要裝置(master)的身份,而來偵測是否該需求的來源是除錯介面18,或一直接記憶體存取(DMA)單元。其也存取該記憶體保護設定暫存器,並基於該“韌體區域”暫存器的狀態以及該匯流排主要裝置的身份而決定是否允許或拒絕該存取需求。
在一些較佳實施例裡,該軟體應用27被拒絕讀取與寫入存取至快閃區域0以及至RAM區域0。此保護該韌體模組23之機密性,並可避免該軟體應用無意地或惡意地寫入分配給該韌體模組23的記憶體區域,藉此增加堅固性和安全性。該軟體應用快閃區域1也可被保護來不被讀取存取,例如經由一個外部除錯介面18用以保護來不被回讀。
圖4顯示在未被授權的存取時該微控制器1可實現該快閃記憶體13之保護的一決定表。當然其他替代的實現皆是可能的。
兩個二進位旗標被儲存在該快閃記憶體13的記憶體-保護設定區域裡(並在啟動時被複製到暫存器)。該第一設立之旗標係經由該除錯介面18避免資料讀取和寫入存取至所有該程式快閃。該第二設立之旗標係避免除了區域0自身的程式碼執行以外的任何資料讀取和寫入存取至所有該區域0快閃記憶體。即使資料讀取存取被拒絕時,該處理器7的執行存取(即指令提取)仍然被允許。
假如一攻擊可改變儲存在該快閃記憶體13的記憶體-保護設定區的資料,該保護機制可被略過。然而,該快閃記憶體控制器20避免寫入至該記憶體-保護設定區,除非其在一被抹除狀態。此外,該快閃記憶體控制器20避免該記憶體-保護設定區的抹除,除非該快閃記憶體13的區域0和區域1已先被抹除。其使用數位邏輯實作一有限狀態機器以實現這些情況。
假如該快閃記憶體控制器20接收一指令來寫入一字串至該記憶體-保護設定區的一位址,其將先讀取該位址上存在的內容並且將只允許該寫入,假如存在的內容全部為二進位中的“1”,其表示該位址在該記憶體-保護設定區快閃記憶體的一抹除中尚未被寫入。假如該檢查失敗,其將拒絕該寫入並發出一處理器7之例外。
假如該快閃記憶體控制器20接收一指令來抹 除整個快閃記憶體13,在抹除該記憶體-保護設定區之前,其將先藉由抹除快閃區域0和快閃區域1的內容來回應。基於此理由,該記憶體-保護設定區域較佳地儲存在其本身的可抹除快閃頁面裡,而與該快閃記憶體13的任何程式化區域分離。
該快閃記憶體控制器20將拒絕任何用以僅抹除該記憶體-保護設定區域的指令。
該領域具通常知識者可知該微控制器1也可被設定以防止執行該快閃記憶體13的區域0以外的程式碼來存取重要的特徵,例如有關該射頻通訊邏輯17的低等級功能函數的暫存器、該電源控制邏輯5、一直接-記憶體存取(DMA)控制器、或中斷暫存器。
所屬領域具通常知識者可以得知上述實施例僅係為了方便說明而舉例而已,本發明所主張之權利範圍自應以申請專利範圍所述為準,而非僅限於上述實施例。
1‧‧‧積體電路微控制器
3‧‧‧時脈邏輯
5‧‧‧電源管理電路
7‧‧‧處理器
9‧‧‧記憶體保護單元
11‧‧‧隨機存取記憶體
13‧‧‧快閃記憶體
15‧‧‧周邊
17‧‧‧射頻通訊邏輯
18‧‧‧除錯介面
19‧‧‧輸入/輸出電路
20‧‧‧快閃記憶體控制器

Claims (29)

  1. 一種積體電路裝置包含一處理器、記憶體用於儲存可執行的程式碼、以及記憶體保護邏輯,其中該記憶體保護邏輯被設定用以:決定用於該記憶體一被保護區域之一讀取保護旗標的狀態;偵測該處理器的一記憶體讀取需求;決定是否該讀取需求係用於該記憶體的該被保護區域裡的一位址;決定是否該處理器於執行儲存在該記憶體的該被保護區域裡的程式碼時發出該讀取需求;假如用於該被保護的區域的該讀取保護旗標被設定,拒絕用於該被保護區域中之位址的讀取需求,除非符合一或多個存取條件之至少一個,其中該等存取條件之一係為當執行儲存在該被保護區域裡的程式碼時,該處理器發出該等讀取需求。
  2. 如申請專利範圍第1項所述之裝置,其中該記憶體保護邏輯包括與該處理器分離的硬體邏輯。
  3. 如申請專利範圍第1或2項所述之裝置,其中,假如用於該被保護區域的讀取保護旗標沒有被設定時,該記憶體保護邏輯被設定用以允許用於該被保護記憶體區域中之位址的讀取需求。
  4. 如前述任一項申請專利範圍所述之裝置,其中,假如用於該被保護區域中之的讀取保護旗標被設定時,該記 憶體保護邏輯被設定用以拒絕用於該被保護區域中之位址的讀取需求,除非該處理器於執行儲存在該被保護區域的程式碼時發出該等讀取需求。
  5. 如前述任一項申請專利範圍所述之裝置,其中該記憶體保護邏輯更進一步被設定用以決定用於該被保護區域的一寫入保護旗標的狀態以及,假如用於該被保護區域的寫入旗標被設定,用以拒絕用於該被保護區域中之位址的寫入需求,除非該處理器於執行儲存在該被保護區域裡的程式碼時發出該等寫入需求。
  6. 如前述任一項申請專利範圍所述之裝置,其中該記憶體係為非揮發性記憶體。
  7. 如前述任一項申請專利範圍所述之裝置,其中該記憶體保護邏輯被設定用以監督對該記憶體的所有存取。
  8. 如前述任一項申請專利範圍所述之裝置,其中,根據該取得指令的位址是否位於該被保護的區域,該記憶體保護邏輯被設定來設立一暫存器於每一指令-取得操作上。
  9. 如前述任一項申請專利範圍所述之裝置,其中,該記憶體保護邏輯被設定用以決定是否該處理器於執行儲存在該記憶體被保護區域裡的程式碼時發出該讀取需求,其係藉由判斷緊接於該記憶體存取需求之前的一指令-取得操作的位址是否位於該被保護區域內。
  10. 如前述任一項申請專利範圍所述之裝置,其中該被保護區域係可變的並且藉由一或多個儲存在該裝置的位址而被定義。
  11. 如前述任一項申請專利範圍所述之裝置,其中該記憶體的被保護區域延伸於一預設的不變位址以及該記憶體範圍內的一個可變點之間,以及該記憶體保護單元被設定用以決定是否該讀取需求係用於該被保護區域裡的一位址,其係藉由判斷是否該位址係位於該預設不變位址和該可變的記憶體位址之間來決定。
  12. 如前述任一項申請專利範圍所述之裝置,其中該用於儲存可執行的程式碼的記憶體係為非揮發性記憶體,以及該裝置更包括揮發性記憶體,以及其中,假如用於該揮發性記憶體的被保護區域的一讀取旗標被設定,該記憶體保護邏輯更被設定用以拒絕用於該揮發性記憶體被保護區域位址的讀取需求,除非該處理器於執行儲存在該非揮發性記憶體被保護區域的程式碼時發出該等讀取需求。
  13. 如前述任一項申請專利範圍所述之裝置,包括一介面以允許藉由一外部除錯器或軟體讀取器來進行記憶體存取,其中,假如一個用於該區域的除錯保護旗標被設定時,該記憶體保護邏輯被配置來拒絕經由用於揮發性或非揮發性記憶體的一或多個被保護區中之位址的該介面所接收之讀取需求。
  14. 如前述任一項申請專利範圍所述之裝置,包括積體射頻通訊邏輯,其中包含有實現一射頻協定堆疊之程式碼的一韌體模組被儲存在該程式碼記憶體之被保護區域,以及其中選擇性地一與該韌體模組界接之軟體應用被儲存在該被保護區域之外的記憶體。
  15. 如前述任一項申請專利範圍所述之裝置,包括非揮發性記憶體以及被配置用以儲存該保護旗標或該等保護旗標於該非揮發性記憶體裡的一保護-設定區域裡,其中該裝置更包括非揮發性記憶體控制邏輯被配置用以避免寫入該保護-設定區域的任何部分,除非該部分係在一被抹除狀態。
  16. 如申請專利範圍第15項所述之裝置,其中該非揮發性記憶體控制邏輯更被配置,以當只有該非揮發性記憶體的一被保護區域係在一被抹除狀態時,允許該保護-設定區域被抹除。
  17. 一種控制一積體電路裝置上記憶體存取的方法,該積體電路裝置包括一處理器和記憶體用於儲存可執行的程式碼,該方法包括:決定用於該記憶體的一被保護區域的一讀取保護旗標的狀態;偵測該處理器的一記憶體讀取需求;決定是否該讀取需求係用於該記憶體的被保護區域裡的一位址;決定是否該處理器於執行儲存在該記憶體的被保護區域裡的程式碼時發出該讀取需求;假如該讀取保護旗標用於該被保護的區域被設立,拒絕該等在該被保護區域中之位址裡的讀取需求,除非符合一或多個存取條件之至少一個,其中該等存取條件之一係為當執行儲存在該被保護區域裡的程式碼時,該處理器發出該等讀取需求。
  18. 一種控制一積體電路裝置上記憶體存取的方法,該積體電路裝置包括一處理器和記憶體用於儲存可執行的程式碼,該方法包括:決定用於該記憶體的一被保護區域的一讀取保護旗標被設立;偵測該處理器的一記憶體讀取需求;決定該讀取需求係用於該記憶體的該被保護區域裡的一位址;決定該處理器於執行儲存在該記憶體的該被保護區域裡的程式碼時發出該讀取需求;以及允許該讀取需求。
  19. 一種積體電路裝置包括一處理器、非揮發性記憶體、非揮發性記憶體控制邏輯、以及記憶體保護邏輯,其中:該記憶體保護邏輯根據儲存在該非揮發性記憶體的一保護-設定區域裡的保護設定資料而被配置用以控制對該非揮發性記憶體的一可保護區域之存取;該非揮發性記憶體控制邏輯被配置用以避免寫入該保護-設定區域的任何部分,除非該部分係在一被抹除狀態;以及該非揮發性記憶體控制邏輯被配置於只有當該可保護區域係在一被抹除狀態時,允許該保護-設定區域被抹除。
  20. 如申請專利範圍第19項所述之裝置,其中,該非揮發性記憶體控制邏輯及/或記憶體保護邏輯包括數個與該處理器分離的邏輯閘門。
  21. 如申請專利範圍第19或20項所述之裝置,其中,該非揮發性記憶體控制邏輯被設定為使得由用於抹除該保護-設定區域之該非揮發性記憶體控制邏輯所提供的唯一機制係為抹除可保護區域和該保護-設定區域兩者的一個指令。
  22. 如申請專利範圍第19至21項任一項所述之裝置,其中,該保護-設定區域和該可保護區域包括不同記憶體頁或可抹除區塊,以及該非揮發性記憶體控制邏輯被設定用以在抹除任何形成部分該保護-設定區域的頁或區塊之前,抹除所有形成該可保護區域的頁或區塊。
  23. 如申請專利範圍第19至22項任一項所述之裝置,其中該記憶體保護邏輯被設定為使得,當該保護-設定區域係為一被抹除狀態時,對該可保護區域之存取係在一限制等級的有序組中之最高等級。
  24. 如申請專利範圍第19至23項任一項所述之裝置,其中該非揮發性記憶體控制邏輯被配置用以接收一指令,以寫入至該保護-設定區域的一部份的,並且在允許該寫入之前回應用以檢查該部分是在一被抹除狀態。
  25. 如申請專利範圍第24項所述之裝置,其中該非揮發性記憶體係屬於具有一自然被抹除狀態的型態,以及其中該非揮發性記憶體控制邏輯被配置來藉由讀取該部分和決 定其是否係在該自然被抹除狀態而來檢查該部分係在一被抹除狀態。
  26. 如申請專利範圍第19至24項任一項所述之裝置,其中該非揮發性記憶體包括數個區域,該等區域包括數個抹除-狀態旗標,其中該裝置被設定用以當每一區域被抹除時重置一各別的抹除-狀態旗標,其中該非揮發性記憶體控制邏輯被配置用以當一第一寫入操作被執行至每一區域時設立一各別的抹除-狀態旗標,以及其中,在允許一寫入操作至該保護-設定區域的一部份之前,該非揮發性記憶體控制邏輯被配置用以檢查一或多個被抹除狀態旗標。
  27. 如申請專利範圍第19至26項任一項所述之裝置,被配置用以在該記憶體-保護設定區域裡,儲存一或多個值,其定義非揮發性記憶體的該可保護區域及/或定義揮發性記憶體的一被保護區域。
  28. 如申請專利範圍第19至27項任一項所述之裝置,其中該保護設定資料包括一讀取保護旗標用於該非揮發性記憶體的該可保護區域,以及其中該記憶體保護邏輯被設定用以:決定該讀取保護旗標的狀態;偵測該處理器的一記憶體讀取需求;決定是否該讀取需求係用於該記憶體的該被保護區域裡的一個位址;決定是否該處理器於執行儲存在該記憶體的被保護區域裡的程式碼時發出該讀取需求; 假如用於該可保護的區域的該讀取保護旗標被設立,拒絕用於在該可保護區域中之位址的讀取需求,除非符合一或多個存取條件之至少一個,其中該等存取條件之一係為當執行儲存在該可保護區域裡的程式碼時,該處理器發出該等讀取需求。
  29. 一種控制一積體電路裝置上記憶體存取的方法,該積體電路裝置包括一處理器以及非揮發性記憶體,該方法包括:依據儲存在該非揮發性記憶體的一保護-設定區域裡的保護設定資料,來控制對該非揮發性記憶體的一可保護區域的存取;避免寫入該保護-設定區域的任何部分,除非該部分係在一被抹除狀態;以及只有當該可保護區域係在一被抹除狀態時,允許該保護-設定區域被抹除。
TW102122332A 2012-06-27 2013-06-24 積體電路裝置及控制積體電路裝置上記憶體存取的方法 TWI581099B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB1211422.9A GB2503470B (en) 2012-06-27 2012-06-27 Memory protection

Publications (2)

Publication Number Publication Date
TW201409236A true TW201409236A (zh) 2014-03-01
TWI581099B TWI581099B (zh) 2017-05-01

Family

ID=46704312

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102122332A TWI581099B (zh) 2012-06-27 2013-06-24 積體電路裝置及控制積體電路裝置上記憶體存取的方法

Country Status (8)

Country Link
US (2) US9430409B2 (zh)
EP (2) EP2867776B1 (zh)
JP (1) JP6306578B2 (zh)
KR (1) KR102095614B1 (zh)
CN (1) CN104412242B (zh)
GB (3) GB2503470B (zh)
TW (1) TWI581099B (zh)
WO (1) WO2014001803A2 (zh)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140316873A1 (en) * 2013-04-22 2014-10-23 Codecard, Inc. Apparatus, system and methods to issue a prize to a user of a credit account based on user purchase activities
EP2808818B1 (en) * 2013-05-29 2016-07-13 Nxp B.V. Processing system
GB2521607B (en) * 2013-12-23 2016-03-23 Nordic Semiconductor Asa Integrated-Circuit Radio
US20150351999A1 (en) * 2014-01-15 2015-12-10 Getting in the Mood, LLC Heating and vibrating personal massager with accompanying cover
US20160180092A1 (en) * 2014-12-23 2016-06-23 Mcafee, Inc. Portable secure storage
CN104573421B (zh) 2014-12-30 2017-12-22 北京兆易创新科技股份有限公司 一种基于若干分区的mcu芯片信息保护方法和装置
CN104598402B (zh) * 2014-12-30 2017-11-10 北京兆易创新科技股份有限公司 一种闪存控制器和闪存控制器的控制方法
US10540524B2 (en) * 2014-12-31 2020-01-21 Mcafee, Llc Memory access protection using processor transactional memory support
US10157008B2 (en) * 2015-04-29 2018-12-18 Qualcomm Incorporated Systems and methods for optimizing memory power consumption in a heterogeneous system memory
US10983931B2 (en) 2015-04-30 2021-04-20 Microchip Technology Incorporated Central processing unit with enhanced instruction set
GB2539455A (en) 2015-06-16 2016-12-21 Nordic Semiconductor Asa Memory watch unit
WO2017061153A1 (ja) * 2015-10-09 2017-04-13 ソニー株式会社 メモリ、メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法
US20170139844A1 (en) * 2015-11-17 2017-05-18 Silicon Laboratories Inc. Asymmetric memory
JP6742831B2 (ja) * 2016-06-14 2020-08-19 ルネサスエレクトロニクス株式会社 情報処理装置、読み出し制御方法、及びプログラム
US11416421B2 (en) 2016-07-19 2022-08-16 Cypress Semiconductor Corporation Context-based protection system
GB2557305A (en) * 2016-12-05 2018-06-20 Nordic Semiconductor Asa Memory protection logic
US10691803B2 (en) * 2016-12-13 2020-06-23 Amazon Technologies, Inc. Secure execution environment on a server
US10409981B2 (en) 2017-04-21 2019-09-10 International Business Machines Corporation In-process stack memory protection
US10587575B2 (en) * 2017-05-26 2020-03-10 Microsoft Technology Licensing, Llc Subsystem firewalls
US10346345B2 (en) 2017-05-26 2019-07-09 Microsoft Technology Licensing, Llc Core mapping
US10353815B2 (en) 2017-05-26 2019-07-16 Microsoft Technology Licensing, Llc Data security for multiple banks of memory
US10534553B2 (en) 2017-08-30 2020-01-14 Micron Technology, Inc. Memory array accessibility
RU2677366C1 (ru) * 2017-10-27 2019-01-16 Юрий Алексеевич Шашлюк Устройство хранения данных и способ его работы
US10318438B1 (en) * 2017-12-07 2019-06-11 Nuvoton Technology Corporation Secure memory access using memory read restriction
US11132134B2 (en) * 2017-12-21 2021-09-28 Apple Inc. Flexible over-provisioning of storage space within solid-state storage devices (SSDs)
TWI650648B (zh) * 2018-02-09 2019-02-11 慧榮科技股份有限公司 系統晶片及存取系統晶片中記憶體的方法
US11036654B2 (en) * 2018-04-14 2021-06-15 Microsoft Technology Licensing, Llc NOP sled defense
GB201807257D0 (en) 2018-05-02 2018-06-13 Nordic Semiconductor Asa Cryptographic key distribution
GB201810533D0 (en) * 2018-06-27 2018-08-15 Nordic Semiconductor Asa Hardware protection of files in an intergrated-circuit device
FR3087020A1 (fr) * 2018-10-09 2020-04-10 Stmicroelectronics (Grenoble 2) Sas Procede d'acces a une memoire
US11210238B2 (en) * 2018-10-30 2021-12-28 Cypress Semiconductor Corporation Securing data logs in memory devices
JPWO2020095410A1 (ja) * 2018-11-08 2021-09-24 ソニーグループ株式会社 通信装置
US11036887B2 (en) * 2018-12-11 2021-06-15 Micron Technology, Inc. Memory data security
TWI682400B (zh) * 2019-03-04 2020-01-11 新唐科技股份有限公司 半導體裝置與資料保護方法
JP2021111112A (ja) * 2020-01-09 2021-08-02 キヤノン株式会社 画像形成装置、及びその制御方法
CN111625784B (zh) * 2020-05-29 2023-09-12 重庆小雨点小额贷款有限公司 一种应用的反调试方法、相关装置及存储介质
FR3118219B1 (fr) * 2020-12-17 2024-03-15 Stmicroelectronics Grand Ouest Sas Procédé de protection d’un système, par exemple un microcontrôleur, et sytème correspondant
JP7408593B2 (ja) * 2021-03-23 2024-01-05 株式会社東芝 制御装置、情報処理装置、および情報処理システム

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4698750A (en) * 1984-12-27 1987-10-06 Motorola, Inc. Security for integrated circuit microcomputer with EEPROM
JPS6382534A (ja) 1986-09-26 1988-04-13 Matsushita Electric Ind Co Ltd メモリ保護装置
US5001670A (en) 1987-02-06 1991-03-19 Tektronix, Inc. Nonvolatile memory protection
US5469557A (en) * 1993-03-05 1995-11-21 Microchip Technology Incorporated Code protection in microcontroller with EEPROM fuses
US5564030A (en) * 1994-02-08 1996-10-08 Meridian Semiconductor, Inc. Circuit and method for detecting segment limit errors for code fetches
US5737760A (en) * 1995-10-06 1998-04-07 Motorola Inc. Microcontroller with security logic circuit which prevents reading of internal memory by external program
JP3489708B2 (ja) * 1996-10-23 2004-01-26 シャープ株式会社 不揮発性半導体記憶装置
JPH10228421A (ja) * 1997-02-14 1998-08-25 Nec Ic Microcomput Syst Ltd メモリアクセス制御回路
JP4000654B2 (ja) * 1997-02-27 2007-10-31 セイコーエプソン株式会社 半導体装置及び電子機器
US6446184B2 (en) * 1998-04-28 2002-09-03 International Business Machines Corporation Address re-mapping for memory module using presence detect data
JP2001051904A (ja) * 1999-08-11 2001-02-23 Hitachi Ltd 不揮発性半導体メモリを用いた外部記憶装置
US6895508B1 (en) 2000-09-07 2005-05-17 International Business Machines Corporation Stack memory protection
US6952778B1 (en) 2000-10-26 2005-10-04 Cypress Semiconductor Corporation Protecting access to microcontroller memory blocks
US6615329B2 (en) * 2001-07-11 2003-09-02 Intel Corporation Memory access control system, apparatus, and method
US7093097B2 (en) * 2001-11-27 2006-08-15 International Business Machines Corporation Dynamic self-tuning memory management method and system
US6883075B2 (en) 2002-01-17 2005-04-19 Silicon Storage Technology, Inc. Microcontroller having embedded non-volatile memory with read protection
JP4347582B2 (ja) * 2003-02-04 2009-10-21 パナソニック株式会社 情報処理装置
US7739516B2 (en) * 2004-03-05 2010-06-15 Microsoft Corporation Import address table verification
JP4563707B2 (ja) * 2004-03-25 2010-10-13 ルネサスエレクトロニクス株式会社 メモリ保護装置
US7210014B2 (en) 2004-05-27 2007-04-24 Microsoft Corporation Alternative methods in memory protection
US7343496B1 (en) 2004-08-13 2008-03-11 Zilog, Inc. Secure transaction microcontroller with secure boot loader
JPWO2006040798A1 (ja) * 2004-10-08 2008-05-15 株式会社ルネサステクノロジ 半導体集積回路装置および電子システム
US7516902B2 (en) 2004-11-19 2009-04-14 Proton World International N.V. Protection of a microcontroller
US7673345B2 (en) 2005-03-31 2010-03-02 Intel Corporation Providing extended memory protection
JP4584044B2 (ja) * 2005-06-20 2010-11-17 ルネサスエレクトロニクス株式会社 半導体装置
JP4818793B2 (ja) 2006-04-20 2011-11-16 ルネサスエレクトロニクス株式会社 マイクロコンピュータ及びメモリアクセスの制御方法
US8438365B2 (en) * 2006-10-06 2013-05-07 Calos Fund Limited Liability Company Efficient data loading in a data-parallel processor
DE602007012519D1 (de) * 2007-04-05 2011-03-31 St Microelectronics Res & Dev Integrierte Schaltung mit beschränktem Datenzugang
US8051263B2 (en) 2007-05-04 2011-11-01 Atmel Corporation Configurable memory protection
US7917716B2 (en) 2007-08-31 2011-03-29 Standard Microsystems Corporation Memory protection for embedded controllers
US7836226B2 (en) * 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US7895404B2 (en) * 2008-02-14 2011-02-22 Atmel Rousset S.A.S. Access rights on a memory map
US8001357B2 (en) * 2008-04-30 2011-08-16 Microsoft Corporation Providing a single drive letter user experience and regional based access control with respect to a storage device
US20100106926A1 (en) * 2008-10-25 2010-04-29 International Business Machines Corporation Second failure data capture problem determination using user selective memory protection to trace application failures
WO2011074168A1 (ja) * 2009-12-14 2011-06-23 パナソニック株式会社 情報処理装置
JP5793712B2 (ja) * 2010-03-01 2015-10-14 パナソニックIpマネジメント株式会社 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム

Also Published As

Publication number Publication date
GB2503583B (en) 2015-06-17
JP6306578B2 (ja) 2018-04-04
WO2014001803A2 (en) 2014-01-03
US20160299720A1 (en) 2016-10-13
EP2867776B1 (en) 2020-04-29
CN104412242A (zh) 2015-03-11
GB201405811D0 (en) 2014-05-14
GB2503470B (en) 2014-08-13
GB2513727A (en) 2014-11-05
GB2503583A (en) 2014-01-01
US9430409B2 (en) 2016-08-30
KR20150033695A (ko) 2015-04-01
GB2503470A9 (en) 2014-01-15
EP3702923B1 (en) 2023-06-21
GB201211422D0 (en) 2012-08-08
TWI581099B (zh) 2017-05-01
US20140006692A1 (en) 2014-01-02
GB2503470A (en) 2014-01-01
CN104412242B (zh) 2018-01-19
KR102095614B1 (ko) 2020-04-01
GB2513727B (en) 2015-06-24
JP2015525916A (ja) 2015-09-07
WO2014001803A3 (en) 2014-03-20
EP2867776A2 (en) 2015-05-06
GB201312526D0 (en) 2013-08-28
EP3702923A1 (en) 2020-09-02

Similar Documents

Publication Publication Date Title
TWI581099B (zh) 積體電路裝置及控制積體電路裝置上記憶體存取的方法
US9836609B2 (en) Event-based apparatus and method for securing bios in a trusted computing system during execution
US6976136B2 (en) Flash memory protection scheme for secured shared BIOS implementation in personal computers with an embedded controller
EP2874092B1 (en) Recurrent BIOS verification with embedded encrypted hash
US9367689B2 (en) Apparatus and method for securing BIOS in a trusted computing system
GB2557305A (en) Memory protection logic
TW201525870A (zh) 可更新積體電路無線電
US10049217B2 (en) Event-based apparatus and method for securing bios in a trusted computing system during execution
KR20190085387A (ko) 반도체 장치 및 반도체 장치의 동작 방법
US10592663B2 (en) Technologies for USB controller state integrity protection
US10055588B2 (en) Event-based apparatus and method for securing BIOS in a trusted computing system during execution
US10095868B2 (en) Event-based apparatus and method for securing bios in a trusted computing system during execution
WO2019081057A1 (en) RULE MEMORY
CN110569205A (zh) 安全系统单芯片及其操作方法
CN116635855A (zh) 基于执行上下文管理可执行代码对数据内存的访问的装置和方法