TWI763089B - 直接記憶體存取控制器、使用直接記憶體存取控制器之電子裝置以及操作直接記憶體存取控制器的方法 - Google Patents
直接記憶體存取控制器、使用直接記憶體存取控制器之電子裝置以及操作直接記憶體存取控制器的方法 Download PDFInfo
- Publication number
- TWI763089B TWI763089B TW109136672A TW109136672A TWI763089B TW I763089 B TWI763089 B TW I763089B TW 109136672 A TW109136672 A TW 109136672A TW 109136672 A TW109136672 A TW 109136672A TW I763089 B TWI763089 B TW I763089B
- Authority
- TW
- Taiwan
- Prior art keywords
- direct memory
- memory access
- mode
- dma
- privileged
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
- G06F13/30—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal with priority control
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/002—Bus
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/28—DMA
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Bus Control (AREA)
Abstract
本發明揭露一種直接記憶體存取控制器、使用直接記憶體存取控制器之電子裝置,以及操作直接記憶體存取控制器的方法。該直接記憶體存取控制器用來存取一記憶體,該記憶體包含一特權區域及一普通區域。該操作直接記憶體存取控制器的方法包含:找出該直接記憶體存取控制器中處於一閒置狀態的一直接記憶體存取通道;設定該直接記憶體存取通道之一模式暫存器的一暫存值,以令該直接記憶體存取通道操作於一特權模式;設定該直接記憶體存取通道之一地址暫存器及一計數暫存器;以及控制該直接記憶體存取通道基於該地址暫存器及該計數暫存器進行資料搬移。
Description
本發明是關於直接記憶體存取(direct memory access, DMA)控制器,尤其是關於共用DMA控制器,以及操作DMA控制器的方法。
電子裝置通常會將高優先權的資料儲存於記憶體中的特權區域(privilege area)(亦稱為特權記憶體(privilege memory)),並且將普通(即低優先權)的資料儲存於記憶體中的普通區域(normal area)(亦稱為普通記憶體(normal 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包含特權屬性(privilege 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)的其中一位元(例如位元0,即Pprot[0])。在其他的實施例中,設定介面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 |
|---|---|---|---|
| CN202011112673.8A CN114385529B (zh) | 2020-10-16 | 2020-10-16 | 直接记忆体存取控制器、使用其之电子装置以及操作其的方法 |
| CN202011112673.8 | 2020-10-16 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TWI763089B true TWI763089B (zh) | 2022-05-01 |
| TW202217577A TW202217577A (zh) | 2022-05-01 |
Family
ID=81186499
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW109136672A TWI763089B (zh) | 2020-10-16 | 2020-10-22 | 直接記憶體存取控制器、使用直接記憶體存取控制器之電子裝置以及操作直接記憶體存取控制器的方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US11860804B2 (zh) |
| CN (1) | CN114385529B (zh) |
| TW (1) | TWI763089B (zh) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20250139034A1 (en) * | 2023-10-31 | 2025-05-01 | Microsoft Technology Licensing, Llc | Probation of direct memory access device used for direct device assignment |
Citations (7)
| 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 |
| CN102884506A (zh) * | 2010-05-11 | 2013-01-16 | 高通股份有限公司 | 使用用于转换并存储数据值的指令来配置替代存储器存取代理 |
| TW201710903A (zh) * | 2015-06-16 | 2017-03-16 | 英商.Arm股份有限公司 | 受保護異常處置 |
| TW201738757A (zh) * | 2016-04-20 | 2017-11-01 | Arm股份有限公司 | 用於對能力元資料執行操作的設備及方法 |
| US20170351878A1 (en) * | 2005-12-23 | 2017-12-07 | Texas Instruments Incorporated | Methods and Systems to Restrict Usage of a DMA Channel |
| 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 (26)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6898646B1 (en) | 2000-05-03 | 2005-05-24 | Hewlett-Packard Development Company, L.P. | Highly concurrent DMA controller with programmable DMA channels |
| KR100389030B1 (ko) * | 2001-06-21 | 2003-06-25 | 삼성전자주식회사 | 다중 채널을 가진 고속 직접 메모리 억세스 컨트롤러 |
| EP1331539B1 (en) * | 2002-01-16 | 2016-09-28 | Texas Instruments France | Secure mode for processors supporting MMU and interrupts |
| US6898723B2 (en) * | 2002-04-01 | 2005-05-24 | Mitac International Corp. | Method for verifying clock signal frequency of computer sound interface that involves checking whether count value of counter is within tolerable count range |
| JP2004094452A (ja) * | 2002-08-30 | 2004-03-25 | Fujitsu Ltd | Dmaコントローラおよびdma転送方法 |
| JPWO2004079583A1 (ja) | 2003-03-05 | 2006-06-08 | 富士通株式会社 | データ転送制御装置およびdmaデータ転送制御方法 |
| US7904943B2 (en) * | 2004-12-28 | 2011-03-08 | O'connor Dennis M | Secure controller for block oriented storage |
| CN101558366B (zh) * | 2006-12-15 | 2012-11-21 | 密克罗奇普技术公司 | 直接存储器存取控制器 |
| 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 |
| US20110196994A1 (en) * | 2007-08-30 | 2011-08-11 | Panasonic Corporation | Dma control device and data transfer method |
| 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 | 한국전자통신연구원 | 직접 메모리 접근 제어기 및 직접 메모리 접근 채널의데이터 전송 방법 |
| CN104040510B (zh) | 2011-12-21 | 2017-05-17 | 英特尔公司 | 具备安全的直接存储器访问的计算设备及相应方法 |
| GB2501274B (en) * | 2012-04-17 | 2020-05-13 | Advanced Risc Mach Ltd | Management of data processing security in a secondary processor |
| US8943238B2 (en) * | 2012-05-18 | 2015-01-27 | Atmel Corporation | Operations using direct memory access |
| US8996926B2 (en) * | 2012-10-15 | 2015-03-31 | Infineon Technologies Ag | DMA integrity checker |
| CN103793342B (zh) * | 2012-11-02 | 2017-02-08 | 中兴通讯股份有限公司 | 一种多通道直接内存存取dma控制器 |
| 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 |
| JP6176058B2 (ja) * | 2013-10-29 | 2017-08-09 | 株式会社ソシオネクスト | ダイレクトメモリアクセス制御装置、その制御方法、及び情報処理システム |
| KR20150095139A (ko) * | 2014-02-12 | 2015-08-20 | 삼성전자주식회사 | 채널 버퍼로의 직접 접근이 가능한 직접 메모리 접근 컨트롤러 및 시스템. |
| US10181946B2 (en) | 2015-07-20 | 2019-01-15 | Intel Corporation | Cryptographic protection of I/O data for DMA capable I/O controllers |
| US10552619B2 (en) * | 2015-07-20 | 2020-02-04 | Intel Corporation | Technologies for secure trusted I/O access control |
| 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 |
| CN111149097B (zh) * | 2018-08-23 | 2022-09-06 | 深圳市汇顶科技股份有限公司 | 一种主芯片、从芯片及芯片间的dma传输系统 |
-
2020
- 2020-10-16 CN CN202011112673.8A patent/CN114385529B/zh active Active
- 2020-10-22 TW TW109136672A patent/TWI763089B/zh active
-
2021
- 2021-07-01 US US17/364,924 patent/US11860804B2/en active Active
Patent Citations (7)
| 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 |
| US20170351878A1 (en) * | 2005-12-23 | 2017-12-07 | Texas Instruments Incorporated | Methods and Systems to Restrict Usage of a DMA Channel |
| CN102884506A (zh) * | 2010-05-11 | 2013-01-16 | 高通股份有限公司 | 使用用于转换并存储数据值的指令来配置替代存储器存取代理 |
| TW201710903A (zh) * | 2015-06-16 | 2017-03-16 | 英商.Arm股份有限公司 | 受保護異常處置 |
| TW201738757A (zh) * | 2016-04-20 | 2017-11-01 | 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 |
|---|---|
| TW202217577A (zh) | 2022-05-01 |
| US11860804B2 (en) | 2024-01-02 |
| CN114385529A (zh) | 2022-04-22 |
| US20220121589A1 (en) | 2022-04-21 |
| CN114385529B (zh) | 2024-11-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP2568389B1 (en) | Coherence switch for i/o traffic | |
| JP6761870B2 (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 | |
| US20070168616A1 (en) | Embedded dram cache memory and method having reduced latency | |
| US20080201495A1 (en) | Handling dma operations during a page copy | |
| US8473717B2 (en) | Coprocessor reset controller with queue for storing configuration information of subsequent sessions prior to completion of current session | |
| US7590774B2 (en) | Method and system for efficient context swapping | |
| KR102789083B1 (ko) | 집단화된 메모리 장치에 대한 메모리 요청 스케줄링 | |
| CN107257964B (zh) | Dram电路、计算机系统和访问dram电路的方法 | |
| US20130054896A1 (en) | System memory controller having a cache | |
| US10268416B2 (en) | Method and systems of controlling memory-to-memory copy operations | |
| CN105988970A (zh) | 共享存储数据的处理器和芯片 | |
| CN112445423A (zh) | 存储器系统、计算机系统及其数据管理方法 | |
| US7096307B2 (en) | Shared write buffer in a peripheral interface and method of operating | |
| TWI763089B (zh) | 直接記憶體存取控制器、使用直接記憶體存取控制器之電子裝置以及操作直接記憶體存取控制器的方法 | |
| US20240296128A1 (en) | Efficient input/output memory management unit | |
| TWI774095B (zh) | 直接記憶體存取控制器、使用直接記憶體存取控制器之電子裝置以及操作直接記憶體存取控制器的方法 | |
| JPH05181789A (ja) | ディジタル回路 | |
| US6587390B1 (en) | Memory controller for handling data transfers which exceed the page width of DDR SDRAM devices | |
| EP1125191A1 (en) | Controlling access to a primary memory | |
| US10180847B2 (en) | Circuitry for configuring entities | |
| JP4062478B2 (ja) | デバイスアクセス方法 | |
| JPH0512121A (ja) | データ処理装置 | |
| JP2004145593A (ja) | ダイレクトメモリアクセス装置およびバスアービトレーション制御装置、ならびにそれらの制御方法 | |
| JPH02307123A (ja) | 計算機 |