TWI443519B - 用於直接記憶體存取之系統、用於實行一資料傳輸之方法及微控制器 - Google Patents

用於直接記憶體存取之系統、用於實行一資料傳輸之方法及微控制器 Download PDF

Info

Publication number
TWI443519B
TWI443519B TW096147710A TW96147710A TWI443519B TW I443519 B TWI443519 B TW I443519B TW 096147710 A TW096147710 A TW 096147710A TW 96147710 A TW96147710 A TW 96147710A TW I443519 B TWI443519 B TW I443519B
Authority
TW
Taiwan
Prior art keywords
dma
bus
channel
dma controller
cpu
Prior art date
Application number
TW096147710A
Other languages
English (en)
Other versions
TW200844749A (en
Inventor
Joseph W Triece
Rodney J Pesavento
Gregg D Lahti
Steven Dawson
Original Assignee
Microchip Tech Inc
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 Microchip Tech Inc filed Critical Microchip Tech Inc
Publication of TW200844749A publication Critical patent/TW200844749A/zh
Application granted granted Critical
Publication of TWI443519B publication Critical patent/TWI443519B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/32Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
    • G06F13/34Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer with priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • G06F13/285Halt processor DMA
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • G06F13/30Handling 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Microcomputers (AREA)
  • Bus Control (AREA)

Description

用於直接記憶體存取之系統、用於實行一資料傳輸之方法及微控制器
本申請案技術領域係關於一種直接記憶體存取控制器。
在微處理器系統、整合式微控制器等等中典型使用直接記憶體存取控制器(DMA)。使用DMA控制器以獨立於電腦系統之中央處理單元來執行自記憶體至周邊裝置與自周邊裝置至記憶體之資料傳送。為此目的,可將DMA控制器視為具有有限能力的第二可程式化處理單元。一般而言,指示DMA控制器傳送來自來源位置的特定量之資料至目的地位置。來源可係在記憶體內,例如,微控制器的資料記憶體、周邊裝置的記憶體或由周邊裝置產生或在周邊裝置內可存取的資料,諸如類比轉數位轉換器、埠、擷取比較單元等周邊裝置。目的地亦可係在記憶體內,因此允許在電腦系統或微控制器的記憶體裝置內高速傳送。但是,目的地亦可係周邊裝置,諸如數位轉類比轉換器、埠等。為了傳送來自來源的資料至目的地,DMA控制器必須接收各自的來源位址與目的地位址。此外,需要指定每一傳送長度。為此目的,DMA控制器需要接收資料傳送的長度或待傳送之資料的開始與結束位址。
另外,使用DMA控制器以支援系統中的中央處理單元(CPU),尤其對於冗長的資料傳送。接著,使CPU可用於執行其它功能。但是,CPU與DMA控制器共用相同的記憶體匯流排系統。因此,為了阻止在存取匯流排時介於CPU 與DMA之間的任何類型衝突(其可使DMA受到CPU拖延時間),DMA的優先權通常優先於CPU,當正在進行傳送時,禁止CPU存取記憶體匯流排。即使CPU可執行未涉及存取共用之記憶體匯流排的其它功能,此DMA優先權仍然可限制系統彈性。因此,需要一種具有DMA控制器的改良系統。
根據一項具體實施例,一種系統可具有:至少一匯流排;一中央處理器(CPU),其耦合至該匯流排;一記憶體,其耦合至該匯流排;一直接記憶體存取(DMA)控制器,其具有複數個DMA通道並且其運作獨立於該CPU並且係耦合至該匯流排,其中為了存取該匯流排,該DMA控制器係可程式化用以:於一第一模式中,具有高於該CPU之優先權;於一第二模式中,使該DMA控制器之至少一DMA通道暫停存取該匯流排。
根據進一步具體實施例,該系統可進一步包括:一控制暫存器,其耦合至該DMA控制器並且用於程式化該DMA控制器,該控制暫存器包括一用於設定該第一模式或該第二模式之位元。根據進一步具體實施例,該第一模式或該第二模式係可透過饋送至該DMA控制器之一控制訊號程式化。根據進一步具體實施例,該複數個DMA通道之每一者可具有一受指派之優先權層級。根據進一步具體實施例,該DMA控制器可對於每一通道包括一通道控制暫存器。根 據進一步具體實施例,每一通道控制暫存器可包括一可程式化位元,該可程式化位元控制是否啟用或停用該通道。根據進一步具體實施例,該第一模式或該第二模式係可透過饋送至該DMA控制器之一控制訊號程式化,該控制訊號包括一優先權層級。
根據另一具體實施例,一種用於在耦合至一主控裝置及一直接記憶體存取(DMA)控制器的一匯流排上實行一資料傳輸之方法;該方法可包括下列步驟:-應對一DMA資料傳輸之請求,授予該DMA控制器存取該匯流排;-程式化該DMA控制器以暫停該DMA資料傳輸;-授予該主控裝置存取該匯流排;-由該主控裝置實行至少一匯流排存取;-程式化該DMA控制器以重新繼續該DMA資料傳輸。
根據進一步具體實施例,程式化該DMA控制器之該等步驟可係由一可組態暫存器予以實行。根據進一步具體實施例,程式化該DMA控制器之該等步驟可係藉由設定及重新該可組態暫存器中之一位元予以實行。根據進一步具體實施例,程式化該DMA控制器之該等步驟可係藉由饋送一控制訊號至該DMA控制器予以實行。根據進一步具體實施例,該控制訊號可自饋送至該主控裝置的一例外訊號予以產生。根據進一步具體實施例,如果在已起始暫停之前該DMA控制器已起始該資料傳輸之一資料傳送,則該系統可終止該資料傳送並且接著暫停該DMA控制器之存取。根據進一步具體實施例,該主控裝置可係一中央處理單元 (CPU),並且該程式化步驟係由該CPU予以實行。根據進一步具體實施例,該主控裝置可係一周邊裝置,並且該程式化步驟可係由一中央處理單元予以實行。
根據另一具體實施例,一種微控制器可包括:至少一匯流排;一中央處理器(CPU),其耦合至該匯流排;一記憶體,其耦合至該匯流排;複數個周邊裝置,其耦合至該匯流排;以及一直接記憶體存取(DMA)控制器,其運作獨立於該CPU並且係耦合至該匯流排,其中為了存取該匯流排,該DMA控制器係可程式化用以:於一第一模式中,具有高於該CPU及該複數個周邊裝置之優先權;於一第二模式中,使該DMA控制器之至少一DMA通道暫停存取該匯流排。
根據進一步具體實施例,該微控制器可進一步包括:一控制暫存器,其耦合至該DMA控制器並且用於程式化該DMA控制器,該控制暫存器包括一用於設定該第一模式或該第二模式之位元。根據進一步具體實施例,該第一模式或該第二模式係可透過饋送至該DMA控制器之一控制訊號程式化。根據進一步具體實施例,該控制訊號可自饋送至該中央處理單元的一例外訊號予以產生。根據進一步具體實施例,該DMA控制器可包括複數個DMA通道。根據進一步具體實施例,該DMA控制器可對於每一通道包括一通道控制暫存器。根據進一步具體實施例,每一通道控制暫存器可包括一可程式化位元,該可程式化位元控制是否啟 用或停用該通道。根據進一步具體實施例,每一通道控制暫存器可包括一可程式化位元欄位,該可程式化位元欄位判定一DMA通道之一優先權。
根據另一具體實施例,一種用於在耦合至一主控裝置及一直接記憶體存取(DMA)控制器的一匯流排上實行一資料傳輸之方法,該DMA控制器具有複數個DMA通道;該方法包括下列步驟:-將一優先權層級指派給該複數個DMA通道之每一者;-應對一DMA資料傳輸之請求,將該DMA控制器對該匯流排之存取授予給該複數個DMA通道之一者;-饋送具有一優先權層級之一暫停命令至該DMA控制器;-如果該暫停命令中之該優先權層級高於具有對該匯流排之存取的該DMA通道的一優先權層級,則-使具有低於該暫停命令中之該優先權層級之優先權之任何DMA通道暫停存取該匯流排;以及如果無任何其它DMA通道具有對該匯流排之存取,則-授予該主控裝置存取該匯流排;-由該主控裝置實行至少一匯流排存取;以及-饋送一重新繼續命令至該DMA控制器,以重新繼續該DMA資料傳輸。
根據進一步具體實施例,該DMA控制器係可運作以循環處理具有相同優先權層級之DMA通道的多個DMA通道處理程序。
熟悉此項技術者可從接下來的附圖、實施方式及申請專利範圍明白本揭示內容的其他技術優點。本申請案之各種 具體實施例可獲得僅所提出之優點的子集。無任一優點係具體實施例之關鍵。
根據一項具體實施例,如上文所述,DMA控制器與CPU共用相同的資料與位址匯流排,以用於傳送資料往返於記憶體。CPU與DMA控制器兩者皆可對匯流排之存取。因此,CPU或DMA控制器可係主控者(master)。另外,複數個周邊裝置係可組態以存取匯流排並且變成該匯流排上的主控者或從屬者。系統可憑藉"先到優先"優先權或使用指派之優先權來授予對匯流排之存取。"先到優先"優先權方案將對匯流排之存取授予給首先請求存取者。所有其它請求者必須等待並且將依其請求順序循序給予存取。但是,大多數系統使用指派式優先權方案,其中每一可能的主控者之受指派存取優先權可優先於較低優先權。一般而言,在此類系統中,DMA控制器具有最高優先權。因此,如果CPU或周邊裝置主控者及DMA控制器正在主動企圖授予匯流排,則DMA控制器之存取匯流排的優先權一般優先於所有其它可能的主控裝置。因此,透過DMA控制器進行資料傳送的任何啟動將使CPU或周邊裝置受到時間拖延。根據一項具體實施例,DMA控制器經設計成為可程式化,其方式使得CPU可(例如)藉由設定專用控制暫存器中的位元來暫停DMA控制器之資料傳送。
但是,可提供其它控制機制以暫停DMA控制器,例如, 透過介於CPU與DMA控制器之間的專用控制線。舉例而言,當CPU接收一中斷或其它例外狀況(exception)時,CPU必須藉由將資料推入至共用記憶體中的堆疊來變更內容。如果CPU提供例外狀況層級(exception level)訊號,則DMA可使用該訊號來暫停其活動,允許CPU較快速地儲存其內容並且較快速地獲得對服務常式之存取。
亦可允許DMA控制器在一事件(諸如中斷)上喚醒,同時數位裝置中的中央CPU及相關邏輯維持在電源關閉或睡眠模式中。以此方式,DMA邏輯或DMA控制器可服務請求,同時CPU及相關邏輯係在睡眠模式中。當抵達緩衝器計數或以其它方式判定傳輸結束時,則(例如)藉由另一中斷訊號來喚醒處理器,並且CPU退出電源關閉模式或睡眠模式。
習知數位裝置當前回應事件之方式為喚醒處理器核心或整個系統並且透過各別中斷系統來執行各別指令。此耗時且導致消耗更多電流以供電給CPU及程式記憶體,以在回到睡眠模式之前執行服務常式。根據一項具體實施例,僅喚醒DMA控制器以服務非同步事件,允許CPU、程式記憶體及非該服務所需的其它組件維持在低度電力狀態,同時服務該事件。事件通常僅僅讀取周邊裝置內容並且將值儲存於本端記憶體中。這可單獨由DMA控制器來達成。根據一項具體實施例,在服務事件後,DMA控制器回到睡眠模式。
在一晶片微控制器或系統可具有下列模式(可透過各自受控中斷系統或其它適合控制來實施彼等模式)。在執行模式中:所有區塊按對於所有周邊裝置與中央處理單元的各自組態值進行執行。在此模式中,CPU係作用中狀態並且耗電。在第一低度電力模式(閒置模式)中:處理器時脈停止並且僅消耗待命電力,舉例而言,該時脈可被閘控關閉(gated off)。匯流排矩陣上的匯流排時脈繼續執行。快閃程式記憶體係處於待命模式中。中斷事件啟動僅DMA控制器,或使DMA控制器處於全速度並且處理器時脈具有降低之時脈。在第二低度電力模式(睡眠模式)中:處理器時脈及匯流排時脈停止。快閃程式記憶體被停止供電。非同步中斷事件啟動僅DMA控制器之時脈。在其它具體實施例中,可提供更多模式,在彼等模式中僅某些裝置接收區塊並且因此係運作狀態。
習知技術數位裝置不具有未啟用CPU而退出低度電力模式的能力。根據下文更詳細說明之具體實施例,DMA控制器可依偽同步於系統時脈之個別的系統時脈執行。此時脈於程式化外部事件(舉例而言,諸如中斷)以喚醒DMA時將被啟用。於此處理程序期間不需要啟用CPU,這節省電力。根據一項具體實施例,每次DMA控制器完成一傳輸時,使儲存次數n的暫存器增加1。一旦已記錄DMA事件的預先定義次數n>=1,則可用中斷事件警示CPU。根據一具體實施例,中斷控制器可偵測周邊裝置(USB或乙太網路) 之事件,並且喚醒彼等周邊裝置至(例如)閒置模式,從而彼等周邊裝置可將其緩衝器寫入系統資料隨機存取記憶體(RAM)。因此,如果於睡眠模式期間發生DMA事件,則僅DMA控制器及資料記憶體與(視需要)各自之周邊裝置自睡眠模式切換至作用中模式。因此,僅對DMA處理程序所需的系統組件應請求而啟動,並且一旦已完成請求將再次予以撤銷啟動。
請參閱附圖,現在將說明本申請案的較佳具體實施例。圖1繪示在電腦系統內DMA控制器(諸如微控制器100)之典型具體實施例的方塊圖;一般而言,微控制器100包括(例如)一經由匯流排矩陣120耦合至系統組件及周邊裝置的中央處理單元(CPU)110。透過匯流排矩陣120,CPU 110與複數個周邊裝置i至k 145...150直接通信及/或透過周邊橋接器180與複數個周邊裝置n至m 165...170通信。周邊裝置可係諸如如下(但不限於)裝置:I/O埠;記憶體;A/D轉換器與D/A轉換器;計時器;脈寬調變器等等。可提供一中斷控制器155,其控制中斷訊號以用於提供非同步啟動CPU 110內之中斷常式。可使用中斷訊號以中斷當前執行之指令流,並且強制CPU 110分支至各自中斷服務常式。亦可使用中斷訊號來控制DMA控制器125之功能性,舉例而言,啟動新通道傳輸。但是,此外,亦可使用中斷訊號來喚醒CPU 110、DMA控制器125及其它周邊裝置。匯流排矩陣120可提供一專用中斷匯流排以運送彼等訊號。中斷控制 器155可被程式化以遮罩某些中斷層級,舉例而言,用以防止某些中斷訊號中斷或喚醒CPU 110。
另外,可在匯流排矩陣120內提供一專用記憶體匯流排,以經由一快取區130耦合CPU 110與一快閃程式記憶體135。一資料隨機存取記憶體(RAM)140亦可經由匯流排矩陣120而耦合至CPU 110。圖中以數字125來繪示一直接記憶體存取控制器(DMA)。該DMA控制器125亦耦合至匯流排矩陣120,以允許介於耦合至匯流排矩陣120之裝置之間的資料傳送。在匯流排矩陣120內,DMA單元可透過各種匯流排而耦合至記憶體140及周邊裝置145...150與165...170。另外,DMA控制器125可透過匯流排矩陣120接收來自CPU 110的複數個控制訊號。一系統時脈裝置115直接或透過匯流排矩陣120中之各自的控制訊號提供各種時脈訊號至CPU及需要一時脈的所有單元。根據一具體實施例,為了允許CPU與DMA控制器之獨立運作,為CPU與DMA控制器提供兩個或多個獨立時脈訊號。亦可透過匯流排矩陣120來提供不同時脈給其它系統組件。替代做法為,系統內的每一組件可運作以控制自己的電力模式。為此目的,匯流排矩陣120可包括一專用電源控制匯流排,該專用電源控制匯流排耦合至一電源管理單元175,其包括單個或多個控制訊號、電力模式訊號及指示哪些單元正運作於哪一電力模式的控制訊號。但是,替代做法為,電源管理單元可直接控制所有單元。
此類系統允許在不需要涉及CPU 110情況下由DMA控制器125進行介於耦合至12之任何周邊裝置145...150與165...170之間的資料傳送,以及介於彼等周邊裝置145...150、165...170與記憶體140之間或記憶體內140的資料傳送。通常僅為了初始化DMA控制器125及一旦已傳送資料隨即予以處理才需要CPU 110。一旦DMA控制器125被程式化,則不需要CPU 110輔助來適當導引資料傳送。接著,使CPU 110可用於執行其它任務。為此目的,實行平行DMA傳送的系統通常不變更相關聯於該系統之單元的電源管理,原因係(舉例而言)在一些情況中,CPU 110可實行獨立功能,同時DMA控制器125實行資料傳送。電源管理單元175允許裝置之彈性控制。因此,取決於省電模式,可關閉該系統的不同單元。該等省電模式之電力消耗自高至低變化。CPU 110在大多數省電模式中通常係處於作用中狀態並且可以不同時脈速度運作。一般而言,僅在最高省電模式中,才完全關閉CPU 110。
根據一項具體實施例,具有CPU 110及DMA控制器125的系統允許特定模式,在該特定模式中,可與CPU 110分離地啟動DMA控制器125,並且在該特定模式中,CPU 110可同時進入從降低之時脈速度至完全撤銷啟動的不同層級省電模式。根據具體實施例,一旦CPU 110與DMA控制器125進入較高層級省電模式(諸如CPU 110與DMA控制器125被停止的靜態模式),隨即透過DMA傳送請求獨立地 數動DMA控制器125。此類請求可(例如)透過一自各中斷訊號予以產生。一旦接收到此類傳送請求,DMA控制器125將運作。為此目的,若需要,電源管理單元可喚醒DMA控制器125及一或多個請求之周邊裝置。但是,在一項具體實施例中,中斷訊號就其本身而言可啟動DMA控制器125。甚至於省電模式期間記憶體140可已經處於作用中狀態,但若非處於作用中狀態,則若需要亦可予以重新啟動。一旦各自DMA傳送所需的所有單元係作用中狀態,則DMA控制器125適當地開始DMA傳送。於此時間期間,CPU及非處理程序所需的其它裝置維持在其各自睡眠模式中。這可藉由(舉例而言)遮罩中斷層級來達成,遮罩中斷層級之方式致使各自中斷層級僅啟動DMA控制器125並且不啟動CPU 110。DMA控制器125監視並且控制傳送,以及直接或透過電源管理單元175發送訊號至CPU 110,該訊號將喚醒CPU 110。舉例而言,在一項具體實施例中,一旦DMA傳輸完成,DMA控制器125可產生層級充分高以喚醒CPU 110的中斷。因此,接著,CPU可進一步處理已傳送之資料。一旦CPU 110完成任何必要處理,CPU 110可再次進入各自省電模式。再者,在DMA控制器125已服務DMA請求之後,其可重新進入睡眠模式或低度電力模式。在一項具體實施例中,僅如果已完成預先決定數量之DMA傳輸才起始用於CPU 110之喚醒處理程序。為此目的,提供各自之暫存器,每次已完成一DMA傳輸時,使該暫存器 增加1。僅如果此暫存器的內容高於或等於一預定次數n>=1才產生用於喚醒CPU 110的中斷訊號。
在另一項具體實施例中,一特殊暫存器可包括一起始CPU 110之啟動的位址或資料。此具體實施例對於如果CPU 110自睡眠模式轉變至作用中模式需要顯著時間量有所用處。因此,一中間位址(其被設定至介於傳輸之開始與結束位址的預先定義數目個記憶體地點)可觸發CPU 110之重新啟動。因此,每當已完成DMA傳送時,CPU將成為作用中狀態,而無(例如)起因於振盪器啟動時間的任何進一步延遲。作為特殊暫存器之替代,可使用一控制暫存器中的一位元欄位來定義對該結束位址的一位移,其可用於在已完成DMA傳輸之前產生一喚醒訊號。
圖2繪示在匯流排矩陣120內使用的一匯流排200之一些匯流排訊號。舉例而言,匯流排可包括慣用位址與資料訊號以及複數個控制訊號。在複數個控制訊號之中,該等控制訊號可包括(如圖所示):複數個中斷訊號,用於定義具有不同優先權/層級的中斷訊號;一特定訊號,用於指示睡眠模式;以及相關聯之模式訊號,其指示待進入的睡眠模式類型。可包括指示出哪一些單元應進入各自睡眠模式的其它訊號。圖2亦繪示在特定單元無法被個別指派不同電力模式的系統中可使用的專用CPU時脈訊號及個別之DMA時脈訊號之實例。底部控制線指示出在微處理器或微控制器中慣常實施的其它控制訊號。
圖3繪示DMA控制器之具體實施例。複數個DMA通道350...360經提供並且受控於控制匯流排340,諸如中斷請求控制匯流排。該等DMA通道350...360耦合至匯流排310,以接收資料及位址。具體而言,一位址解碼器320接收位址並且與各自控制暫存器330相比較,以控制DMA傳送的功能性。可使用一多工器370以控制各自通道350...360的輸出。控制器380控制多工器370並且因此控制流動通過後續匯流排矩陣介面390之資料。圖3所示之具體實施例可受控於各自中斷訊號。舉例而言,可使用中斷訊號來起始透過各自通道的傳送。為此目的,每個頻道可被指派一各自中斷層級。可使用一中斷層級子集,並且DMA控制器125係可程式化以指派某些中斷層級給各自傳送通道。另外,DMA控制器係可程式化以在下列狀況下產生複數個中斷訊號:在完成一傳輸後;抵達一傳輸中的一定點,諸如傳送一通道緩衝器之一半;抵達一通道緩衝器內的一預先定義點;或匹配一待傳送的預先定義資料型樣。可實施其它中斷控制訊號。
圖4繪示DMA控制器125內之通道之具體實施例的更多細節。根據一項具體實施例,DMA控制器125可具有靜態設計並且因此可接收其自己的DMA時脈訊號490,可使用DMA時脈訊號490來直接控制電力模式,舉例而言:在高度電力模式中,裝置將接收最高時脈速度;在最低電力模式中無任何時脈訊號;及中間電力模式可包括各種中間時 脈速度。DMA控制器125可包括可程式化閘,其接收時脈訊號,並且可在進入睡眠模式後隨即封鎖時脈訊號,以及在接收到中斷喚醒訊號後隨即開啟彼等閘。DMA控制器125進一步包括一資料暫存器或鎖存器410a及一相關聯之位址暫存器或鎖存器440a,440b,該兩者耦合至匯流排矩陣120內的一接收匯流排470與一傳輸匯流排480。圖4以虛線標示接收匯流排470及傳輸匯流排480可合為一並且係同一者,諸如圖2中之匯流排200。但是,在另一具體實施例中,DMA控制器125亦可經組態成在兩個不同匯流排之間通信。在此具體實施例中,接收匯流排470可係(例如)如圖3所示之匯流排301,以及傳輸匯流排480可係經連接至如圖3所示之匯流排矩陣介面390的另一匯流排。兩資料暫存器或鎖存器410a及位址暫存器或鎖存器440a,440b皆耦合至彼等匯流排。替代做法為,可對於傳輸與接收利用分開的暫存器。由於來源與目的地位址通常不同,所以如圖3所示之分開的位址暫存器440a與440b有所用處。資料暫存器410a及傳輸及/或接收暫存器440a,440b可進一步耦合至比較器420及450,以判定資料與位址之匹配。
於DMA資料傳送期間,DMA控制器125可經程式化以傳送特定量之資料至一目的地,該特定量之資料可開始於一來源開始位址並且結束於一來源結束位址,其亦可開始於一目的地開始位址並且結束於一目的地結束位址。為此目的,舉例而言,來源開始位址被載入至暫存器440a,並且 目的地開始位址被載入至暫存器440b。DMA控制器125進一步接收待傳送之資料區塊的長度或一來源結束位址。如果使用來源結束位址,則此位址被載入至各自暫存器440c中,該暫存器440c耦合至一比較器單元450。替代做法為,可使用目的地結束位址或如上文所述的資料區塊長度來判定傳送結束。一旦已實行此類示範性初始化,則資料傳送適當地發生。DMA控制器125進一步可包括另一暫存器440d,可使用該暫存器440d來定義一特定中間位址,以用於產生一傳送已抵達一定點之訊號。為此目的,此暫存器440d可被預設為一位址,該位址指示出一傳送緩衝器的中間點或該緩衝器內的任何其它點。比較器單元450可包括一群組之比較器或可經組態以在比較不同暫存器內容後隨即產生個別之訊號。可使用該等比較器輸出訊號來產生特定之中斷訊號。
在下文中解說使用單個匯流排的傳送。DMA控制器125將第一位址(儲存在暫存器440a中的來源開始位址)置於該匯流排上。此位址可係在一記憶體或耦合至該匯流排的任何裝置內。接著,相關聯之資料被傳送至資料暫存器410a中。在一後續步驟中,解除暫存器440a與該匯流排之耦合,並且使暫存器440b耦合至該匯流排。替代做法為,如果僅使用一個位址暫存器,則將目的地開始位址載入至該位址暫存器。因此,該目的地位址現在被置於該匯流排上以定址各自目的地,諸如一記憶體或耦合至該匯流排的任 何裝置。儲存在暫存器410a中的資料被傳送至該目的地位址。接著累加來源位址暫存器440a及目的地位址暫存器440b,並且重複處理程序直到該來源位址暫存器440a含有來源結束暫存器。此傳輸結束可(例如)藉由比較器450(其比較位址暫存器440a與暫存器440c之內容)予以偵測。可使用暫存器440d來產生中間訊號,該中間訊號指示出已抵達傳輸的一定狀態/時間。
此外,DMA控制器125允許有條件式傳送,其一旦已接收到一特定型樣(諸如一預先定義資料位元組)隨即停止傳送。為此目的,DMA控制器125包括一進一步型樣暫存器410b。在初始化之後,隨即將一型樣(諸如一特定位元組)載入至該暫存器410b。一旦比較器420偵測到介於暫存器410a中載入之資料與型樣暫存器410b之間的匹配,則產生一各自訊號430,該訊號430向DMA控制器125指示出已抵達傳輸結束。為了防止無盡的傳輸,除了定義一最大傳送外,亦可使用位址比較器450。
因此,一般而言,根據此具體實施例之DMA控制器125允許兩種不同類型處理程序。第一處理程序被定為固定長度傳輸,其允許DMA控制器傳送一經定義區塊之資料。第二處理程序具有一開放式長度,並且其長度係藉由一特定型樣予以定義。舉例而言,亦可藉由一特定符號來定義傳輸結束。另外在另一具體實施例中,一符號序列可定義傳輸結束。因此,更具彈性定義傳輸結束係可行的。舉例而 言,作為單個位元組之替代,可使用一含兩個位元組的序列,諸如復位(CR)換行(LF)序列。為此目的,可提供複數個暫存器,該複數個暫存器係用各自序列予以程式化。可用一最大傳送長度來增強第二處理程序類型,以避免無盡的傳送迴圈並且因此提供額外安全性。
圖5繪示DMA控制器125之另一示範性具體實施例。在此具體實施例中,提供一來源暫存器510及一目的地位址暫存器520。另外,一長度/最大長度暫存器530耦合至一比較器580,其可產生一結束位址偵測訊號EndAddr。比較器580另外耦合至一計數器570。一型樣暫存器540耦合至另一比較器550,該比較器550亦連接至一資料暫存器560,該資料暫存器560接收及傳輸適當的資料Din 與Dout 。比較器550產生一訊號Match,其接著可產生一傳輸結束訊號EofTrans。可提供多個型樣暫存器540及相關聯之比較器,如使用虛線之各自元件所標示。可提供介於該等暫存器與該等比較器之間的各自邏輯,以允許不同類型之傳輸。作為一項實例,圖5繪示一第一可控制式驅動器585,其接收來自比較器580之訊號EndAddr。驅動器585的輸出耦合至一OR閘590之一第一輸入。一第二可控制式反轉器555接收來自比較器550的訊號Match。驅動器555的輸出耦合至OR閘590之第二輸入。因此,OR閘590的輸出提供一傳輸結束訊號EofTrans。可使用此訊號來控制一資料傳送。另外,此訊號可被饋送至一電源管理單元175。
替代做法為,提供比較器單元565以比較來源或目的地位址暫存器510,520與結束位址暫存器595,以直接產生一傳輸結束訊號EofTrans。在另一項具體實施例中,提供位移暫存器545,使用其內容以自結束位址暫存器595減去一位移,用以產生一獨立之提早喚醒訊號,將於下文更詳細描述。作為進一步替代方案,使用喚醒位址暫存器575來取代位移暫存器545。在此具體實施例中,藉由比較比較來源或目的地位址暫存器510,520與結束位址暫存器595來產生傳輸結束訊號EofTrans,以及藉由比較比較來源或目的地位址暫存器510,520與喚醒位址暫存器575來產生喚醒訊號WakeUp。
根據另一具體實施例,此外,可提供控制暫存器515(其儲存一預先定義可程式化次數n)及暫存器535(其充當一計數器並且計數DMA控制器所執行的傳輸次數)。該兩者暫存器的內容係由比較器525予以比較並且將結果饋送至電源管理單元175。暫存器515儲存整數n,該整數n係由使用者透過CPU 110予以程式化。在設定系統成為睡眠模式之後,隨即重新暫存器535為DMA#=0。如果在睡眠模式期間接收到一DMA請求,則重新啟動DMA控制器及DMA傳輸所需的各自裝置。如果已完成一傳輸,則累加暫存器535且因此累加DMA#。比較器525比較暫存器515與535的內容並且發送一結果至電源管理單元175。如果DMA#>=n,則電源管理單元175產生喚醒訊號。否則,使DMA控制器125 回到睡眠模式直到下一DMA請求到達。
可在不同模式中實行DMA傳輸。在第一模式中,驅動器555被控制以解除比較器550與OR閘590之耦合,在OR閘590之第二輸入處產生一恆定邏輯低訊號,並且驅動器585被控制以使比較器580耦合至OR閘590。將各自來源開始位址及目的地開始位址載入至暫存器510與520。將待傳輸之資料區塊的長度址載入至暫存器530,並且將計數器570重設至0。接著可開始資料傳送。為此目的,藉由暫存器510所定址的資料被載入至暫存器560中並且被寫入至暫存器520中所包含的位址。接著,使暫存器510與520累加所傳輸之資料的大小。舉例而言,如果資料暫存器係一位元組寬之暫存器,則使暫存器510與520累加1。如果資料暫存器係一16位元暫存器,則使暫存器510與520累加2,以此類推。相應地累加計數器570。比較器580比較計數器570之計數值與暫存器530。重複資料傳送直到該計數值匹配暫存器530之內容。如果達成此一匹配,則EndAddr訊號變成邏輯高,並且OR閘590的輸出將變高,以指示出一傳輸結束EofTrans。結果,停止DMA控制器。
在第二模式中,驅動器585被控制以解除比較器580與OR閘590之耦合,在OR閘590之第一輸入處產生一恆定邏輯低訊號,並且驅動器555被控制以使比較器550耦合至OR閘590。在此模式中,再次將各自開始位址載入至來源暫存器510與目的地暫存器520。此外,將預先定義型樣載 入至型樣暫存器540。再次,開始DMA傳送,並且將關聯於來源暫存器的第一資料載入至資料暫存器560中,並且與型樣暫存器540比較。如果一匹配發生,則比較器550在其輸出處產生一高訊號,其造成OR閘590之輸出處之一高訊號並且指示出傳輸結束。否則,累加暫存器510與520,並且傳送繼續直到介於所傳輸之資料與型樣暫存器540之間發生匹配。在第三模式中,驅動器555及585皆被啟動以使比較器550及580耦合至OR閘590。在此模式中,再次將各自開始位址載入至暫存器510與520。另外,一最大長度值被載入至資料暫存器530中,並且一型樣被載入至暫存器540中。如上文所述,資料傳送發生。但是,傳輸結束係由比較器550或580產生。
在CPU 110係作用中狀態或暫停時,或當CPU 110處於睡眠模式而DMA控制器125及各自周邊裝置係作用中狀態時,可執行所有DMA傳送。接著使用電源管理單元175以控制進一步處理程序。為此目的,EofTrans訊號亦可被轉遞至電源管理單元175。電源管理單元175可包括一各自之暫存器,其可經程式化以取決於如上文所述之DMA傳輸次數或取決於通道、周邊裝置等等而產生一喚醒訊號(該喚醒訊號被發送至CPU 110)。因此,在CPU 110必須立即處理一特定DMA傳送之資料的程式化模式中,假使CPU 110本來係處於睡眠模式或暫停模式,則電源管理單元175將在完成各自之DMA傳輸後,隨即喚醒CPU 110。一旦CPU 110已完成其資料處理,並且如果已請求,CPU 110可依據其進一步程式化而再次進入睡眠模式或暫停模式。同樣地,一旦已完成所有待決的傳輸,隨即使DMA控制器125回到各自之睡眠模式。
此外,當CPU 110及DMA控制器125兩者皆係作用中狀態時,通當DMA控制器125具有對任何匯流排存取的優先權。因此,當在一匯流排上傳送資料時,禁止CPU 110存取該同一匯流排並且因此受到時間拖延。相同的情況發生在可變成該匯流排上的主控者的周邊裝置。但是,有時候,允許CPU或另一周邊裝置存取當前被DMA控制器125使用之匯流排係重要的。為了允許此類存取,DMA控制器係可經由暫存器程式化成為暫停當前傳送。為此目的,CPU 110可設定DMA控制器內的一專用位元,以向DMA控制器125指示出DMA控制器125暫其當前傳送直到CPU 110重設該各自位元。作為使用一控制暫存器內的一專用位元之替代,如上文所述,可使用一專用控制線來使DMA控制器暫停其當前資料傳輸。另外,可使用一優先權方案,其中每一DMA通道及/或相關聯之DMA單元可被指派一特定優先權層級。一暫停訊號可包括一特定優先權層級。因此,僅低於該等定優先權層級的通道應CPU之請求而予以暫停。
因此,在偵測到一暫停訊號之後,DMA控制器125終止當前資料傳送,即,使在偵測到暫停位元/訊號之前已開 始的單個資料傳送完成。在另一具體實施例中,一已經開始的資料傳送被中止,而不需要完成該資料傳送。在完成或中止此類已經開始的傳送之後,使DMA控制器暫停任何進一步傳送,並且保持儲存其當前狀態。換言之,維護所有暫存器內容,同時DMA控制器係處於暫停模式。如果已中止資料傳送,則在傳送中止能夠重複中止的處理程序之後,將DMA控制器重設至各自狀態。在暫停模式期間,DMA控制器解除對用於傳送資料之使用的封鎖。就優先權方案而言,僅優先權高於暫停優先權的DMA處理程序將予以完成,並且接著DMA控制器切換進入暫停模式。因此,現在允許CPU 110或周邊裝置完全存取各自匯流排並且可傳送必要資料。在完成各目傳送之後,CPU 110可藉由下列方式釋出DMA暫停模式:重新控制暫存器中的各自位元;撤銷啟動各自控制訊號;或發送一具有最低優先權的暫停命令。此機制允許更具彈性控制對系統內匯流排的存取。因此,如果一定程式要求立即受到CPU或周邊裝置注意,則CPU可用可控制方式使DMA控制器暫停封鎖CPU的當前傳輸,並且CPU或周邊裝置可實行必要的存取。
圖6A及6B繪示用於控制DMA控制器125之通道的某些控制暫存器。舉例而言,根據圖6A,使用暫存器600DMACON控制DMA控制器之一般功能。位元15係用於啟動或撤銷啟動DMA控制器125。透過此位元,可啟用或停用DMA模組。位元14係用於:當設定此位元時,於除錯模 式期間"凍結" DMA;或當未設定此位元時,於除錯模式期間允許DMA傳送。位元13係用於:當設定此位元時,於睡眠模式期間凍結傳送;及當未設定此位元時,於睡眠模式期間允許傳送。位元12係用於動態控制DMA控制器125之暫停,如上文所述。為此目的,位元12可被設定至"1",以暫停DMA傳送並且允許CPU不中斷存取匯流排。當位元12被重設至"0"時,DMA控制器125正常運作,這將給予DMA控制器高於匯流排的優先權,藉此使CPU的任何存取受到拖延或中斷。一項優先權機制可自動暫停具有低於暫停命令之優先權的DMA通道。可經中一項中斷機制來實施優先權方案。
暫存器610 CHXCON控制個別通道X。由於每一資料傳輸可由複數個處理程序所組成,所以可使用位元0至1 CHPR[1:0]來定義一指派給每一通道的優先權。在此具體實施例中,DMA控制器125可具有若干通道,舉例而言,4或8個通道。該2個位元能夠定義4項不同優先權。根據一具體實施例,如果需要更多優先權,則可擴大位元欄位CHPR以提供各自位元量。優先權指派係用於判定多個通道處理程序將被執行的順序。舉例而言,如果通道0具有最高優先權並且所有其它通道具有較低優先權,則將執行對於通道0的所有處理程序直到已產生用於此通道的EofTrans訊號並且已完成資料傳輸。如果多個通道具有相同優先權,則控制器將循環處理該優先權的所有該等通 道。因此,如果通道2及3具有最高優先權並且無較高優先權存在,則在對於通道2的一項處理程序之後,控制器將切換至通道2以執行對於此通道的處理程序,並且接著切換回到通道2,以此類推,直到已完成對於該兩個通道的所有處理程序。如果具有較高優先權的通道在另一較低優先權之通道具有待決之處理程序時請求傳送,則該處理程序將在移至具有較高優先權的通道之前完成。
圖10繪示在具有8個通道之系統之多個通道傳送的實例,其中通道0、1、2與4係作用中狀態。通道0首先藉由確證其控制線來請求傳送。在此時間t1 ,無任何處理程序正在待決中。因此,傳送處理程序開始於下一循環,如識別當前作用中通道的線"作用中通道"所示。於對於通道0之傳送期間,通道4請求傳送。因為通道4的優先權高於通道0,所以在下一循環時間t2 ,開始對於通道4的傳送處理程序。於對於通道4之傳送期間,通道2請求傳送。因為通道2的優先權高於通道4,所以在下一循環時間t3 ,開始對於通道2的傳送處理程序。當執行對於通道2之循序傳送處理程序期間,暫停對於通道0與4之傳送。在時間t4 ,完成對於通道2的所有傳送,並且控制器重新繼續對於通道4的傳送,此時,通道4具有最高優先權。在時間t5 ,通道1請求傳送,其中通道1的優先權相同於通道4。因此,控制器將從現在開始循環處理通道1及通道4之傳送,直到已完成其傳輸或接收到較高優先權請求。在圖10所示之實例中, 在時間t6 ,完成對於通道1及4之傳輸。因此,控制器重新繼續對於剩餘通道0的下一傳送處理程序。在任何時候,DMA控制器可接收具有一定優先權層級的暫停命令。接著,僅具有較高優先權的通道被允許繼續進行其處理程序。此方式可在DMA控制器內實施非常彈性之暫停機制,其允許選擇性暫停某些或所有DMA通道。
請重新參閱圖6A之暫存器CHXCON,位元4至5 ETMD[1:0]係用於定義操作模式。舉例而言,可指派4種不同模式。因此,彼等位元允許定義(例如)關於圖5描述的三種模式。
請重新參閱圖6A之暫存器CHXCON,位元8(及9)ETWU係(例如)用於定義是否在已完成傳輸時產生喚醒訊號。如果設定各自位元,可電源管理單元175可自(例如)OR閘590(如圖5所示)接收此訊號,並且產生對於CPU 110之各自喚醒訊號。作為如圖6所示之位元欄位ETWU[1:0]之替代方案,可使用兩個或兩個以上位元來定義中斷訊號的中斷層級(一旦已完成對於各自通道的傳輸,將產生該中斷訊號)。在此情況中,舉例而言,將使用OR閘590之輸出訊號來產生該中斷訊號。CPU 110可經程式化為僅如果接收到具有一定優先權層級的中斷才喚醒。換言之,在睡眠模式中,將遮罩某些較低優先權中斷。此一方法將允許簡單設計的喚醒機制。不應喚醒CPU 110的DMA傳輸將被指派較低層級優先權,而要求CPU處理經傳輸之資料的DMA傳送 將被指派較高優先權以喚醒CPU 110。
位元14 CHAED係用於:當設定此位元時,即使通道被停用,仍然允許登錄通道開始/中止事件。位元15 CHEN係用於:當設定此位元時,個別啟用各自通道。因此,可使用彼等位元來個別暫停通道傳送。
請重新參考圖6A,位元16至26 CHOFFSET[8:0]指示出一位移,用以早先於DMA傳送完成而產生喚醒訊號。舉例而言,在DMA記憶體傳送中,每一處理程序要求一已知時間t1 。如果對於CPU 110的啟動時間延遲係25×t1 ,則位元欄位CHOFFSET可被程式化為25。可提供各自比較器565及暫存器545,其比較目的地位址減位移與實際來源位址,如圖5所示。比較結果獨立於傳輸結束訊號並且被饋送至電源管理單元175。
圖6B繪示另一暫存器620 DCHXECON,可對於每一通道實施該暫存器,該暫存器控制每一通道的中斷功能性。為此目的,位元16-23定義位元欄位CHAIRQ,其可用中斷層級予以程式化。高於經程式化層級的中斷將促使中止各自通道傳送。位元8-15定義位元欄位CHSIRQ,並且係用於定義將促使開始對於通道之DMA傳送的中斷層級。位元7 CFORCE可用於:當設定此位元至"1"時,強制開始DMA傳送。位元6 CABORT可用於:當設定此位元至"1"時,中止一特定傳送。位元5 PATCEN可用於設定型樣匹配功能性。因此,當已設定此位元至"1"時,在一型樣匹配(如上 文所述)之後隨即中止一傳送。
圖6B繪示另一暫存器630 CHXINT,其係用於控制一受中斷控制之DMA系統中的某些功能。可使用此暫存器來程式化某些中斷訊號之產生與功能性。位元23 CHSDIE啟用指示出何時通道來源緩衝器已用完之中斷。位元22 CHSHIE啟用指示出何時通道來源緩衝器係半空之中斷(抵達緩衝器中央)。位元21 CHDDIE啟用指示出何時通道目的地緩衝器已用完之中斷。位元20 CHDHIE啟用指示出何時通道目的地緩衝器係半空之中斷(抵達緩衝器中央)。位元19 CHBCIE係用於啟用指示出區塊傳送完成之中斷。位元18 CHCCIE係用於啟用指示出資料格傳送(cell transfer)完成之中斷。位元17 CHTAIE係用於啟用傳送中止之中斷。位元16 CHERIE係用於啟用通道位址錯誤之中斷。位元7 CHSDIF係一中斷旗標位元,其指示出通道來源緩衝器指標已抵達該來源緩衝器之結尾。位元6 CHSHIF係一中斷旗標位元,其指示出通道來源緩衝器指標已抵達該來源緩衝器之中點。位元5 CHDDIF係一中斷旗標位元,其指示出通道目的地緩衝器指標已抵達該目的地緩衝器之結尾。位元4 CHDHIF係一中斷旗標位元,其指示出通道目的地緩衝器指標已抵達該目的地緩衝器之中點。位元3 CHBCIF係一中斷旗標位元,其指示出已完成區塊傳送。位元2 CHCCIF係一中斷旗標位元,其指示出已完成資料格傳送。位元1 CHTAIF係一中斷旗標位元,其指示出已偵 測到匹配CHAIRQ的中斷並且已中止DMA傳送。位元0 CHERIF係一中斷旗標位元,其指示出已偵測到通道位址錯誤。在上文所述之具體實施例中,資料格傳送描述當在等待另一事件之前DMA通道具有起始之傳送時傳送的位元組數目。因此,資料格傳送包括可程式化數目個單字組傳送,其中在32位元系統中,每一單字組傳送可由至少4個位元組所組成。區塊傳送被定義為當啟用通道時傳送的位元組數目。該位元組數目可大於來源大小或目的地大小,可個別程式化來源大小或目的地大小。因此,區塊傳送包含一或多個資料格傳送。
圖11繪示系統之一具體實施例,該系統具有:一CPU 110;一DMA控制器125;一中斷控制器155;及專用控制訊號,諸如中斷匯流排1110,個別中斷線1120、1130與1140。在一項具體實施例中,可使用中斷匯流排1110來產生不同輸入訊號,如上文所述。中斷控制器155係用於控制彼等中斷。但是,在其它具體實施例中,介於DMA控制器125與CPU 110之間可使用直接連接,諸如中斷線1140。另外,中斷控制器155可使用及產生進一步個別中斷訊號1120與1130。但是,可實施中斷匯流排1110,舉例而言,使用單個中斷訊號(其被饋送至所有單元)及複數個控制線,以指示出各自中斷層級。使用複數個暫存器(舉例而言,如上文所述之暫存器)允許非常彈性地控制包含CPU 110及DMA控制器125之系統。根據一項具體實施例, DMA通道將傳送來自來源暫存器之資料至目的地暫存器,而不需要CPU介入。通道來源緩衝器開始位址暫存器定義來源緩衝器的開始位址。通道目的地緩衝器開始位址暫存器定義目的地緩衝器的開始位址。來源緩衝器及目的地緩衝器兩者係可使用各自暫存器個別地組態。可藉由設定自各位元CFORCE的軟體起始資料格傳送,或藉由匹配經程式化CHSIRQ中斷層級的中斷事件起始資料格傳送。DMA傳送將於起始時實行資料格傳送。根據一項具體實施例,通道繼續維持已啟用狀態,直到DMA通道已傳送較大的來源或目的地緩衝器。每一通道使用緩衝器指標來持續追蹤自來源緩衝器及目的地緩衝器所傳送的字組數。當來源或目的地緩衝器指標係緩衝器大小之一半時,或當來源或目的地計數器抵達緩衝器結尾時,可產生緩衝器中斷。根據不同具體實施例,中斷可受控於中斷控制器155並且可予以個別管理或透過允許複數個優先權層級的專用中斷匯流排予以管理。
如上文所述,使用者亦可藉由撰寫暫停位元SUS(請參閱圖6A)來立即暫停DMA模組125。這將立即使DMA暫停任何進一步匯流排處理程序。可實施此項功能以允許CPU具有完全的匯流排存取。典型地,當CPU要求完全控制匯流排以用於原子指令序列(諸如非揮發性記憶體模組之解除鎖定序列)時,將使DMA暫停。可使用位元CHEN(請參閱圖6A,暫存器610)來暫停個別通道。如果DMA傳送正在 進展中並且CHEN位元被設定至0,則當完成當前處理程序並且將暫停此通道上的進一步處理程序。設定啟用位元CHEN至0將不影響通道指標或處理程序計數器。當暫停通道時,使用者可藉由設定CHAED位元(請參閱圖6A,暫存器610)而決擇繼續接收事件,諸如中止中斷。如上文所述,亦可使用優先權方案來個別暫停某些DMA通道。
圖7繪示具有根據具體實施例之DMA控制器之系統的睡眠模式之具體實施例的流程圖。在第一步驟710中,可進入睡眠模式的所有單元(包括CPU 110)被撤銷啟動,以使電力消耗減至最小。在步驟720中,DMA控制器檢查是否已接收到DMA傳送要求。如果受中斷驅動,則不需要對此請求之輪詢,並且將執行常式以作為中斷服務常式。替代做法為,DMA控制器亦可係處於睡眠模式中,並且DMA傳送要求或中斷將喚醒DMA控制器。若需要,在步驟730中,將透過各自喚醒訊號來啟動DMA傳輸所需的所有單元。在步驟740中,開始DMA傳送並且實行第一處理程序。在步驟750中,DMA控制器檢查是否已完成傳輸。如果未完成傳輸,則常式回到步驟740以實行另一處理程序。如果已完成傳輸,則在步驟750之後,常式可依不同方式運作。
根據第一具體實施例,常式繼續進行步驟760a,在此步驟中檢查是否喚醒CPU 110。如果(例如)已設定各自通道控制暫存器中的各自位元,則將在步驟770中啟動CPU 110。否則,常式略過步驟770。作為一項替代方案,對於步驟760及770,可在完成傳輸後產生具有先前受指派中斷層級的中斷訊號。
根據第二具體實施例,常式繼續進行步驟755,在此步驟中累加暫存器DMA#。接著,在步驟760b中,檢查是否DMA#>=n,以判定是否喚醒CPU 110。如果(例如)完成的傳輸次數小於一預先決定數目n,則依然不啟動CPU 110並且常式略過步驟770。前文判定步驟之組合當然係可行的並且可按照所要求的系統設計予以實施。
根據第三具體實施例,常式繼續進行步驟770c,在此步驟中,所有裝置重新進入在開始處理程序之前本來的各自睡眠模式。
圖8繪示DMA控制器之初始化之具體實施例的流程圖。在第一步驟810中,決策是否使用型樣模式。如果不使用型樣模式,則常式分支至步驟820,在此步驟中儲存來源位址及目的地位址。在一後續步驟830中,藉由結束位址或區塊長度來判定傳輸長度。接著,常式結束。如果使用型樣模式,則常式進行至步驟840,在此步驟中設定來源及目的地。然後在步驟850中,選擇性地設定傳輸最大長度,並且在步驟860中儲存資料終止型樣值。在步驟870中設定型樣模型並且初始化常式結束。
圖9更詳細繪示DMA傳送常式之具體實施例的流程圖,諸如圖7之步驟740至750。常式開始於步驟910,在此步驟 中,讀取在開始位址處的來源資料。在步驟920中,此資料寫入至目的地位址。在步驟930中,檢查是否已設定型樣匹配模式。如果未設定型樣匹配模式,則累加來源位址及目的地位址,並且在步驟960中遞減資料長度值。在步驟970中,檢查資料長度值是否係0。如果資料長度值係0,則傳送結束;如果資料長度值不是0,則常式回到步驟910。如果已設定型樣模式,則常式從步驟930分支至步驟950,在此步驟中檢是資料是否匹配型樣。如果匹配發生,則傳送結束。否則,常式繼續進行步驟940,如上文所述。
總言之,因為在DMA處理程序期間不喚醒CPU,所以處理器不需要提取指令並且未非必要地消耗能量以理解為什麼喚醒CPU。如上文所述,提取於存取快閃記憶體時消耗電力。由於未實行往返於程式記憶體的任何傳送,所以當DMA控制器被喚醒時,程式記憶體可繼續維持關閉電源。因此,僅DMA處理程序所需的組件將被啟動,並且在已完成處理程序之後可返回至睡眠。再者,若有需要,DMA控制器可經程式化成為暫停。可使用在一般暫存器、優先權方案或訊號中的各自位元來暫停完整的DMA模組。但是,亦可透過專用通道控制暫存器或優先權方案來暫停個別通道。因此,若有需要,可釋出對匯流排之存取給CPU。
因此,本發明經妥善調適以實行並且達成提出的目標與優點,以及本身固有的其它目與優點。雖然已藉由引用本 發明特定較佳具體實施例來描繪、描述及定義本發明,然而此等引用非意謂著限制本發明,並且不推斷任何此類限制。本發明的形式及功能可以有相當大量的修改、改變及同等物,如熟悉相關技術者所知。所描繪及描寫的本發明示範性具體實施例僅係示範性,並且不是詳盡的本發明範疇。據此,本發明僅意欲受限於隨附申請專利範圍之精神與範疇,在所有態樣給予完全的同等物認定。
100‧‧‧微控制器
110‧‧‧中央處理單元(CPU)
115‧‧‧系統時脈裝置
120‧‧‧匯流排矩陣
125‧‧‧DMA控制器(直接記憶體存取控制器;DMA模組)
130‧‧‧快取區
135‧‧‧快閃程式記憶體
140‧‧‧資料隨機存取記憶體
145...150‧‧‧周邊裝置i至k
155‧‧‧中斷控制器
165...170‧‧‧周邊裝置n至m
180‧‧‧周邊裝置橋接器
200‧‧‧匯流排
310‧‧‧匯流排
320‧‧‧位址解碼器
330‧‧‧控制暫存器
340‧‧‧控制匯流排
350...360‧‧‧DMA通道
370‧‧‧多工器
380‧‧‧控制器
390‧‧‧匯流排矩陣介面
410a‧‧‧資料暫存器或鎖存器
410b‧‧‧型樣暫存器
420‧‧‧比較器
440a,440b‧‧‧位址暫存器或鎖存器(傳輸及/或接收暫存器)
440c‧‧‧結束位址暫存器
440d‧‧‧中間位址暫存器
450‧‧‧比較器(比較器單元;位址比較器)
470‧‧‧接收匯流排
480‧‧‧傳輸匯流排
490‧‧‧DMA時脈訊號
510‧‧‧來源暫存器(來源開始位址暫存器)
515‧‧‧控制暫存器
520‧‧‧目的地位址暫存器(目的地開始位址暫存器)
525‧‧‧比較器
530‧‧‧長度/最大長度暫存器
535‧‧‧DMA傳輸次數(DMA#)暫存器
540‧‧‧型樣暫存器
545‧‧‧位移暫存器
550‧‧‧比較器
555‧‧‧第二可控制式反轉器(驅動器)
560‧‧‧資料暫存器
565‧‧‧比較器單元
570‧‧‧計數器
575‧‧‧喚醒位址暫存器
580‧‧‧比較器
585‧‧‧第一可控制式驅動器
590‧‧‧OR閘
595‧‧‧結束位址暫存器
600‧‧‧暫存器DMACON
610‧‧‧暫存器CHXCON
620‧‧‧暫存器DCHXECON
630‧‧‧暫存器CHXINT
1110‧‧‧中斷匯流排
1120,1130,1140‧‧‧中斷線(中斷訊號)
CABORT‧‧‧中止傳送
CFORCE‧‧‧強制開始DMA傳送
CHAED‧‧‧登錄通道開始/中止事件
CHAIRQ‧‧‧中斷層級
CHBCIE‧‧‧啟用指示出區塊傳送完成之中斷
CHBCIF‧‧‧中斷旗標位元,指示出已完成區塊傳送
CHCCIE‧‧‧啟用指示出資料格傳送完成之中斷
CHCCIF‧‧‧中斷旗標位元,指示出已完成資料格傳送
CHDDIE‧‧‧啟用指示何時通道目的地緩衝器已用完之中斷
CHDDIF‧‧‧中斷旗標位元,指示出通道目的地 緩衝器指標已抵達該目的地緩衝器之結尾
CHDHIE啟用指示出何時通道目的地緩衝器係半空之中斷
CHDHIF中斷旗標位元,指示出通道目的地緩衝器指標已抵達該目的地緩衝器之中點
CHEN啟用通道
CHERIE啟用通道位址錯誤之中斷
CHERIF‧‧‧中斷旗標位元,指示出已偵測到通道位址錯誤
CHOFFSET[8:0]‧‧‧位移
CHPR[1:0]‧‧‧通道優先權
CHSDIE‧‧‧啟用指示通道來源緩衝器已用完之中斷
CHSDIF‧‧‧中斷旗標位元,指示出通道來源緩衝器指標已抵達該來源緩衝器之結尾
CHSHIE‧‧‧啟用指示何時通道來源緩衝器係半空之中斷
CHSHIF‧‧‧中斷旗標位元,指示出通道來源緩衝器指標已抵達該來源緩衝器之中點
CHSIRQ‧‧‧開始通道DMA傳送的中斷層級
CHTAIE‧‧‧啟用傳送中止之中斷
CHTAIF‧‧‧中斷旗標位元,指示出已偵測到匹配CHAIRQ的中斷並且已中止DMA傳送
EndAddr‧‧‧結束位址偵測(訊號)
EofTrans‧‧‧傳輸結束訊號
ETMD[1:0]‧‧‧定義操作模式
ETWU[1:0]‧‧‧產生訊號
Match‧‧‧訊號
PATCEN‧‧‧型樣匹配功能性
SUS‧‧‧暫停位元
WakeUp‧‧‧喚醒訊號
圖1繪示在電腦系統內典型DMA控制器(舉例而言,諸如微控制器)的方塊圖;圖2繪示匯流排矩陣中使用的示範性匯流排;圖3繪示DMA控制器之第一具體實施例細節的方塊圖;圖4繪示DMA控制器之第二具體實施例細節的方塊圖;圖5繪示DMA控制器之第三具體實施例細節的方塊圖;圖6A及6B繪示用於控制具有根據本發明之DMA控制器之系統的某些態樣的典型暫存器;圖7繪示根據一項具體實施例之系統控制常式的流程圖;圖8繪示DMA初始化常式;圖9繪示DMA控制器傳送常式的流程圖;圖10繪示多通道傳送的時序圖;及圖11繪示具有使用中斷來控制系統功能性之DMA控制器的系統。
125‧‧‧DMA控制器(直接記憶體存取控制器)
310‧‧‧匯流排
320‧‧‧位址解碼器
330‧‧‧控制暫存器
340‧‧‧控制匯流排
350...360‧‧‧DMA通道
370‧‧‧多工器
380‧‧‧控制器
390‧‧‧匯流排矩陣介面

Claims (20)

  1. 一種用於直接記憶體存取之系統,包括:至少一匯流排;一中央處理器(CPU),其耦合至該匯流排;一記憶體,其耦合至該匯流排;一直接記憶體存取(DMA)控制器,其具有複數個DMA通道並且運作獨立於該CPU而耦合至該匯流排,其中每一DMA通道包括一關聯之通道控制暫存器且其中該DMA控制器進一步包括一一般控制暫存器;其中為了存取該匯流排,該DMA控制器係透過該通用控制暫存器而可程式化的,以於一第一模式中具有高於該CPU之優先權,及於一第二模式中暫停任何電流轉移。
  2. 如請求項1之系統,其中該一般控制暫存器包括用於設定該第一模式或該第二模式之一單位元。
  3. 如請求項1之系統,其中該複數個DMA通道之每一者具有一受指派之優先權層級。
  4. 如請求項1之系統,其中每一通道控制暫存器包括一可程式化位元,該可程式化位元控制是否啟用或停用該通道。
  5. 如請求項3之系統,其中該第一模式或該第二模式係可透過一饋送至該DMA控制器之控制訊號而程式化,該控制訊號包括一優先權層級。
  6. 一種用於在耦合至一主控裝置及具有複數個DMA通道之一直接記憶體存取(DMA)控制器之一匯流排上實行一資 料傳輸之方法,其中每一DMA通道包括一關聯之通道控制暫存器且其中該DMA控制器進一步包括一一般控制暫存器;該方法包括:-應對透過該等關聯之通道控制暫存器之一者之一DMA資料傳輸之請求,授予該DMA控制器存取該匯流排;-透過該一般控制暫存器程式化該DMA控制器以暫停任何待決之DMA資料傳輸;-授予該主控裝置存取該匯流排;-由該主控裝置實行至少一匯流排存取;-透過該一般控制暫存器程式化該DMA控制器以重新繼續任何待決之DMA資料傳輸。
  7. 如請求項6之方法,其中程式化該DMA控制器之該等步驟係由設定及重新該一般控制暫存器中之一單位元實行。
  8. 如請求項6之方法,其中如果在已起始暫停之前該DMA控制器已起始該資料傳輸之一資料傳送,則終止該資料傳送,且接著暫停該DMA控制器之存取。
  9. 如請求項6之方法,其中該主控裝置係一中央處理單元(CPU),並且該程式化步驟係由該CPU實行。
  10. 如請求項6之方法,其中該主控裝置係一周邊裝置,並且該程式化步驟係由一中央處理單元實行。
  11. 一種微控制器,包括:至少一匯流排; 一中央處理器(CPU),其耦合至該匯流排;一記憶體,其耦合至該匯流排;複數個周邊裝置,其耦合至該匯流排;一直接記憶體存取(DMA)控制器,其運作獨立於該CPU而耦合至該匯流排,其中每一DMA通道包括一關聯之通道控制暫存器且其中該DMA控制器進一步包括一一般控制暫存器;其中為了存取該匯流排,該DMA控制器係可透過該一般控制暫存器程式化的,以於一第一模式中具有高於該CPU及該複數個周邊裝置之優先權,及於一第二模式中暫停任何電流轉移。
  12. 如請求項11之微控制器,其中該一般控制暫存器包括用於設定該第一模式或該第二模式之一單位元。
  13. 如請求項11之微控制器,其中每一通道控制暫存器包括一可程式化位元,該可程式化位元控制是否啟用或停用該通道。
  14. 如請求項11之微控制器,其中每一通道控制暫存器包括一可程式化位元欄位,該可程式化位元欄位判定一DMA通道之一優先權。
  15. 一種用於在耦合至一主控裝置及一直接記憶體存取(DMA)控制器之一匯流排上實行一資料傳輸之方法,該DMA控制器具有複數個DMA通道,其中每一DMA通道包括一關聯之通道控制暫存器且其中該DMA控制器進一步包括一一般控制暫存器;該方法包括:-藉由程式化該關聯之通道控制暫存器將一優先權層級 指派給該複數個DMA通道之每一者;-應對透過該等關聯之通道控制暫存器之一者之一DMA資料傳輸之請求,將該DMA控制器對該匯流排之存取授予給該複數個DMA通道之至少一者;-將一優先權層級程式化於該DMA控制器之該一般控制暫存器中;-如果經程式化之該優先權層級高於具有對該匯流排之存取之任何DMA通道的一優先權層級,則-使相較於經程式化之該優先權層級具有一較低優先權之任何DMA通道暫停存取該匯流排;-如果無任何其它DMA通道具有對該匯流排之存取,則-授予該主控裝置存取該匯流排;-由該主控裝置實行至少一匯流排存取;-程式化該DMA控制器之該一般控制暫存器,以重新繼續任何經暫停之該DMA資料傳輸。
  16. 如請求項15之方法,其中該DMA控制器係可運作以循環處理具有相同優先權層級之DMA通道的多個DMA通道處理程序。
  17. 一種用於直接記憶體存取之系統,其包括:至少一匯流排;一中央處理器(CPU),其耦合至該匯流排;一記憶體,其耦合至該匯流排;一直接記憶體存取(DMA)控制器,其具有複數個DMA 通道並且運作獨立於該CPU而耦合至該匯流排,其中每一DMA通道包括一關聯之通道控制暫存器,其中為了存取該匯流排,該DMA控制器係可程式化的,以於一第一模式中具有高於該CPU之優先權,及於一第二模式中暫停任何電流轉移,其中該第一模式或該第二模式可透過經由一專用控制線饋送至該DMA控制器之一控制訊號而程式化。
  18. 如請求項17之系統,其中每一通道控制暫存器包括控制該通道係啟用或停用之一可程式化之位元。
  19. 一種用於在耦合至一主控裝置及一直接記憶體存取(DMA)控制器之一匯流排上實行一資料傳輸之方法,該DMA控制器具有複數個DMA通道,且其中該DMA控制器具有用於藉由該DMA控制器控制任何轉移之暫停之一專用控制輸入,且其中每一DMA通道包括一關聯之通道控制暫存器;該方法包括:-應對透過該等關聯之通道控制暫存器之一者之一DMA資料傳輸之請求,授予該DMA控制器對該匯流排之存取;-透過一饋送至該專用控制輸入之一控制訊號控制該DMA控制器以暫停任何DMA資料傳輸;-授予該主控裝置至該匯流排之存取;-藉由該主控裝置執行至少一個匯流排存取;-透過一饋送至該專用控制輸入之一控制訊號控制該DMA控制器以重新繼續任何待決之DMA資料傳輸。
  20. 如請求項19之方法,其中該控制訊號係產生自饋送至該主控裝置之一例外訊號。
TW096147710A 2006-12-15 2007-12-13 用於直接記憶體存取之系統、用於實行一資料傳輸之方法及微控制器 TWI443519B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US87029506P 2006-12-15 2006-12-15
US87026706P 2006-12-15 2006-12-15
US11/928,132 US9141572B2 (en) 2006-12-15 2007-10-30 Direct memory access controller

Publications (2)

Publication Number Publication Date
TW200844749A TW200844749A (en) 2008-11-16
TWI443519B true TWI443519B (zh) 2014-07-01

Family

ID=39447608

Family Applications (1)

Application Number Title Priority Date Filing Date
TW096147710A TWI443519B (zh) 2006-12-15 2007-12-13 用於直接記憶體存取之系統、用於實行一資料傳輸之方法及微控制器

Country Status (6)

Country Link
US (2) US9141572B2 (zh)
EP (1) EP2095246B1 (zh)
KR (1) KR101386128B1 (zh)
AT (1) ATE545089T1 (zh)
TW (1) TWI443519B (zh)
WO (1) WO2008076892A2 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7086583B2 (en) * 2004-01-20 2006-08-08 Standard Microsystems Corporation Systems and methods for power reduction in systems having removable media devices
US9141572B2 (en) 2006-12-15 2015-09-22 Microchip Technology Incorporated Direct memory access controller
US8250253B2 (en) * 2010-06-23 2012-08-21 Intel Corporation Method, apparatus and system for reduced channel starvation in a DMA engine
KR101685407B1 (ko) * 2010-07-29 2016-12-13 삼성전자주식회사 멀티코어 시스템을 위한 다이렉트 메모리 억세스 장치 및 다이렉트 메모리 억세스 장치의 동작 방법
US10026458B2 (en) * 2010-10-21 2018-07-17 Micron Technology, Inc. Memories and methods for performing vector atomic memory operations with mask control and variable data length and data unit size
CN102314400B (zh) * 2011-09-27 2014-12-24 广东威创视讯科技股份有限公司 一种分散聚合式dma方法及装置
MY174440A (en) * 2011-10-03 2020-04-18 Intel Corp System and method for performance optimization in usb operations
CN106909444B (zh) * 2011-12-22 2021-01-12 英特尔公司 用于指定应用线程性能状态的指令的指令处理装置及相关方法
US8943238B2 (en) * 2012-05-18 2015-01-27 Atmel Corporation Operations using direct memory access
JP6176058B2 (ja) * 2013-10-29 2017-08-09 株式会社ソシオネクスト ダイレクトメモリアクセス制御装置、その制御方法、及び情報処理システム
CN104965676B (zh) * 2015-06-17 2018-10-16 深圳市中兴微电子技术有限公司 一种随机存取存储器的访问方法、装置及控制芯片
GB2547912B (en) * 2016-03-02 2019-01-30 Advanced Risc Mach Ltd Register access control
DE102016205536A1 (de) * 2016-04-04 2017-10-05 Robert Bosch Gmbh Speicherdirektzugriffssteuereinrichtung für eine einen Arbeitsspeicher aufweisende Recheneinheit
DE102016206109A1 (de) * 2016-04-13 2017-10-19 Robert Bosch Gmbh Speicherdirektzugriffssteuereinrichtung für mindestens eine einen Arbeitsspeicher aufweisende Recheneinheit
DE102016211768A1 (de) * 2016-06-29 2018-01-04 Robert Bosch Gmbh Speicherdirektzugriffssteuereinrichtung und Betriebsverfahren hierfür
US10114776B2 (en) 2016-11-03 2018-10-30 Microchip Technology Incorporated System arbiter with programmable priority levels
KR102447465B1 (ko) 2017-09-08 2022-09-27 삼성전자주식회사 호스트로부터의 읽기 요청에 대한 짧은 읽기 응답 시간을 제공하기 위해 내부 동작을 일시적으로 중단하는 스토리지 장치
US10515993B2 (en) 2018-05-17 2019-12-24 Hi Llc Stacked photodetector assemblies
US11119704B2 (en) * 2019-03-28 2021-09-14 Intel Corporation System, apparatus and method for sharing a flash device among multiple masters of a computing platform
US11620246B1 (en) * 2022-05-24 2023-04-04 Ambiq Micro, Inc. Enhanced peripheral processing system to optimize power consumption

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4989113A (en) * 1987-03-13 1991-01-29 Texas Instruments Incorporated Data processing device having direct memory access with improved transfer control
EP0675425B1 (en) 1989-06-30 1997-12-10 Fujitsu Personal Systems, Inc. A method for reducing power consumed by a computer
US5517626A (en) * 1990-05-07 1996-05-14 S3, Incorporated Open high speed bus for microcomputer system
US5461266A (en) * 1990-11-27 1995-10-24 Hitachi, Ltd. Power consumption control system
US5379381A (en) 1991-08-12 1995-01-03 Stratus Computer, Inc. System using separate transfer circuits for performing different transfer operations respectively and scanning I/O devices status upon absence of both operations
US5367639A (en) * 1991-12-30 1994-11-22 Sun Microsystems, Inc. Method and apparatus for dynamic chaining of DMA operations without incurring race conditions
JPH05250305A (ja) * 1992-03-06 1993-09-28 Mitsubishi Electric Corp データ転送制御方式
US5574575A (en) * 1992-06-18 1996-11-12 Brother Kogyo Kabushiki Kaisha Facsimile machine
DE69517712T2 (de) * 1994-01-10 2001-03-08 Sun Microsystems, Inc. Verfahren und Vorrichtung zur Reduzierung der Leistungsaufnahme in einem Rechnersystem
US5828856A (en) * 1994-01-28 1998-10-27 Apple Computer, Inc. Dual bus concurrent multi-channel direct memory access controller and method
US5835733A (en) * 1994-12-22 1998-11-10 Texas Instruments Incorporated Method and apparatus for implementing a single DMA controller to perform DMA operations for devices on multiple buses in docking stations, notebook and desktop computer system
KR0135904B1 (ko) * 1994-12-30 1998-06-15 김광호 중앙처리장치의 버스 미사용시 전력소모 방지장치 및 그 방법
US5826106A (en) * 1995-05-26 1998-10-20 National Semiconductor Corporation High performance multifunction direct memory access (DMA) controller
JPH0954748A (ja) * 1995-08-11 1997-02-25 Toshiba Corp コンピュータシステムおよびこのシステムに設けられるdmaコントローラ
JPH1040211A (ja) * 1996-04-30 1998-02-13 Texas Instr Inc <Ti> パケット化されたデータ通信インタフェース機器内での直接メモリアクセス優先順位を割り当てるための方法ならびにdmaチャンネル回路
JP2996183B2 (ja) 1996-08-16 1999-12-27 日本電気株式会社 Dma機能を備えたデータ処理装置
US5896550A (en) * 1997-04-03 1999-04-20 Vlsi Technology, Inc. Direct memory access controller with full read/write capability
US6154793A (en) * 1997-04-30 2000-11-28 Zilog, Inc. DMA with dynamically assigned channels, flexible block boundary notification and recording, type code checking and updating, commands, and status reporting
JP3524337B2 (ja) * 1997-07-25 2004-05-10 キヤノン株式会社 バス管理装置及びそれを有する複合機器の制御装置
US6167465A (en) * 1998-05-20 2000-12-26 Aureal Semiconductor, Inc. System for managing multiple DMA connections between a peripheral device and a memory and performing real-time operations on data carried by a selected DMA connection
US6467009B1 (en) * 1998-10-14 2002-10-15 Triscend Corporation Configurable processor system unit
US6763448B1 (en) * 1999-02-16 2004-07-13 Renesas Technology Corp. Microcomputer and microcomputer system
JP2000315186A (ja) * 1999-05-06 2000-11-14 Hitachi Ltd 半導体装置
EP1059589B1 (en) * 1999-06-09 2005-03-30 Texas Instruments Incorporated Multi-channel DMA with scheduled ports
US6701405B1 (en) * 1999-10-01 2004-03-02 Hitachi, Ltd. DMA handshake protocol
US6560712B1 (en) 1999-11-16 2003-05-06 Motorola, Inc. Bus arbitration in low power system
JP2001180083A (ja) * 1999-12-24 2001-07-03 Fuji Xerox Co Ltd 印刷装置
JP4204759B2 (ja) 2001-03-09 2009-01-07 インターナショナル・ビジネス・マシーンズ・コーポレーション Dma転送制御方法及び制御装置
US7245945B2 (en) * 2002-11-05 2007-07-17 Intel Corporation Portable computing device adapted to update display information while in a low power mode
US7281103B2 (en) * 2003-10-01 2007-10-09 Kabushiki Kaisha Toshiba Microcomputer with a security function for accessing a program storage memory
US20050149771A1 (en) * 2003-11-07 2005-07-07 Seiko Epson Corporation Processor control circuit, information processing apparatus, and central processing unit
TWI258077B (en) 2004-05-11 2006-07-11 Winbond Electronics Corp Method of DMA and program DMA controller for card reader
DE102004032237A1 (de) 2004-07-02 2006-01-26 Infineon Technologies Ag Konfiguration von Bauelementen bei einem Übergang von einem Niedrigleistungs-Betriebsmodus in einen Normalleistungs-Betriebsmodus
US7502896B2 (en) * 2005-06-07 2009-03-10 Stmicroelectronics Pvt. Ltd. System and method for maintaining the integrity of data transfers in shared memory configurations
JP4530971B2 (ja) 2005-11-07 2010-08-25 株式会社ソニー・コンピュータエンタテインメント 起動処理装置、dma転送システム、dma転送方法
EP1785811B1 (en) * 2005-11-14 2018-12-05 Texas Instruments Incorporated Memory information transfer power management
US20070162643A1 (en) * 2005-12-19 2007-07-12 Ivo Tousek Fixed offset scatter/gather dma controller and method thereof
US9141572B2 (en) 2006-12-15 2015-09-22 Microchip Technology Incorporated Direct memory access controller
US8775839B2 (en) * 2008-02-08 2014-07-08 Texas Instruments Incorporated Global hardware supervised power transition management circuits, processes and systems

Also Published As

Publication number Publication date
US20160011998A1 (en) 2016-01-14
US9141572B2 (en) 2015-09-22
WO2008076892A3 (en) 2008-08-14
EP2095246A2 (en) 2009-09-02
KR20090092835A (ko) 2009-09-01
US9921985B2 (en) 2018-03-20
KR101386128B1 (ko) 2014-04-17
ATE545089T1 (de) 2012-02-15
EP2095246B1 (en) 2012-02-08
WO2008076892A2 (en) 2008-06-26
US20080147907A1 (en) 2008-06-19
TW200844749A (en) 2008-11-16

Similar Documents

Publication Publication Date Title
TWI443519B (zh) 用於直接記憶體存取之系統、用於實行一資料傳輸之方法及微控制器
TWI437434B (zh) 直接記憶體存取控制器
US20200159279A1 (en) Low power autonomous peripheral management
CN101558396B (zh) 直接存储器存取控制器
JP4070824B2 (ja) コンピュータシステムおよび割込制御装置
JP4685312B2 (ja) データ処理システムおよび電力節約方法
US5625807A (en) System and method for enabling and disabling a clock run function to control a peripheral bus clock signal
KR20040091705A (ko) 데이터 처리 시스템을 위한 저 전력 시스템 및 방법
JPH07302132A (ja) コンピュータシステム
US20030079149A1 (en) Power management system
WO2016174386A1 (en) Controlling transitions of devices between normal state and quiescent state
US10261927B2 (en) DMA controller with trigger sequence generator
JP2003044177A (ja) コンピュータ装置、電源制御装置、電源管理方法
JP3568592B2 (ja) 周辺バスクロック信号を制御するためのコンピュータシステムおよびその方法
JP6245056B2 (ja) 情報処理装置、電源制御プログラム及びusb機器
KR101285665B1 (ko) 수면 모드를 지원하는 멀티 코어 시스템 온 칩
JP4738891B2 (ja) データ処理装置およびそのポーリング・ループ管理方法
JPH08249269A (ja) Dma転送制御方法及びdma転送制御装置
JP2001117862A (ja) マイクロコンピュータ
Jacobs et al. Power Management Chapter 21
JPH0991246A (ja) バス制御装置及びその方法
JPH0619571A (ja) 情報処理装置