TWI774095B - 直接記憶體存取控制器、使用直接記憶體存取控制器之電子裝置以及操作直接記憶體存取控制器的方法 - Google Patents
直接記憶體存取控制器、使用直接記憶體存取控制器之電子裝置以及操作直接記憶體存取控制器的方法 Download PDFInfo
- Publication number
- TWI774095B TWI774095B TW109136671A TW109136671A TWI774095B TW I774095 B TWI774095 B TW I774095B TW 109136671 A TW109136671 A TW 109136671A TW 109136671 A TW109136671 A TW 109136671A TW I774095 B TWI774095 B TW I774095B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory access
- direct memory
- mode
- secure
- access channel
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
- Bus Control (AREA)
Abstract
本發明揭露一種直接記憶體存取控制器、使用直接記憶體存取控制器之電子裝置,以及操作直接記憶體存取控制器的方法。該直接記憶體存取控制器用來存取一記憶體,該記憶體包含一安全區域及一非安全區域。該操作直接記憶體存取控制器的方法包含:找出該直接記憶體存取控制器中處於一閒置狀態的一直接記憶體存取通道;設定該直接記憶體存取通道之一模式暫存器的一暫存值,以令該直接記憶體存取通道操作於一安全模式;設定該直接記憶體存取通道之一地址暫存器及一計數暫存器;以及控制該直接記憶體存取通道基於該地址暫存器及該計數暫存器進行資料搬移。
Description
本發明是關於直接記憶體存取(direct memory access, DMA)控制器,尤其是關於共用DMA控制器,以及操作DMA控制器的方法。
為了安全起見,電子裝置通常會將機密的或敏感的資料儲存於記憶體中的安全區域(secure area)(亦稱為安全記憶體(secure memory)),並且將非機密的或非敏感的資料儲存於記憶體中的非安全區域(non-secure area)(亦稱為非安全記憶體(non-secure memory))。因此,可操作於安全模式及非安全模式的系統單晶片(System on a Chip, SoC)通常會為兩種模式使用獨立的DMA控制器或是獨立的DMA通道(DMA channel)。然而,由於DMA控制器或DMA通道不會時時刻刻被同一安全級別(即安全模式或非安全模式)使用,所以這樣的做法比較耗費資源。
鑑於先前技術之不足,本發明之一目的在於提供直接記憶體存取控制器、使用直接記憶體存取控制器之電子裝置以及操作直接記憶體存取控制器的方法。
本發明揭露一種直接記憶體存取控制器,用來存取一記憶體,該記憶體包含一安全區域及一非安全區域。該直接記憶體存取控制器包含一直接記憶體存取通道、一模式暫存器、一設定介面以及一控制電路。該模式暫存器用來儲存一暫存值。當該暫存值為一第一數值時,該直接記憶體存取通道操作於一安全模式,以及當該暫存值為一第二數值時,該直接記憶體存取通道操作於一非安全模式。設定介面用來接收一控制命令。控制電路耦接於該直接記憶體存取通道,用來根據該控制命令設定該模式暫存器之該暫存值。當該直接記憶體存取通道操作於該安全模式時,該直接記憶體存取通道可以存取該安全區域及該非安全區域,以及當該直接記憶體存取通道操作於該非安全模式時,該直接記憶體存取通道可以存取該非安全區域,但無法存取該安全區域。
本發明另揭露一種電子裝置,包含一處理器、一記憶體以及一直接記憶體存取控制器。該處理器用來產生一控制命令,該控制命令用來設定該直接記憶體存取控制器之一操作模式。該記憶體包含一安全區域及一非安全區域。該直接記憶體存取控制器透過一匯流排耦接該處理器及該記憶體,並且包含一直接記憶體存取通道、一設定介面以及一模式暫存器。該直接記憶體存取控制器透過該設定介面接收該控制命令。該模式暫存器用來儲存對應於該控制命令的一暫存值。當該暫存值為一第一數值時,該直接記憶體存取通道操作於一安全模式,以及當該暫存值為一第二數值時,該直接記憶體存取通道操作於一非安全模式。當該直接記憶體存取通道操作於該安全模式時,該直接記憶體存取通道可以存取該安全區域及該非安全區域,以及當該直接記憶體存取通道操作於該非安全模式時,該直接記憶體存取通道可以存取該非安全區域,但無法存取該安全區域。
本發明另揭露一種操作一直接記憶體存取控制器的方法。該直接記憶體存取控制器用來存取一記憶體,該記憶體包含一安全區域及一非安全區域。該方法包含:找出該直接記憶體存取控制器中處於一閒置狀態的一直接記憶體存取通道;設定該直接記憶體存取通道之一模式暫存器的一暫存值,以令該直接記憶體存取通道操作於一安全模式;設定該直接記憶體存取通道之一地址暫存器及一計數暫存器;以及控制該直接記憶體存取通道基於該地址暫存器及該計數暫存器進行資料搬移。
本發明之DMA控制器或其DMA通道可以在安全模式與非安全模式之間切換。相較於傳統技術,本發明之DMA控制器或其DMA通道使用單一的電路或硬體即可實現安全模式之DMA操作及非安全模式之DMA操作,因此可以節省硬體資源及降低成本。
有關本發明的特徵、實作與功效,茲配合圖式作實施例詳細說明如下。
以下說明內容之技術用語係參照本技術領域之習慣用語,如本說明書對部分用語有加以說明或定義,該部分用語之解釋係以本說明書之說明或定義為準。
本發明之揭露內容包含直接記憶體存取控制器、使用直接記憶體存取控制器之電子裝置以及操作直接記憶體存取控制器的方法。由於本發明之記憶體存取控制器及電子裝置所包含之部分元件單獨而言可能為已知元件,因此在不影響該裝置發明之充分揭露及可實施性的前提下,以下說明對於已知元件的細節將予以節略。
在以下的實施例中,DMA控制器包含兩個以上的DMA通道,然而,在其他的實施例中,DMA控制器可以只包含一個DMA通道。當DMA控制器可以只包含一個DMA通道時,操作該DMA控制器等效於操作該DMA通道,反之亦然。
圖1為本發明DMA控制器之一實施例的功能方塊圖。DMA控制器100包含控制電路110、多個DMA通道120(包含但不限於圖中所繪示的兩個DMA通道:DMA通道0(120-0)及DMA通道1(120-1))、設定介面(configuration interface)130及主介面(master interface)140。每個DMA通道120包含一個暫存器檔(register file)121,每一個暫存器檔121包含模式暫存器122、地址暫存器(memory address register)124以及計數暫存器(byte count register)126。
控制電路110也可以稱做DMA控制器100的仲裁器(arbitrator),可以是硬體,或是軟體與硬體的組合。當控制電路110由硬體實作時,控制電路110可以是由邏輯電路實作的有限狀態機(finite state-machine, FSM)。當控制電路110是硬體與軟體的組合時,控制電路110包含計算單元與記憶體。計算單元是具有程式執行能力的電路或電子元件(例如微處理器、微處理單元、數位訊號處理器或特殊應用積體電路(application specific integrated circuit, ASIC)),並且藉由執行儲存在記憶體中的程式碼或程式指令來完成控制電路110的功能。
DMA通道120可以操作在安全模式或非安全模式,而且DMA通道0(120-0)與DMA通道1(120-1)互相獨立。舉例來說,DMA通道0(120-0)及DMA通道1(120-1)可以同時操作在安全模式或非安全模式,也可以一者操作在安全模式,另一者操作在非安全模式。當DMA通道120的模式暫存器122的暫存值為第一數值(例如邏輯1)時,該DMA通道120操作在安全模式,且當DMA通道120的模式暫存器122的暫存值為第二數值(例如邏輯0)時,該DMA通道120操作在非安全模式。
當DMA控制器100或DMA通道120被設定為安全模式時,則DMA控制器100或該DMA通道120操作於安全模式,且之後的所有設定或者讀取操作,都需要使用安全模式的控制命令來進行。如果是非安全模式的控制命令試圖讀取DMA控制器100或者DMA通道120,或者試圖設定DMA控制器100或者DMA通道120來進行資料搬移,則操作於安全模式的DMA控制器100或者操作於安全模式的DMA通道120會拒絕這些操作。在一些實施例中,當非安全模式的軟體或硬體企圖讀取操作於安全模式的DMA控制器100的設定或操作於安全模式的DMA通道120的設定時,操作於安全模式的DMA控制器100或操作於安全模式的DMA通道120不回覆真實的值,而是回覆「0」、保留值(reserved value)或是隨機值,以避免非安全模式的軟體或硬體得知操作於安全模式的DMA控制器100的設定或操作於安全模式的DMA通道120的設定。
設定介面130及主介面140透過匯流排200與處理器300(例如中央處理器、微處理器、微處理單元、數位訊號處理器或特殊應用積體電路)、安全記憶體400及非安全記憶體500耦接。匯流排200也可以是連線(interconnect)或匯流排矩陣。安全記憶體400及非安全記憶體500可以是兩個獨立的實體記憶體(例如動態隨機存取記憶體(dynamic random access memory, DRAM)),或是同一個實體記憶體的不同區塊或區域(即安全/非安全區塊,或安全/非安全區域)。處理器300透過匯流排200傳送控制命令CM,且DMA控制器100透過設定介面130接收該控制命令CM。控制命令CM可以用來設定DMA通道120的模式暫存器122的暫存值。控制命令CM包含安全屬性(secure attribute),處理器300藉由控制安全屬性的值來產生安全模式的控制命令CM或是非安全模式的控制命令CM。更明確地說,操作於安全模式的處理器300所產生的控制命令CM的安全屬性為第一邏輯值(例如邏輯1),而操作於非安全模式的處理器300所產生的控制命令CM的安全屬性為第二邏輯值(例如邏輯0)。
在一些實施例中,控制電路110根據控制命令CM設定目標DMA通道120的模式暫存器122,更明確地說,控制電路110基於該安全屬性來設定目標DMA通道120的模式暫存器122。舉例來說,當控制命令CM的安全屬性為第一邏輯值(例如邏輯1)時,控制電路110將目標DMA通道120的模式暫存器122的暫存值設為第一邏輯值,且當控制命令CM的安全屬性為第二邏輯值(例如邏輯0)時,控制電路110將目標DMA通道120的模式暫存器122的暫存值設為第二邏輯值。在一些實施例中,設定介面130可以是先進外圍匯流排(Advanced Peripheral Bus, APB),且該安全屬性為之一保護訊號(Protection signal, Pprot)的其中一位元(例如位元1,即Pprot[1])。在其他的實施例中,設定介面130可以是先進高性能匯流排(Advanced High-performance Bus, AHB)或其他介面。
操作於安全模式的處理器300可以讀取另一個處理器(圖未示)對DMA控制器100或DMA通道120所做的設定,該另一個處理器操作於非安全模式。操作於安全模式的處理器300可以進一步控制DMA控制器100及/或DMA通道120的行為,例如,當DMA控制器100或者DMA通道120被設定為安全模式後,另一個非安全模式的處理器是無法獲取DMA控制器100或者DMA通道120為自己傳輸數據的。
當DMA通道120操作於安全模式時,DMA通道120可以存取安全記憶體400及非安全記憶體500,而當DMA通道120操作於非安全模式時,DMA通道120可以存取非安全記憶體500,但不能存取安全記憶體400。更明確地說,DMA通道120透過主介面140及匯流排200傳送讀寫命令CRW給安全記憶體400及/或非安全記憶體500。主介面140可以區分安全模式的命令及非安全模式的命令。讀寫命令CRW包含安全屬性,而安全記憶體400基於該安全屬性來決定是否允許讀取及/或寫入操作。舉例來說,當DMA通道120操作於安全模式時,DMA通道120所發出的讀寫命令CRW的安全屬性為第一邏輯值(對應於安全模式),使得安全記憶體400及非安全記憶體500允許讀取及/或寫入操作;當DMA通道120操作於非安全模式時,DMA通道120所發出的讀寫命令CRW的安全屬性為第二邏輯值(對應於非安全模式),使得安全記憶體400不允許讀取及/或寫入操作,但非安全記憶體500允許讀取及/或寫入操作。在一些實施例中,主介面140可以是先進外圍匯流排、先進高性能匯流排或先進可擴充介面(Advanced eXtensible Interface, AXI)。在一些實施例中,匯流排200決定是否允許DMA控制器100或DMA通道120存取安全記憶體400。
圖2為本發明操作DMA控制器的方法之一實施例的流程圖。一開始,處理器300操作於安全模式(步驟S210),並且需要尋找一個閒置中(即未被使用)的DMA控制器或DMA通道(步驟S220)。在一些實施例中,處理器300以查詢命令QM查詢DMA控制器100或DMA通道120的狀態,例如以輪詢(polling)的方式訪問DMA控制器100的每個DMA通道120。回應該輪詢訊號,DMA通道120產生回覆內容RC,而回覆內容RC與處理器300的操作模式(即安全模式或非安全模式)有關(如圖3A及3B所示)。
圖3A為當處理器300操作於安全模式時DMA通道120回應輪詢訊號的回覆內容RC,而圖3B為當處理器300操作於非安全模式時DMA通道120回應輪詢訊號的回覆內容RC。在圖3A及圖3B的例子中,假設DMA通道0至DMA通道3的當前操作模式分別為非安全模式、非安全模式、安全模式及安全模式,且假設DMA通道0至DMA通道3的當前狀態分別為忙碌、閒置、閒置及忙碌。
請參閱圖3A,當處理器300操作於安全模式時,DMA通道120的回覆內容RC包含DMA通道120當下的操作模式以及真實的狀態(即閒置或忙碌)。真實的狀態指的是DMA通道120的未經調整、修飾或改變過的當前的狀態。因此,操作於安全模式的處理器300可以得知DMA通道120當下的操作模式及真實的狀態。
請參閱圖3B,當處理器300操作於非安全模式時,DMA通道120的回覆內容RC包含狀態但不包含操作模式,且回覆內容RC中的狀態不一定是DMA通道120當下的真實的狀態。更明確地說,當操作於非安全模式的DMA通道收到來自非安全模式的處理器300的輪詢訊號時,操作於非安全模式的DMA通道回覆當下的狀態,但不回覆操作模式;當操作於安全模式的DMA通道收到來自操作於非安全模式的處理器300的輪詢訊號時,操作於安全模式的DMA通道一律回覆「忙碌」,且不回覆操作模式。換言之,雖然DMA通道2事實上處於閒置狀態,但是為了避免操作於非安全模式的處理器300存取操作於安全模式的DMA通道,所以DMA通道2回覆假的狀態(fake state)或虛擬的狀態(dummy state)。因此,操作於非安全模式的處理器300可以得知操作於非安全模式的DMA通道的真實的狀態,但無法得知操作於安全模式的DMA通道的真實的狀態,而且操作於非安全模式的處理器300無法得知DMA通道的操作模式。在這樣的設計下,操作於非安全模式的處理器300無法設定操作於安全模式的DMA控制器100或操作於安全模式的DMA通道120。
在一些實施例中,操作於非安全模式的處理器300只能詢問DMA控制器100或DMA通道120是否閒置,但是無法終止DMA控制器100或DMA通道120,或是無法使DMA控制器100或DMA通道120離開安全模式。
在一些實施例中(如圖4所示),操作於安全模式的DMA通道120利用選擇電路600(例如多工器)來基於控制命令CM的安全屬性回覆真實的狀態或虛擬狀態。當安全屬性為邏輯1(對應於安全模式)時,DMA通道120回覆真實的狀態;當安全屬性為邏輯0(對應於非安全模式)時,DMA通道120回覆虛擬狀態。
回到圖2。當處理器300沒有找到閒置中的DMA控制器或DMA通道(即步驟S220的判斷為否)時,處理器300持續尋找閒置中的DMA控制器或DMA通道(步驟S220)。當處理器300找到閒置中的DMA控制器或DMA通道(即步驟S220的判斷為是)時,處理器300改變該閒置中的DMA通道的模式暫存器122的暫存值,以控制該閒置中的DMA通道操作於安全模式(步驟S230)。設定完模式暫存器122後,處理器300繼續以其他的控制命令設定DMA通道的地址暫存器124及計數暫存器126(步驟S240)。舉例來說,處理器300在可以在地址暫存器124中儲存待讀取或寫入的記憶體區塊的地址,以及在計數暫存器126中儲存資料量。隨後,該DMA通道120便基於地址暫存器124中的暫存值及計數暫存器126中的暫存值,透過主介面140發出讀寫命令CRW以進行資料搬移(步驟S250)。
資料搬移完成之後(即步驟S260的判斷為是),DMA通道120發出中斷通知處理器300資料搬移已完成,然後處理器300判斷是否控制該DMA通道操作於非安全模式(步驟S270)。如果處理器300要繼續使用該DMA通道,則處理器300不控制該DMA通道操作於非安全模式(即步驟S270的判斷為否),然後於步驟S220中繼續選擇該DMA通道。如果處理器300不繼續使用該DMA通道,則處理器300控制該DMA通道操作於非安全模式(即步驟S270的判斷為是)。於清除該DMA通道的其他暫存器(包含但不限於地址暫存器124及計數暫存器126)後,處理器300改變該DMA通道的模式暫存器122的暫存值,使該DMA通道操作於非安全模式(步驟S280)。如此一來,其他操作於非安全模式的處理器300可以在步驟S220中找到該DMA通道。
圖2的流程雖然以操作於安全模式的處理器300為例,但本技術領域具有通常知識者可以依據上述的說明將本發明應用於操作於非安全模式的處理器300,故不再贅述。
本發明的DMA控制器或DMA通道應用於電子裝置10(例如電腦、可攜式電子裝置等具有運算能力及資料儲存能力的設備,或是系統單晶片),而處理器300可以是電子裝置10的中央處理器、微處理器、微處理單元、數位訊號處理器或特殊應用積體電路。在一些實施例中,本發明的DMA控制器或DMA通道具有一種安全機制,以保護電子裝置10中的機密的或敏感的資料。圖5顯示該安全機制的流程。操作於安全模式的DMA通道或DMA控制器持續判斷所收到的非安全模式的控制命令的個數是否大於門檻值(步驟S510、S520)。非安全模式的控制命令是指該控制命令的安全屬性對應於非安全模式,通常是由操作於非安全模式的處理器所發出。當操作於安全模式的DMA通道收到的非安全模式的控制命令的個數大於門檻值時(即步驟S520的判斷為是,代表可能有惡意人士企圖竊取安全記憶體400中的資料),操作於安全模式的DMA通道發出中斷INTR(步驟S530)。接著,操作於安全模式的處理器300接收該中斷INTR,並且回應該中斷INTR重啟或關閉電子裝置10(步驟S540),以降低資料被竊的風險。
在一些實施例中,門檻值可以是零,換言之,只要操作於安全模式的DMA通道或DMA控制器收到一個非安全模式的控制命令,步驟S530及S540就會被執行。
在一些實施例中,操作於非安全模式的處理器無法接收或得知該中斷INTR,以提高此安全機制的可靠性。
綜上所述,本發明提出了可以操作於安全模式或非安全模式的DMA控制器及/或DMA通道,以及操作DMA控制器及/或DMA通道的方法。操作於非安全模式的DMA控制器及操作於非安全模式的DMA通道無法獲取操作於安全模式的DMA控制器所搬移的資料及操作於安全模式的DMA通道所搬移的資料。
由於本技術領域具有通常知識者可藉由本案之裝置發明的揭露內容來瞭解本案之方法發明的實施細節與變化,因此,為避免贅文,在不影響該方法發明之揭露要求及可實施性的前提下,重複之說明在此予以節略。請注意,前揭圖示中,元件之形狀、尺寸、比例以及步驟之順序等僅為示意,係供本技術領域具有通常知識者瞭解本發明之用,非用以限制本發明。
雖然本發明之實施例如上所述,然而該些實施例並非用來限定本發明,本技術領域具有通常知識者可依據本發明之明示或隱含之內容對本發明之技術特徵施以變化,凡此種種變化均可能屬於本發明所尋求之專利保護範疇,換言之,本發明之專利保護範圍須視本說明書之申請專利範圍所界定者為準。
10:電子裝置
100:DMA控制器
110:控制電路
120-0,120-1:DMA通道
121-0,121-1:暫存器檔
122-0,122-1:模式暫存器
124-0,124-1:地址暫存器
126-0,126-1:計數暫存器
130:設定介面
140:主介面
200:匯流排
300:處理器
400:安全記憶體
500:非安全記憶體
CM:控制命令
CRW:讀寫命令
QM:查詢命令
RC:回覆內容
INTR:中斷
600:選擇電路
S210~S280,S510~S540:步驟
圖1為本發明DMA控制器之一實施例的功能方塊圖;
圖2為本發明操作DMA控制器的方法之一實施例的流程圖;
圖3A為DMA通道120回應輪詢的回覆內容的一範例;
圖3B為DMA通道120回應輪詢的回覆內容的另一範例;
圖4為DMA通道120用來回應輪詢之選擇電路的一實施例;以及
圖5顯示本發明DMA控制器或DMA通道的安全機制之一實施例的流程圖。
10:電子裝置
100:DMA控制器
110:控制電路
120-0,120-1:DMA通道
121-0,121-1:暫存器檔
122-0,122-1:模式暫存器
124-0,124-1:地址暫存器
126-0,126-1:計數暫存器
130:設定介面
140:主介面
200:匯流排
300:處理器
400:安全記憶體
500:非安全記憶體
CM:控制命令
CRW:讀寫命令
QM:查詢命令
RC:回覆內容
INTR:中斷
Claims (10)
- 一種直接記憶體存取控制器,用來存取一記憶體,該記憶體包含一安全區域及一非安全區域,該直接記憶體存取控制器包含: 一直接記憶體存取通道; 一模式暫存器,用來儲存一暫存值,其中當該暫存值為一第一數值時,該直接記憶體存取通道操作於一安全模式,以及當該暫存值為一第二數值時,該直接記憶體存取通道操作於一非安全模式; 一設定介面,用來接收一控制命令;以及 一控制電路,耦接於該直接記憶體存取通道,用來根據該控制命令設定該模式暫存器之該暫存值; 其中,當該直接記憶體存取通道操作於該安全模式時,該直接記憶體存取通道可以存取該安全區域及該非安全區域,以及當該直接記憶體存取通道操作於該非安全模式時,該直接記憶體存取通道可以存取該非安全區域,但無法存取該安全區域。
- 如請求項1之直接記憶體存取控制器,其中該設定介面係一先進外圍匯流排。
- 如請求項2之直接記憶體存取控制器,其中該控制命令包含一安全屬性,且該安全屬性係對應於該先進外圍匯流排之一保護訊號的其中一位元。
- 如請求項1之直接記憶體存取控制器,其中該直接記憶體存取控制器接收由一處理器所產生之一查詢命令,該直接記憶體存取通道回應該查詢命令產生一回覆內容,該回覆內容包含該直接記憶體存取通道之一當前狀態。
- 如請求項4之直接記憶體存取控制器,其中當該處理器操作於該安全模式時,該回覆內容更包含該直接記憶體存取通道之一當前操作模式。
- 如請求項1之直接記憶體存取控制器,其中該直接記憶體存取控制器接收由一處理器所產生之一查詢命令,該直接記憶體存取通道回應該查詢命令產生一回覆內容,當該直接記憶體存取通道操作於該安全模式且處於一閒置狀態,而且該處理器操作於該非安全模式時,該回覆內容指示該直接記憶體存取通道處於一忙碌狀態。
- 如請求項1之直接記憶體存取控制器,其中當該直接記憶體存取通道操作於該安全模式且收到的該控制命令係一非安全模式的控制命令時,該直接記憶體存取通道回應該非安全模式的控制命令產生一中斷。
- 一種電子裝置,包含: 一處理器,用來產生一控制命令,其中該控制命令用來設定一直接記憶體存取控制器之一操作模式; 一記憶體,包含一安全區域及一非安全區域;以及 該直接記憶體存取控制器,透過一匯流排耦接該處理器及該記憶體,包含: 一直接記憶體存取通道; 一設定介面,其中該直接記憶體存取控制器透過該設定介面接收該控制命令;以及 一模式暫存器,用來儲存對應於該控制命令的一暫存值,其中當該暫存值為一第一數值時,該直接記憶體存取通道操作於一安全模式,以及當該暫存值為一第二數值時,該直接記憶體存取通道操作於一非安全模式; 其中,當該直接記憶體存取通道操作於該安全模式時,該直接記憶體存取通道可以存取該安全區域及該非安全區域,以及當該直接記憶體存取通道操作於該非安全模式時,該直接記憶體存取通道可以存取該非安全區域,但無法存取該安全區域。
- 一種操作一直接記憶體存取控制器的方法,該直接記憶體存取控制器用來存取一記憶體,該記憶體包含一安全區域及一非安全區域,該方法包含: 找出該直接記憶體存取控制器中處於一閒置狀態的一直接記憶體存取通道; 設定該直接記憶體存取通道之一模式暫存器的一暫存值,以令該直接記憶體存取通道操作於一安全模式; 設定該直接記憶體存取通道之一地址暫存器及一計數暫存器;以及 控制該直接記憶體存取通道基於該地址暫存器及該計數暫存器進行資料搬移。
- 如請求項9之方法,其中該設定該直接記憶體存取通道之該模式暫存器的該暫存值的步驟包含: 透過一先進外圍匯流排傳送一控制命令以設定該模式暫存器; 其中,該控制命令包含一安全屬性,該安全屬性係對應於該先進外圍匯流排之一保護訊號的其中一位元。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011111422.8 | 2020-10-16 | ||
CN202011111422.8A CN114385528A (zh) | 2020-10-16 | 2020-10-16 | 直接记忆体存取控制器、使用其之电子装置以及操作其的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202217585A TW202217585A (zh) | 2022-05-01 |
TWI774095B true TWI774095B (zh) | 2022-08-11 |
Family
ID=81185134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109136671A TWI774095B (zh) | 2020-10-16 | 2020-10-22 | 直接記憶體存取控制器、使用直接記憶體存取控制器之電子裝置以及操作直接記憶體存取控制器的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11829310B2 (zh) |
CN (1) | CN114385528A (zh) |
TW (1) | TWI774095B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI318354B (en) * | 2004-12-14 | 2009-12-11 | Intel Corp | Programmable transaction initiator architecture for systems with secure and non-secure modes |
TW201710903A (zh) * | 2015-06-16 | 2017-03-16 | 英商.Arm股份有限公司 | 受保護異常處置 |
US20170371808A1 (en) * | 2016-06-24 | 2017-12-28 | Hewlett Packard Enterprise Development Lp | Direct memory access encryption with application provided keys |
CN110609799A (zh) * | 2019-09-11 | 2019-12-24 | 天津飞腾信息技术有限公司 | 一种面向片外非易失性存储的安全防护方法 |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6041387B2 (ja) * | 1981-12-04 | 1985-09-17 | 沖電気工業株式会社 | ダイレクトメモリアクセス制御回路 |
US6898646B1 (en) * | 2000-05-03 | 2005-05-24 | Hewlett-Packard Development Company, L.P. | Highly concurrent DMA controller with programmable DMA channels |
WO2002069157A1 (en) | 2001-02-28 | 2002-09-06 | Brecis Communications Corporation | A subsystem boot and peripheral data transfer architecture for a subsystem of a system-on-chip |
EP1331539B1 (en) * | 2002-01-16 | 2016-09-28 | Texas Instruments France | Secure mode for processors supporting MMU and interrupts |
US7383587B2 (en) * | 2002-11-18 | 2008-06-03 | Arm Limited | Exception handling control in a secure processing system |
WO2004079583A1 (ja) * | 2003-03-05 | 2004-09-16 | Fujitsu Limited | データ転送制御装置およびdmaデータ転送制御方法 |
US7058735B2 (en) * | 2003-06-02 | 2006-06-06 | Emulex Design & Manufacturing Corporation | Method and apparatus for local and distributed data memory access (“DMA”) control |
TWI262435B (en) * | 2004-01-06 | 2006-09-21 | Winlead Integrated Circuit Des | Microcomputer structure and method having direct memory access function |
DE602004012563T2 (de) | 2004-10-11 | 2009-05-07 | Texas Instruments Inc., Dallas | Mehrfädiges DMA |
US7904943B2 (en) * | 2004-12-28 | 2011-03-08 | O'connor Dennis M | Secure controller for block oriented storage |
EP1801700B1 (en) | 2005-12-23 | 2013-06-26 | Texas Instruments Inc. | Method and systems to restrict usage of a DMA channel |
US8001390B2 (en) * | 2007-05-09 | 2011-08-16 | Sony Computer Entertainment Inc. | Methods and apparatus for secure programming and storage of data using a multiprocessor in a trusted mode |
US20090271536A1 (en) * | 2008-04-24 | 2009-10-29 | Atmel Corporation | Descriptor integrity checking in a dma controller |
KR100959136B1 (ko) * | 2008-07-16 | 2010-05-25 | 한국전자통신연구원 | 직접 메모리 접근 제어기 및 직접 메모리 접근 채널의데이터 전송 방법 |
US8769681B1 (en) | 2008-08-11 | 2014-07-01 | F5 Networks, Inc. | Methods and system for DMA based distributed denial of service protection |
US8051467B2 (en) * | 2008-08-26 | 2011-11-01 | Atmel Corporation | Secure information processing |
US8880632B1 (en) | 2009-01-16 | 2014-11-04 | F5 Networks, Inc. | Method and apparatus for performing multiple DMA channel based network quality of service |
CN104040510B (zh) * | 2011-12-21 | 2017-05-17 | 英特尔公司 | 具备安全的直接存储器访问的计算设备及相应方法 |
CN103186474B (zh) * | 2011-12-28 | 2016-09-07 | 瑞昱半导体股份有限公司 | 对处理器的高速缓存进行清除的方法以及该处理器 |
GB2501274B (en) * | 2012-04-17 | 2020-05-13 | Advanced Risc Mach Ltd | Management of data processing security in a secondary processor |
CN104813306B (zh) | 2012-11-21 | 2017-07-04 | 相干逻辑公司 | 具有散布处理器dma‑fifo的处理系统 |
US9536075B2 (en) * | 2013-03-01 | 2017-01-03 | Infineon Technologies Ag | Dynamic resource sharing |
US9092647B2 (en) * | 2013-03-07 | 2015-07-28 | Freescale Semiconductor, Inc. | Programmable direct memory access channels |
US10181946B2 (en) | 2015-07-20 | 2019-01-15 | Intel Corporation | Cryptographic protection of I/O data for DMA capable I/O controllers |
US10241946B2 (en) * | 2017-01-18 | 2019-03-26 | Nxp Usa, Inc. | Multi-channel DMA system with command queue structure supporting three DMA modes |
US10191871B2 (en) * | 2017-06-20 | 2019-01-29 | Infineon Technologies Ag | Safe double buffering using DMA safe linked lists |
US10496853B2 (en) | 2017-06-30 | 2019-12-03 | Phoenix Technologies Ltd. | Securing a host machine against direct memory access (DMA) attacks via expansion card slots |
US20190196967A1 (en) * | 2017-12-27 | 2019-06-27 | Samsung Electronics Co., Ltd. | Device including access controller, system on chip and system including the same |
GB201807589D0 (en) * | 2018-05-10 | 2018-06-27 | Nordic Semiconductor Asa | Memory access |
-
2020
- 2020-10-16 CN CN202011111422.8A patent/CN114385528A/zh active Pending
- 2020-10-22 TW TW109136671A patent/TWI774095B/zh active
-
2021
- 2021-09-29 US US17/488,637 patent/US11829310B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI318354B (en) * | 2004-12-14 | 2009-12-11 | Intel Corp | Programmable transaction initiator architecture for systems with secure and non-secure modes |
TW201710903A (zh) * | 2015-06-16 | 2017-03-16 | 英商.Arm股份有限公司 | 受保護異常處置 |
US20170371808A1 (en) * | 2016-06-24 | 2017-12-28 | Hewlett Packard Enterprise Development Lp | Direct memory access encryption with application provided keys |
CN110609799A (zh) * | 2019-09-11 | 2019-12-24 | 天津飞腾信息技术有限公司 | 一种面向片外非易失性存储的安全防护方法 |
Also Published As
Publication number | Publication date |
---|---|
US20220121588A1 (en) | 2022-04-21 |
US11829310B2 (en) | 2023-11-28 |
CN114385528A (zh) | 2022-04-22 |
TW202217585A (zh) | 2022-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10943635B2 (en) | Memory device shared by two or more processors and system including the same | |
EP2568389B1 (en) | Coherence switch for i/o traffic | |
JP3790713B2 (ja) | 共用バス上の装置に対するトランザクションの選択的宛先設定 | |
US6671211B2 (en) | Data strobe gating for source synchronous communications interface | |
US20040199700A1 (en) | Virtual peripheral component interconnect multiple-function device | |
JP5893632B2 (ja) | ストリームトランザクション情報に基づいてページ管理ポリシーを適用するためのメモリコントローラ、システム、および方法 | |
US20070168616A1 (en) | Embedded dram cache memory and method having reduced latency | |
US8806232B2 (en) | Systems and method for hardware dynamic cache power management via bridge and power manager | |
WO2022116801A1 (en) | Peripheral component interconnect express protection controller | |
US10268416B2 (en) | Method and systems of controlling memory-to-memory copy operations | |
CN107257964B (zh) | Dram电路、计算机系统和访问dram电路的方法 | |
KR20170013882A (ko) | 플래시 메모리 기반 저장 디바이스의 멀티 호스트 전력 제어기(mhpc) | |
US7376850B2 (en) | Methods of computer power status management and computers utilizing the same | |
JP2019522257A (ja) | 低電力メモリのスロットリング | |
JP2017016660A (ja) | マスタサイドフィルタを含むキャッシュコヒーレントシステムとそれを含むデータ処理システム | |
US11995351B2 (en) | DMA engines configured to perform first portion data transfer commands with a first DMA engine and second portion data transfer commands with second DMA engine | |
TWI774095B (zh) | 直接記憶體存取控制器、使用直接記憶體存取控制器之電子裝置以及操作直接記憶體存取控制器的方法 | |
TWI763089B (zh) | 直接記憶體存取控制器、使用直接記憶體存取控制器之電子裝置以及操作直接記憶體存取控制器的方法 | |
JP2001282631A (ja) | 書き込みデータの破壊を制限する方法及びシステムとpciバス・システム | |
US6587390B1 (en) | Memory controller for handling data transfers which exceed the page width of DDR SDRAM devices | |
JPH05181789A (ja) | ディジタル回路 | |
US8131893B2 (en) | Memory device that mediates mutual communication among a pluraliity of CPUs | |
TWI724004B (zh) | 應用處理器與其運作方法、及資料處理系統與其運作方法 | |
US6199123B1 (en) | Computer system for supporting increased PCI master devices without the requiring additional bridge chips | |
JPH1091568A (ja) | データ処理システムにおいてチップ選択可能な装置をアクセスする方法および装置 |