TWI752956B - 半導體裝置及其記憶體存取控制方法 - Google Patents

半導體裝置及其記憶體存取控制方法 Download PDF

Info

Publication number
TWI752956B
TWI752956B TW106115531A TW106115531A TWI752956B TW I752956 B TWI752956 B TW I752956B TW 106115531 A TW106115531 A TW 106115531A TW 106115531 A TW106115531 A TW 106115531A TW I752956 B TWI752956 B TW I752956B
Authority
TW
Taiwan
Prior art keywords
arithmetic unit
access
memory
program
semiconductor device
Prior art date
Application number
TW106115531A
Other languages
English (en)
Other versions
TW201804331A (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
Priority claimed from JP2017031933A external-priority patent/JP6758222B2/ja
Application filed by 日商瑞薩電子股份有限公司 filed Critical 日商瑞薩電子股份有限公司
Publication of TW201804331A publication Critical patent/TW201804331A/zh
Application granted granted Critical
Publication of TWI752956B publication Critical patent/TWI752956B/zh

Links

Images

Classifications

    • 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/0637Permissions
    • 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
    • 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/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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register

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)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)

Abstract

存在有對於由主要算術單元中執行之程式所使用的次要算術單元存取共用記憶體的記憶體保護無法在相關領域的半導體裝置中執行的問題。根據一實施方式,半導體裝置包括次要算術單元及共用記憶體,次要算術單元係配置以執行由主要算術單元所執行之程式之一部分的程序,且共用記憶體係由主要算術單元及次要算術單元共用,其中次要算術單元包括記憶體保護單元,記憶體保護單元係配置成基於提供自主要算術單元的存取許可範圍位址值,以允許或禁止存取共用記憶體,對於共用記憶體的存取係由次要算術單元所執行之程序引起的存取。

Description

半導體裝置及其記憶體存取控制方法
本揭露內容涉及半導體裝置及其記憶體存取控制方法。例如,本揭露內容涉及包括主要算術單元、次要算術單元、及共用記憶體的半導體裝置,主要算術單元執行程式,次要算術單元執行程式之一部分的程序,且共用記憶體係由主要算術單元及次要算術單元共用,並且涉及其記憶體存取控制方法。
在基於程式而執行各種程序的半導體裝置之中,會有複數程式在一個半導體裝置上執行的情況。如此之半導體裝置需要一種記憶體保護機制以防止複數程式所使用之記憶體空間的干擾(例如:防止複數程式使用記憶體空間中的相同區域)。因此,日本公開專利公報第2014-48849號揭露記憶體保護機制的一個範例。
揭露在日本公開專利公報第2014-48849號的半導體裝置係一種安全控制系統,其中一驅動控制單元執行受控裝置的驅動控制,及一安全控制單元執行與驅動控制有關的安全控制,兩者係設置在一處理器上,且其中:預定儲存區域係預先分配作為驅動控制單元及安全控制單元使用的資料儲存區域;且安全控制系統包括:記憶體保護資訊儲存機構,其中分配給安全控制單元的儲存區域係標記做為驅動控制單元無法存取的儲存區域;及記憶體保護機構,當驅動控制單元執行記憶體存取時,參照標記在記憶體保護資訊儲存機構中的存取目的地及登錄資訊,並且當存取目的地係位於驅動控制單元無法存取的儲存區域時,防止驅動控制單元存取分配給安全控制單元的儲存區域。
本案發明人發現到下列問題。除了包含執行各種程序的主要算術單元之外,半導體裝置還包含執行由主要算術單元所執行之程式之一部分的特定程序的次要算術單元,以改善其處理速度。此外,半導體裝置(其包括主要算術單元及次要算術單元)還包括共用記憶體,其係由主要算術單元及次要算術單元共用。在如此之半導體裝置中,次要算術單元直接存取共用記憶體,以提高處理速度。應注意到,日本公開專利公報第2014-48849號所揭露之技術可執行發生在主要算術單元之中的共用記憶體的記憶體保護。然而,在次要算術單元直接存取共用記憶體(其亦被主要算術單元使用)的情況下,會有日本公開專利公報第2014-48849號所揭露之技術無法執行針對次要算術單元存取共用記憶體之記憶體保護的問題。
從以下說明書中的敘述及附圖,本發明的其他目的及新穎特徵將變得更為清楚。
根據一實施方式,半導體裝置包括:次要算術單元,其係配置以執行由主要算術單元所執行之程式之一部分的程序;及共用記憶體,其係由主要算術單元及次要算術單元共用,其中次要算術單元包括記憶體保護單元,其係配置成基於提供自主要算術單元的存取許可範圍位址值而允許或禁止對於共用記憶體的存取,對於共用記憶體的存取係由次要算術單元所執行之程序所引起之存取動作。
根據一實施方式,半導體裝置及其記憶體存取控制方法可執行次要算術單元對於共用記憶體之存取的記憶體保護。
為了清楚說明,可能部分省略及適當簡化以下敘述及圖式。此外,相同符號係指示所有圖式中的相同構件,並且視需要而省略重複的說明。第一實施方式
圖1係根據第一實施方式之半導體裝置1的方塊圖。如圖1所示,根據第一實施方式之半導體裝置1包括:主要算術單元(例如CPU 10)、共用記憶體21、及次要算術單元(例如硬體IP 22及23)。在本說明書中,次要算術單元(硬體IP)是指一種算術裝置,其包括暫存器(用以在其內部儲存處理指令),並基於設定在暫存器中之處理指令來執行處理。處理指令可為預先定義之以數字表示的值,以表示特定程序。注意到暫存器中的值係例如由主要算術單元所設定。此外,雖然圖1顯示了包括具有相同配置之複數硬體IP作為次要算術單元的半導體裝置範例,但這些硬體IP可具有彼此不同的配置。
CPU 10執行程式。在半導體裝置1中,當CPU 10執行程式時,發生對硬體IP 22及23與共用記憶體21的存取。CPU 10包括執行該程式的算術單元11。半導體裝置1可包括記憶體控制器、內部記憶體、輸入/輸出介面電路等等,但圖1之中將其省略。此外,這些構件可包括在CPU 10之中。在圖1所示之範例中,應用程式APPa及APPb與操作系統(以下稱為「OS」(operating system))係在算術單元11之中執行。
OS及應用程式APPa及APPb包括下列程式的混合:在功能安全性或保全性方面,已通過高階驗證且受充分保護之具有高可靠度的程式(以下稱為「通過可靠度驗證程式」(reliability-verified program));及在功能安全性或保全性方面,只通過低階驗證且未受充分保護之程式(以下稱為「未通過可靠度驗證程式」(reliability-unverified program))。程式上的資訊(無論是在通過可靠度驗證程式上或在未通過可靠度驗證程式上)皆預先包括在程式之中。決定之準則係已依據例如國際標準化組織(International Standards Organization)中所指定之準則而決定。應注意到,雖然以假設半導體裝置僅包括一個OS的方式來說明實施方式,但實際的實施方式並不受限於此方式。亦即,OS的數目可多於一個。
通過可靠度驗證程式的例子包括汽車中的自動駕駛應用程式。同時,未通過可靠度驗證程式的例子包括動態影像錄放應用程式。當通過可靠度驗證程式及未通過可靠度驗證程式在相同CPU之中執行時,必須防止通過可靠度驗證程式及未通過可靠度驗證程式的資料彼此干擾(亦即,防止通過可靠度驗證程式及未通過可靠度驗證程式使用對方的資料)。應注意到,雖然以上舉例汽車的例子,但實際應用並不受限於此方式。
共用記憶體21係例如為揮發性記憶體(如DRAM(動態隨機存取記憶體,Dynamic Random Access Memory))或非揮發性記憶體(如快閃記憶體)。共用記憶體21係由CPU 10及硬體IP 22及23進行存取。應注意到,共用記憶體21可為半導體裝置1所使用的任何記憶體,並且可設置在一個半導體晶片上,而該半導體晶片與設置了CPU 10及硬體IP 22及23之晶片不同。
硬體IP 22及23之每一者係一硬體構件,其執行由CPU 10所執行之程式之一部分的程序。例如,硬體IP 22及23之每一者僅執行(或主要執行)一特定程序,例如:對於編碼影像之解碼程序、影像轉換程序(影像辨識程序中所執行之一程序)、或特徵值抽取程序。在圖1中,硬體IP 22及23具有彼此相同之配置。因此,利用硬體IP 22的配置作為範例來說明其配置。
因此,圖2顯示根據第一實施方式之硬體IP 22的方塊圖。如圖2之中所示,硬體IP 22包括資訊處理單元31、一組暫存器32(以下稱為「暫存器群組」)、記憶體存取指令產生單元33、及記憶體保護單元34。
資訊處理單元31根據提供自CPU 10的操作指令來執行特定程序。暫存器群組32包括複數暫存器。在圖2所示之範例中,提供自CPU 10的處理指令係儲存在複數暫存器其中一者。該處理指令係用以指示硬體IP 22有關其應執行何種操作。此外,提供自CPU 10的存取許可範圍位址值係儲存在複數暫存器其中二者。此外,存取許可範圍位址值包括存取許可起始位址及存取許可最後位址,存取許可起始位址表示存取許可範圍的起始位址,且存取許可最後位址表示存取許可範圍的最後位址。此外,待由資訊處理單元31進行處理之資料、用於資料處理之操作參數、及其類似者亦皆儲存於暫存器(其係包括在暫存器群組32之中)之內。應注意到,硬體IP 22及23之每一者可利用暫存器儲存存取許可起始位址及存取許可區域大小來指定存取許可範圍,以代替使用暫存器儲存存取許可起始位址及存取許可最後位址。
當資訊處理單元31之中發生存取要求時,記憶體存取指令產生單元33產生對應至存取要求之共用記憶體21中的位址,並且將存取要求及所產生之附帶存取位址輸出。例如,當資訊處理單元31之中發生對於儲存在共用記憶體21內之影像中的特定座標處的像素值之存取要求時,記憶體存取指令產生單元33產生共用記憶體21中之一位址,該位址儲存資訊處理單元31利用該座標所指定之像素。
記憶體保護單元34將發布自資訊處理單元31的存取要求提供至共用記憶體21,以及將對於位於由存取許可範圍位址值所指定之存取許可範圍內之位址的存取要求提供至共用記憶體21,並且阻止(即攔截)對於位於由存取許可範圍位址值所指定之存取許可範圍外之位址的存取要求。注意到在硬體IP 22之中,記憶體保護單元34所接收之存取要求係輸出自記憶體存取指令產生單元33。
此外,當記憶體保護單元34偵測到對於由存取許可範圍位址值所指定之存取許可範圍外之位址的存取要求時,其輸出錯誤通知ERR1至CPU 10。然後,為了回應錯誤通知ERR1,CPU 10執行用以停止硬體IP 22之操作的程序及用以停止使用硬體IP 22之程式的程序其中至少一者,以作為中斷程序。
如以上所述,在根據第一實施方式之半導體裝置1中,基於由CPU 10所設定之存取許可範圍位址值,硬體IP 22決定從資訊處理單元31發布至共用記憶體21的存取要求是否應確實提供至共用記憶體21。因此,圖3顯示用以說明根據第一實施方式之半導體裝置1中之記憶體配置與存取許可範圍之間關係的示意圖。
在圖3及4之中,表示使用半導體裝置1中之記憶體及暫存器的權限之記憶體空間係顯示成記憶體配置的形式。在根據第一實施方式之半導體裝置1中,CPU 10可存取包括系統區域的整個記憶體空間,其中系統區域為需要最高可靠度的記憶體空間,以使CPU 10可執行通過可靠度驗證程式(例如:功能安全的應用程式)及未通過可靠度驗證程式(例如:功能不安全的應用程式)。同時,關於硬體IP,當處理指令係功能不安全的應用程式的指令時,只允許硬體IP存取從儲存在暫存器群組32中之存取許可起始位址到同樣儲存在暫存器群組32中之存取許可最後位址的記憶體空間(功能不安全的應用程式被允許的存取範圍),如圖3所示。
同樣地,當處理指令係功能安全的應用程式的指令時,只允許硬體IP存取從儲存在暫存器群組32中之存取許可起始位址到同樣儲存在暫存器群組32中之存取許可最後位址的記憶體空間(功能安全的應用程式被允許的存取範圍),如圖4所示。
接著,將說明根據第一實施方式之半導體裝置1的操作。在以下說明中,半導體裝置1的操作分為硬體IP啟動操作、硬體IP暫存器設定操作、硬體IP記憶體存取操作、及當記憶體存取違規發生時的操作,並且將逐一說明這些操作。
首先,圖5顯示用以說明根據第一實施方式之硬體IP的啟動順序及暫存器設定順序的順序示意圖。在圖5所示之範例的半導體裝置1中,在應用程式啟動之後,發生使用硬體IP的要求。然後,由於發生對於硬體IP的使用要求,因此應用程式輸出(亦即,應用程式令CPU輸出)對於硬體IP 22的暫存器設定指令。
應用程式將暫存器設定指令輸出至功能安全的應用程式(圖5中的OS),暫存器設定指令包括作為硬體IP之一操作參數的存取許可範圍位址值。在接收來自應用程式的暫存器設定指令後,OS將暫存器設定指令輸出至硬體IP。
然後,硬體IP將包括在暫存器設定指令中之操作參數儲存至暫存器群組32內。此外,基於包括在儲存於暫存器群組32內之操作參數中的存取許可範圍位址值,硬體IP設定記憶體保護單元34中的存取許可範圍。
然後,應用程式產生有關硬體IP之特定程序的指令並將此特定程序提供至硬體IP作為處理指令。硬體IP啟動一程序,以回應該處理指令。
如以上所述,在啟動硬體IP前,CPU 10執行該程序以將存取許可範圍位址值儲存至硬體IP的暫存器群組32內。
接著,圖6顯示用以說明根據第一實施方式之硬體IP之記憶體存取順序的第一範例的順序示意圖。如圖6所示,在根據第一實施方式之硬體IP中,當由於資訊處理單元31中的程序而發生記憶體存取時,資訊處理單元31輸出記憶體存取要求至記憶體存取指令產生單元33,且記憶體存取指令產生單元33產生存取位址。然後,硬體IP利用記憶體存取指令產生單元33中所產生的存取位址來存取共用記憶體21。應注意到,當記憶體存取指令產生單元33中所產生的存取位址位於存取許可範圍內時,硬體IP輸出存取要求至共用記憶體21。另一方面,當記憶體存取指令產生單元33中所產生的存取位址位於存取許可範圍外時,硬體IP阻止該存取要求並發送錯誤通知ERR1至CPU 10。
此外,圖7係用以說明根據第一實施方式之硬體IP之記憶體存取順序的第二範例的順序示意圖。如圖7所示,在硬體IP之記憶體存取順序的第二範例中,當記憶體存取指令產生單元33所產生之存取位址位於存取許可範圍外時,記憶體保護單元34所執行的操作與第一範例中的操作有所不同。在第二範例中,當記憶體存取指令產生單元33所產生之存取位址位於存取許可範圍外時,記憶體保護單元34執行將提供自記憶體存取指令產生單元33的存取位址捨入(round)至位於存取許可範圍內的位址之程序,並接著將該捨入之存取要求輸出至共用記憶體21。此外,甚至在第二範例之中,當發生記憶體存取違規發生時,記憶體保護單元34發送錯誤通知ERR1至CPU 10。
如硬體IP之記憶體存取順序的第一及第二範例所示般,根據本說明書將有各種可想像到的阻止存取要求的方法,作為當記憶體存取違規發生時由記憶體保護單元34所執行之程序。
接著,圖8係用以說明半導體裝置之程序順序的順序示意圖,其係根據第一實施方式之硬體IP中發生記憶體存取違規時所執行之程序。如圖8所示,在根據第一實施方式之半導體裝置1中,當錯誤通知ERR1自硬體IP發送至CPU 10時,藉由執行針對錯誤通知ERR1之中斷程序P1至P3其中至少一者,以停止引起錯誤通知ERR1之程序。
在中斷程序P1中,OS發布(亦即,OS令CPU發布)重置指令(或初始化指令)至硬體IP。硬體IP執行初始化程序,以基於此重置指令而將資訊處理單元31、暫存器群組32、記憶體存取指令產生單元33、及記憶體保護單元34復原至初始化狀態。
在中斷程序P2中,OS發布程序停止指令至正在使用硬體IP的應用程式。在接收程序停止指令之後,不論當時其處理狀態如何,應用程式執行結束程序,從而停止該程序。
在中斷程序P3中,OS結束與正在使用硬體IP的應用程式有關之工作,不論當時其處理狀態如何。在圖8所示之範例中,在中斷程序P1至P3結束的時刻,OS結束所執行之中斷程序,以回應錯誤通知ERR1。
如同以上說明,在根據第一實施方式之半導體裝置1中,設置在硬體IP中的記憶體保護單元34僅將對於位址位於記憶體存取範圍(其係提供自CPU 10)之內的存取要求輸出至共用記憶體21。因此,在根據第一實施方式之半導體裝置1中,CPU 10可限制硬體IP的存取範圍。此外,在根據第一實施方式之半導體裝置1中,藉由限制硬體IP的存取範圍,能防止由於運作在CPU 10上的應用程式失常或由於非法侵入(hack)或其類似者而使硬體IP篡改(破壞)儲存在其他應用程式所使用之區域中的資料。
此外,根據第一實施方式之半導體裝置1可藉由令硬體IP處理由CPU 10所執行之程式之一部分的程序來達到高處理效能。此外,藉由在硬體IP中設有如以上所述之記憶體保護機制,可使根據第一實施方式之半導體裝置1達到高處理效能及高可靠度。第二實施方式
在第二實施方式中,將說明硬體IP 22a,其係硬體IP 22之另一實施方式。應注意到,在以下的第二實施方式說明中,與第一實施方式相同的符號指示為與第一實施方式相同的構件/結構,故將省略其說明。
圖9顯示根據第二實施方式之硬體IP 22a的方塊圖。如圖9所示,根據第二實施方式之硬體IP 22a係藉由在根據第一實施方式之硬體IP 22中加入內部記憶體41及重置控制電路42而獲得。
內部記憶體41係記憶體空間不定義在CPU 10所使用之記憶體空間之中的記憶體,且因此其係只有硬體IP 22a能使用的記憶體。內部記憶體41例如為SRAM(靜態隨機存取記憶體,Static Random Access Memory)。
重置控制電路42執行用以初始化至少暫存器群組32、資訊處理單元31、記憶體保護單元34、內部記憶體41、及共用記憶體21的初始化程序。此外,重置控制電路42至少在硬體IP 22a啟動或其操作結束時執行初始化程序。在圖9所示之範例中,當發布自CPU 10的處理指令被儲存在處理指令儲存暫存器時,重置控制電路42認為啟動指令WKU已發布。因此,重置控制電路42基於此啟動指令WKU,而在啟動過程執行初始化程序。此外,基於輸出自資訊處理單元31的結束通知信號END或發布自CPU 10的停止指令STP,重置控制電路42在其操作結束時執行初始化程序。此外,在圖9所示之範例中,重置控制電路42利用初始化信號RST1來初始化內部記憶體41、利用初始化信號RST2來初始化資訊處理單元31、利用初始化信號RST3來初始化記憶體存取指令產生單元33、利用初始化信號RST4來初始化記憶體保護單元34、及利用初始化信號RST5來初始化暫存器群組32。此外,當重置控制電路42進行初始化共用記憶體21時,重置控制電路42參照儲存在暫存器群組32中的存取許可範圍位址值。
接著,將說明根據第二實施方式之硬體IP 22a的操作。因此,圖10顯示用以說明根據第二實施方式之硬體IP之啟動順序的順序示意圖。
如圖10所示,CPU 10提供暫存器設定指令至硬體IP 22a。在接收暫存器設定指令之後,硬體IP 22a將暫存器設定值儲存至暫存器群組32內。此外,基於存取許可範圍位址值(其係包括在儲存於暫存器群組32內之暫存器設定值之中),硬體IP 22a設定(或定義)記憶體保護單元34中的存取許可範圍。之後,CPU 10提供處理指令至硬體IP。
為回應來自CPU 10之處理指令的通知,硬體IP 22a首先執行內部重置程序。在此內部重置程序中,硬體IP 22a至少將內部記憶體41及資訊處理單元31重置(亦即,初始化)。之後,硬體IP 22a的重置控制電路42執行外部重置程序,其係用以執行對於共用記憶體21中之存取許可範圍(其係由儲存在暫存器群組32內之存取許可範圍位址值所指定)的初始化程序。在完成該外部重置程序後,硬體IP 22a根據處理指令而啟動一程序。
接著,圖11係用以說明根據第二實施方式之硬體IP之結束順序的順序示意圖。在圖11中,顯示硬體IP 22a在完成預定程序之後所執行之結束順序。然而,除了基於停止指令STP而執行操作完成程序及後續程序以外,基於發布自CPU 10的停止指令STP所執行之結束順序與上述之結束順序實質上相同。
如圖11所示,當資訊處理單元31中的程序完成時,硬體IP 22a啟動操作完成程序。在此操作完成程序中,硬體IP 22a的重置控制電路42先執行外部重置程序,其係用以執行對於共用記憶體21中之存取許可範圍(其係由儲存在暫存器群組32內之存取許可範圍位址值所指定)的初始化程序。之後,硬體IP 22a執行內部重置程序,其係用以重置至少內部記憶體41、資訊處理單元31、及暫存器群組32。然後,當該內部重置程序完成時,硬體IP 22a將程序完成通知輸出至CPU 10,並改變其狀態至等待狀態(或待命狀態),硬體IP 22a於此狀態中等待下一操作指令。
在以上說明中,說明了一個範例,其中暫存器群組32及對應至共用記憶體21中之存取許可範圍的整個區域係於結束順序中之重置程序中進行初始化。然而,仍有當使用硬體IP 22a的程序執行時,其處理結果需要保留(亦即,保持不被刪除)的情況,使得在硬體IP 22a的操作結束後,應用程式仍可參照硬體IP 22a的處理結果。在如此情況下,硬體IP 22a必須儲存(或保留)處理結果,處理結果應被保存在不被重置控制電路42所執行之初始化程序進行初始化的區域之中。因此,將參考圖12說明由重置控制電路42所執行之外部重置程序的另一範例。
圖12係用以說明根據第二實施方式之硬體IP中所設定(或定義)之存取許可範圍的記憶體配置的示意圖。在圖12所示之範例中,由存取許可起始位址及存取許可最後位址所指定之存取許可範圍分為:於硬體IP 22之結束順序期間不進行重置的區域,及於該結束順序期間進行重置的區域。舉例而言,硬體IP 22a儲存應被保留在於結束順序期間不進行重置的區域中的資訊。在圖12所示之範例中,操作完成位址儲存區域、處理結果儲存區域、及存取記錄儲存區域係定義(亦即定址)在於結束順序期間不進行重置的區域中。此外,在結束順序的外部重置程序之中,重置控制電路42僅將應於結束順序期間進行重置的區域進行初始化。於完成之外部重置程序期間不進行重置的區域係例如指定為儲存在暫存器群組32內之暫存器設定值其中一者。對於暫存器群組32而言,藉由定義(亦即將暫存器群組32劃分如下)於結束順序期間不進行重置的區域及於結束順序期間進行重置的區域,亦能防止處理結果保持不被重置控制電路42所執行之初始化程序進行初始化。此外,暫存器群組32中應被保留的處理結果可儲存在位於共用記憶體21的存取許可範圍內且不進行重置的區域中。
在一些情況下,複數應用程式使用硬體IP。在這樣的情況下,會有例如以下問題:當先前程序所使用之暫存器設定值或處理結果仍留在硬體IP時,後來使用硬體IP的應用程式可能因為存在這些餘留資訊而失常,或者可能藉著利用這些餘留資訊作為線索而在應用程式之間進行非法侵入。
然而,在根據第二實施方式之硬體IP 22a中,當硬體IP 22a啟動時及當其操作結束時,使用過的資訊將被初始化(亦即被刪除)。以此方式,包括根據第二實施方式之硬體IP 22a的半導體裝置可防止由於應用程式之間的資料干擾所引起的問題,並且降低非法侵入的可能性。
具體而言,設置在根據第二實施方式之硬體IP 22a之中的內部記憶體41係未定義在CPU 10所認定的記憶體空間中的記憶體空間。由於此內部記憶體41未被CPU 10所認定,因此在一般情況下無法重置內部記憶體41。然而,在根據第二實施方式之硬體IP 22a中,可將上述之內部記憶體41初始化。因此,可防止由於資訊餘留在內部記憶體41內所引起的問題。第三實施方式
在第三實施方式中,將說明半導體裝置2,其係根據第一實施方式之半導體裝置1的另一實施方式。應注意到,在以下第三實施方式的說明中,與第一實施方式相同的符號指示為與第一實施方式相同的構件/結構,故將省略其說明。
圖13顯示根據第三實施方式之半導體裝置2的方塊圖。如圖13所示,根據第三實施方式之半導體裝置2係藉由在根據第一實施方式之半導體裝置1中加入記憶體管理單元51而獲得。記憶體管理單元51對於由CPU 10所執行之程式的存取範圍進行控制(亦即改變)。
圖14係用以說明根據第三實施方式之半導體裝置2中之記憶體配置與存取許可範圍之間關係範例的示意圖。如圖14所示,在根據第三實施方式之半導體裝置2中,對於CPU 10所執行的多個程式之中,記憶體管理單元51允許功能安全的應用程式存取整個記憶體空間。同時,對於CPU 10所執行的多個程式之中,記憶體管理單元51可禁止功能不安全的應用程式存取位於記憶體空間之中分配給功能安全的應用程式的區域。
如以上說明,在根據第三實施方式之半導體裝置2中,記憶體管理單元51可設定(亦即定義)各個應用程式的存取許可範圍。相較於根據第一實施方式之半導體裝置1,藉由防止應用程式之間的干擾,根據第三實施方式之半導體裝置2可改善其可靠度。第四實施方式
在第四實施方式中,將說明硬體IP 22b,其係根據第一實施方式之硬體IP 22的另一實施方式。應注意到,根據第四實施方式之半導體裝置的以下說明係基於假設該半導體裝置是使用硬體IP 22b來取代根據第三實施方式之半導體裝置2之硬體IP 22而獲得。然而,硬體IP 22b甚至可在半導體裝置不包括記憶體管理單元51的情況下使用。
圖15顯示根據第四實施方式之硬體IP 22b的方塊圖。如圖15所示,硬體IP 22b係藉由在根據第一實施方式之硬體IP 22中加入操作參數讀取單元61而獲得。操作參數讀取單元61讀取儲存在參數設定區域中的操作參數,該參數設定區域係設定(定義)在共用記憶體21內之存取許可範圍內。此外,基於提供自操作參數讀取單元61的操作參數,根據第四實施方式之記憶體存取指令產生單元33產生共用記憶體的存取位址。
在根據第四實施方式之半導體裝置中,硬體IP 22b被允許存取由CPU 10之應用程式所指示的各個單元程序的不同記憶體範圍,並且使用被允許的記憶體範圍。此外,當硬體IP 22b執行由CPU 10之應用程式所指示的程序而使用工作記憶體時,工作記憶體係由儲存在共用記憶體21中的操作參數所指定。
因此,圖16係用以說明根據第四實施方式之半導體裝置中之記憶體配置與存取許可範圍之間關係的示意圖。在圖16所示之範例中,硬體IP 22b係用以錄放動態影像。在此動態影像錄放程序中,必須基於逐框方式(frame-by-frame)來進行影像的解碼,且硬體IP 22b執行此解碼程序。此外,在圖16所示之範例中,硬體IP 22b係由應用程式APPa所使用。此外,在圖16所示之範例中,硬體IP 22b藉由使用框0程序的存取許可範圍(由記憶體管理單元51所設定之應用程式APPa的存取許可範圍)來執行解碼程序。
如圖16所示,硬體IP 22b所使用之存取許可範圍係設定在硬體IP 22b之暫存器群組32中的存取許可範圍。亦即,儲存在硬體IP 22b之暫存器群組32中的存取許可範圍位址值具有允許使用記憶體管理單元51中之硬體IP 22b的程式所使用之記憶體管理區域內的位址值。
此外,在根據第四實施方式之半導體裝置中,工作記憶體0的起始位址及工作記憶體1的起始位址係儲存在硬體IP 22b的存取許可範圍內。位於存取許可範圍內的位址係由應用程式APPa設定給這些工作記憶體的起始位址。此外,藉由利用操作參數讀取單元61,硬體IP 22b讀取硬體IP 22b的各個單元程序之工作記憶體的起始位址,並且使用位於存取許可範圍內的位址作為工作記憶體的位址。
如以上說明般,在根據第四實施方式之半導體裝置中,硬體IP 22b所使用之共用記憶體21中的工作記憶體可由應用程式APPa任意設定。然而,由於工作記憶體的起始位址係設定在共用記憶體21之中,操作參數讀取單元61可能由於共用記憶體21失效或應用程式APPa失常而讀取到錯誤位址。此外,當此錯誤位址位於由MMU所設定之存取許可範圍內時,會有允許被存取之記憶體範圍發生在不同的框(frame)時可能被篡改(亦即被破壞)的風險。即使在如此之情況下,在根據第四實施方式之半導體裝置中,由於記憶體保護單元34,使得存取動作在針對各個框所設定的存取許可範圍外執行,因而防止不同的框所使用之記憶體範圍被篡改。以此方式,根據第四實施方式之半導體裝置可防止由於運作在CPU 10上之應用程式失常、非法侵入、或其類似者而引起的硬體IP 22b篡改儲存在用於不同的框之記憶體區域中的資料,同時提供硬體IP 22b所使用之共用記憶體21中之工作記憶體配置的高靈活性。
此外,在根據第四實施方式之半導體裝置中,在由記憶體管理單元51所設定、且允許發生在使用硬體IP 22b之程式中的存取動作之記憶體管理區域內,更進一步設定硬體IP 22b的存取許可範圍。以此方式,能防止使用硬體IP 22b之程式或使用硬體IP 22b之程式所使用的另一硬體IP篡改共用記憶體21內的資訊。
雖然已就數個實施方式來敘述本發明,惟本領域中具有通常知識者將瞭解到本發明可用隨附申請專利範圍之精神及範圍內的各種修改來加以實施、以及本發明不限於上述之範例。
此外,申請專利範圍並不受以上所述之實施方式限制。
再者,應瞭解本案申請人的意圖係欲包含所有請求元件的均等者(即使在後來的申請過程中有所修正)。
本領域中具有通常知識者可依需要而將第一及第二實施方式進行組合。
例如,雖然利用功能安全的應用程式及功能不安全的應用程式提出以上說明,惟說明之中的功能安全的應用程式及功能不安全的應用程式可分別由主機端OS及客戶端OS取代。
1‧‧‧半導體裝置2‧‧‧半導體裝置10‧‧‧CPU11‧‧‧算術單元21‧‧‧共用記憶體22‧‧‧硬體IP22a‧‧‧硬體IP22b‧‧‧硬體IP23‧‧‧硬體IP31‧‧‧資訊處理單元32‧‧‧暫存器群組33‧‧‧記憶體存取指令產生單元34‧‧‧記憶體保護單元41‧‧‧內部記憶體42‧‧‧重置控制電路51‧‧‧記憶體管理單元61‧‧‧操作參數讀取單元P1‧‧‧中斷程序P2‧‧‧中斷程序P3‧‧‧中斷程序
從以下配合附圖的一些實施方式之敘述,以上所述及其他的實施態樣、優點、及特徵將變得更為清楚,其中:
圖1係根據第一實施方式之半導體裝置的方塊圖;
圖2係根據第一實施方式之硬體IP的方塊圖;
圖3係用以說明根據第一實施方式之半導體裝置中之記憶體配置與存取許可範圍之間關係的示意圖(當可靠度未通過驗證之程式要求使用記憶體時);
圖4係用以說明根據第一實施方式之半導體裝置中之記憶體配置與存取許可範圍之間關係的示意圖(當可靠度已通過驗證的程式要求使用記憶體時);
圖5係用以說明根據第一實施方式之硬體IP之啟動順序及暫存器設定順序的順序示意圖;
圖6係用以說明根據第一實施方式之硬體IP之記憶體存取順序之第一範例的順序示意圖;
圖7係用以說明根據第一實施方式之硬體IP之記憶體存取順序之第二範例的順序示意圖;
圖8係用以說明當根據第一實施方式之硬體IP中發生記憶體存取違規時所執行之半導體裝置之程序順序的順序示意圖;
圖9係根據第二實施方式之硬體IP的方塊圖;
圖10係用以說明根據第二實施方式之硬體IP之啟動順序的順序示意圖;
圖11係用以說明根據第二實施方式之硬體IP之結束順序的順序示意圖;
圖12係用以說明設定在根據第二實施方式之硬體IP中的存取許可範圍之記憶體配置的示意圖;
圖13係根據第三實施方式之半導體裝置的方塊圖;
圖14係用以說明根據第三實施方式之半導體裝置之記憶體配置與存取許可範圍之間關係的示意圖;
圖15係根據第四實施方式之硬體IP的方塊圖;及
圖16係用以說明根據第四實施方式之半導體裝置之記憶體配置及存取許可範圍之間關係的示意圖。
1‧‧‧半導體裝置
10‧‧‧CPU
11‧‧‧算術單元
21‧‧‧共用記憶體
22‧‧‧硬體IP
23‧‧‧硬體IP
31‧‧‧資訊處理單元
32‧‧‧暫存器群組
33‧‧‧記憶體存取指令產生單元
34‧‧‧記憶體保護單元

Claims (18)

  1. 一種半導體裝置,包含:主要算術單元,配置以執行程式;次要算術單元,配置以執行由該主要算術單元所執行之該程式之一部分的程序;及共用記憶體,配置成由該主要算術單元及該次要算術單元進行存取,其中該次要算術單元包含:暫存器,配置以儲存提供自該主要算術單元的存取許可範圍位址值;資訊處理單元,配置成根據提供自該主要算術單元的操作指令來執行預定程序;及記憶體保護單元,配置成對於從該資訊處理單元發布至該共用記憶體的複數存取要求之中,將針對位於由該存取許可範圍位址值所指定之存取許可範圍內之位址的存取要求提供至該共用記憶體,並且阻止針對位於由該存取許可範圍位址值所指定之該存取許可範圍外之位址的存取要求;其中,該主要算術單元執行一通過可靠度驗證程式及一未通過可靠度驗證程式以作為該程式,該通過可靠度驗證程式具有高可靠度,而該未通過可靠度驗證程式具有低於該通過可靠度驗證程式的可靠度,且藉由該通過可靠度驗證程式來執行用以將該存取許可範圍位址值儲存至該次要算術單元的該暫存器內之程序。
  2. 如申請專利範圍第1項之半導體裝置,其中在啟動該次要算術單元之前,該主要算術單元執行用以將該存取許可範圍位址值儲存至該次要算術單元的該暫存器內之程序。
  3. 如申請專利範圍第1項之半導體裝置,其中當該記憶體保護單元偵測到針對位於由該存取許可範圍位址值所指定之該存取許可範圍外之位址的存取要求時,該記憶體保護單元發送錯誤通知至該主要算術單元,且為回應該錯誤通知,該主要算術單元執行用以停止該次要算術單元之操作的程序及用以停止使用該次要算術單元之程式的程序其中至少一者,以作為中斷程序。
  4. 如申請專利範圍第1項之半導體裝置,其中該次要算術單元包含:內部記憶體,其記憶體空間不定義在該主要算術單元所使用之記憶體空間內,使得只有該次要算術單元可使用該內部記憶體;及重置控制電路,配置以執行用以初始化該暫存器、該資訊處理單元、該記憶體保護單元、該內部記憶體、及該共用記憶體的初始化程序,並且當該次要算術單元啟動時及當該次要算術單元之操作結束時,該重置控制電路執行該初始化程序。
  5. 如申請專利範圍第4項之半導體裝置,其中對於由該主要算術單元所指定之該存取許可範圍內的特定存取許可範圍,該重置控制電路不執行該初始化程序。
  6. 如申請專利範圍第1項之半導體裝置,其中配置CPU所執行的該程式包含能夠由該CPU所執行之複數程式的其中一程式,該半導體裝置更包含記憶體管理單元,其係配置以控制由該主要算術單元所執行之各個程式的存取範圍。
  7. 如申請專利範圍第6項之半導體裝置,其中儲存在該次要算術單元的該暫存器內之該存取許可範圍位址值具有一位址值,該位址值係位於該記憶體管理單元中之允許給使用該次要算術單元之程式使用的記憶體管理區域內。
  8. 如申請專利範圍第1項之半導體裝置,其中該次要算術單元包含:參數讀取單元,配置以讀取儲存在設定於該共用記憶體的該存取許可範圍內之參數設定區域中的操作參數;及存取位址產生單元,配置成基於提供自該參數讀取單元的該操作參數而產生對於該共用記憶體的存取位址。
  9. 如申請專利範圍第1項之半導體裝置,其中該共用記憶體係設置在半導體晶片上,該半導體晶片係不同於設置有該主要算術單元及該次要算術單元的晶片。
  10. 如申請專利範圍第1項之半導體裝置,其中:該通過可靠度驗證程式包含以混合方式,在功能安全性或保全性方面,已通過高階驗證且受充分保護之具有高可靠度的程式,並且該未通過可靠度驗證程式包含以混合方式,在功能安全性或保全性方面,只通過低階驗證且未受充分保護的程式。
  11. 如申請專利範圍第10項之半導體裝置,其中使用預定決定準則之關於程式為通過可靠度驗證程式或未通過可靠度驗證程式的資訊係預先包括在該程式之中。
  12. 如申請專利範圍第10項之半導體裝置,其中該通過可靠度驗證程式包含汽車中的自動駕駛應用程式。
  13. 一種在半導體裝置中所執行的記憶體存取控制方法,其中該半導體裝置包含:主要算術單元,配置以執行程式;次要算術單元,配置以執行由該主要算術單元所執行之該程式之一部分的程序,該次要算術單元包括暫存器,該暫存器係配置以儲存提供自該主要算術單元的存取許可範圍位址值;及共用記憶體,配置成由該主要算術單元及該次要算術單元進行存取, 該記憶體存取控制方法包含:該次要算術單元根據提供自該主要算術單元的操作指令來執行預定程序;及對於根據該預定程序而發布至該共用記憶體的複數存取要求之中,該次要算術單元將針對位於由該存取許可範圍位址值所指定之存取許可範圍內之位址的存取要求提供至該共用記憶體,並且阻止針對位於由該存取許可範圍位址值所指定之該存取許可範圍外之位址的存取要求;其中該主要算術單元執行一通過可靠度驗證程式及一未通過可靠度驗證程式以作為該程式,該通過可靠度驗證程式具有高可靠度,而該未通過可靠度驗證程式具有低於該通過可靠度驗證程式的可靠度,且藉由該通過可靠度驗證程式來執行用以將該存取許可範圍位址值儲存至該次要算術單元的該暫存器內之程序。
  14. 如申請專利範圍第13項之在半導體裝置中所執行的記憶體存取控制方法,其中在啟動該次要算術單元之前,該主要算術單元執行用以將該存取許可範圍位址值儲存至該次要算術單元的該暫存器內之程序。
  15. 如申請專利範圍第13項之在半導體裝置中所執行的記憶體存取控制方法,其中當該次要算術單元偵測到針對位於由該存取許可範圍位址值所指定之該存取許可範圍外之位址的存取要求時,該記憶體保護單元發送錯誤通知至該主要算術單元,且 為回應該錯誤通知,該主要算術單元執行用以停止該次要算術單元之操作的程序及用以停止使用該次要算術單元之程式的程序其中至少一者,以作為中斷程序。
  16. 如申請專利範圍第13項之在半導體裝置中所執行的記憶體存取控制方法,其中該次要算術單元包含內部記憶體,其記憶體空間不定義在該主要算術單元所使用之記憶體空間內,使得只有該次要算術單元可使用該內部記憶體,且當該次要算術單元啟動時及當該次要算術單元之操作結束時,該次要算術單元執行對於該內部記憶體的初始化程序。
  17. 如申請專利範圍第16項之在半導體裝置中所執行的記憶體存取控制方法,其中對於由該主要算術單元所指定之該共用記憶體中之該存取許可範圍內的特定存取許可範圍,該次要算術單元不執行該初始化程序。
  18. 如申請專利範圍第13項之在半導體裝置中所執行的記憶體存取控制方法,其中該次要算術單元:讀取儲存在設定於該共用記憶體的該存取許可範圍內之參數設定區域中的操作參數;及基於該讀取操作參數而產生對於該共用記憶體的存取位址。
TW106115531A 2016-05-20 2017-05-11 半導體裝置及其記憶體存取控制方法 TWI752956B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2016101282 2016-05-20
JP2016-101282 2016-05-20
JP2017031933A JP6758222B2 (ja) 2016-05-20 2017-02-23 半導体装置及びそのメモリアクセス制御方法
JP2017-031933 2017-02-23

Publications (2)

Publication Number Publication Date
TW201804331A TW201804331A (zh) 2018-02-01
TWI752956B true TWI752956B (zh) 2022-01-21

Family

ID=58765650

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106115531A TWI752956B (zh) 2016-05-20 2017-05-11 半導體裝置及其記憶體存取控制方法

Country Status (4)

Country Link
US (1) US10241706B2 (zh)
EP (1) EP3246821B1 (zh)
CN (1) CN107402892B (zh)
TW (1) TWI752956B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3069342B1 (fr) * 2017-07-20 2019-07-26 Continental Automotive France Procede de determination de l'integrite de donnees de navigation d'une unite de controle d'un vehicule automobile
US11169953B2 (en) * 2018-02-28 2021-11-09 SK Hynix Inc. Data processing system accessing shared memory by using mailbox

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110078760A1 (en) * 2008-05-13 2011-03-31 Nxp B.V. Secure direct memory access
US20130054933A1 (en) * 2011-08-26 2013-02-28 Zachary Fister Dynamic address change optimizations
US20130283391A1 (en) * 2011-12-21 2013-10-24 Jayant Mangalampalli Secure direct memory access
TWI516937B (zh) * 2011-12-22 2016-01-11 英特爾股份有限公司 用於資料讀取/寫入延伸分頁表違例之處理的決策動作決定技術之方法、裝置及非暫態機器可讀媒體

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5113523A (en) * 1985-05-06 1992-05-12 Ncube Corporation High performance computer system
US6757809B1 (en) * 1989-12-16 2004-06-29 Renesas Technology Corp. Data processor having 2n bits width data bus for context switching functions
JPH03186928A (ja) * 1989-12-16 1991-08-14 Mitsubishi Electric Corp データ処理装置
US6675163B1 (en) * 2000-04-06 2004-01-06 International Business Machines Corporation Full match (FM) search algorithm implementation for a network processor
US6947931B1 (en) * 2000-04-06 2005-09-20 International Business Machines Corporation Longest prefix match (LPM) algorithm implementation for a network processor
US7051340B2 (en) * 2001-11-29 2006-05-23 Hewlett-Packard Development Company, L.P. System and method for isolating applications from each other
US7711990B1 (en) * 2005-12-13 2010-05-04 Nvidia Corporation Apparatus and method for debugging a graphics processing unit in response to a debug instruction
US20080244325A1 (en) * 2006-09-30 2008-10-02 Mikhail Tyulenev Automated software support system with backwards program execution and debugging
US20100017893A1 (en) * 2008-07-21 2010-01-21 Ati Technologies Ulc System for Securing Register Space and Method of Securing the Same
US8464011B2 (en) * 2008-10-27 2013-06-11 Advanced Micro Devices, Inc. Method and apparatus for providing secure register access
JP5433676B2 (ja) * 2009-02-24 2014-03-05 パナソニック株式会社 プロセッサ装置、マルチスレッドプロセッサ装置
US8243088B2 (en) * 2009-02-26 2012-08-14 Presagis Two dimensional memory access controller
US20110145934A1 (en) * 2009-10-13 2011-06-16 Miron Abramovici Autonomous distributed programmable logic for monitoring and securing electronic systems
CN103430185B (zh) * 2011-03-22 2016-10-26 瑞典爱立信有限公司 用于在虚拟化系统操作与非虚拟化系统操作之间切换的方法
KR101857791B1 (ko) * 2011-08-30 2018-05-16 삼성전자주식회사 컴퓨팅 시스템, 및 상기 컴퓨팅 시스템을 동작하기 위한 방법
EP2788901A1 (en) * 2011-12-08 2014-10-15 Oracle International Corporation Techniques for maintaining column vectors of relational data within volatile memory
JP5573829B2 (ja) * 2011-12-20 2014-08-20 富士通株式会社 情報処理装置およびメモリアクセス方法
JP6007677B2 (ja) 2012-08-30 2016-10-12 富士電機株式会社 安全制御システム、及び安全制御システムのプロセッサ
US20150227414A1 (en) * 2012-08-31 2015-08-13 Pradeep Varma Systems And Methods Of Memory And Access Management
KR101471303B1 (ko) * 2013-10-02 2014-12-10 포항공과대학교 산학협력단 그래픽 처리 장치를 위한 전력 관리 장치 및 방법
US9092647B2 (en) 2013-03-07 2015-07-28 Freescale Semiconductor, Inc. Programmable direct memory access channels
US9524170B2 (en) * 2013-12-23 2016-12-20 Intel Corporation Instruction and logic for memory disambiguation in an out-of-order processor
US10101936B2 (en) * 2014-07-28 2018-10-16 Hewlett Packard Enterprise Development Lp Memory access control
US9749319B2 (en) * 2015-05-20 2017-08-29 Google Inc. Address validation using signatures
US9954681B2 (en) * 2015-06-10 2018-04-24 Nxp Usa, Inc. Systems and methods for data encryption
US10114958B2 (en) * 2015-06-16 2018-10-30 Microsoft Technology Licensing, Llc Protected regions
US9578054B1 (en) * 2015-08-31 2017-02-21 Newman H-R Computer Design, LLC Hacking-resistant computer design
US10547680B2 (en) * 2015-12-29 2020-01-28 Intel Corporation Systems, methods, and apparatuses for range protection
US10013199B2 (en) * 2016-11-15 2018-07-03 Red Hat Israel, Ltd. Translation bypass by host IOMMU for systems with virtual IOMMU
GB2557254B (en) * 2016-12-02 2020-02-12 Advanced Risc Mach Ltd Filtering coherency protocol transactions

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110078760A1 (en) * 2008-05-13 2011-03-31 Nxp B.V. Secure direct memory access
US20130054933A1 (en) * 2011-08-26 2013-02-28 Zachary Fister Dynamic address change optimizations
US20130283391A1 (en) * 2011-12-21 2013-10-24 Jayant Mangalampalli Secure direct memory access
TWI516937B (zh) * 2011-12-22 2016-01-11 英特爾股份有限公司 用於資料讀取/寫入延伸分頁表違例之處理的決策動作決定技術之方法、裝置及非暫態機器可讀媒體

Also Published As

Publication number Publication date
EP3246821B1 (en) 2020-09-09
CN107402892B (zh) 2023-06-27
US20170337008A1 (en) 2017-11-23
TW201804331A (zh) 2018-02-01
CN107402892A (zh) 2017-11-28
EP3246821A1 (en) 2017-11-22
US10241706B2 (en) 2019-03-26

Similar Documents

Publication Publication Date Title
US10509568B2 (en) Efficient secure boot carried out in information processing apparatus
EP3166037B1 (en) System and method of secure execution of code in hypervisor mode
US20080301389A1 (en) Memory-protection method and apparatus
CN110209615B (zh) 执行不可屏蔽中断的方法和装置
KR20060130200A (ko) 런타임 안전 보장을 위한 자율 메모리 체커 및 이의 방법
US9262631B2 (en) Embedded device and control method thereof
JP2007249933A (ja) データ処理装置内コンテンツへのアクセス管理
US8719546B2 (en) Substitute virtualized-memory page tables
CN112749397A (zh) 一种系统和方法
CN112818327A (zh) 基于TrustZone的用户级代码和数据安全可信保护方法及装置
TWI752956B (zh) 半導體裝置及其記憶體存取控制方法
CN112541166A (zh) 一种方法、系统和计算机可读存储介质
US10846421B2 (en) Method for protecting unauthorized data access from a memory
CN113448682A (zh) 一种虚拟机监控器加载方法、装置及电子设备
US7624442B2 (en) Memory security device for flexible software environment
KR102028704B1 (ko) 전자기기에서 코드 삽입 공격으로부터 보호를 위한 메모리 운용 방법
JP6758222B2 (ja) 半導体装置及びそのメモリアクセス制御方法
US10754967B1 (en) Secure interrupt handling between security zones
CN111373405B (zh) 用于防止计算设备中比特翻转攻击的计算机实现方法
CN115422554A (zh) 请求处理方法、编译方法和可信计算系统
US10503666B2 (en) Method for operating a microcontroller
US20230259302A1 (en) Control device, control method, recording medium in which control program is recorded, and vehicle
JP2005209178A (ja) メモリ保護装置、メモリ保護方法及びメモリ保護プログラム
CN116226870B (zh) 安全增强系统及方法
US20230092808A1 (en) Model protection system